¿Cómo represento a toda la Tierra como un polígono?

11

Esto está relacionado con la determinación del interior de un polígono .

Mi dificultad es que si especifico un Polígono que cubre la Tierra yendo de Este a Oeste, todavía tendrá un límite a lo largo del antemeridio, que se mostraría en proyecciones azimutales. Por ejemplo, en GeoJSON:

{
  "type": "Polygon",
  "coordinates": [
    [[-180, -90], [-180, 90], [180, 90], [180, -90], [-180, -90]]
  ]
}

¿Existe una forma estándar de especificar un Polígono de esfera completa, sin límite?

He pensado en usar un anillo exterior vacío:

{
  "type": "Polygon",
  "coordinates": [
    []
  ]
}

La lógica es que podría especificar más anillos como agujeros para perforar en el Polígono de toda la esfera.

Desafortunadamente, GeoJSON estipula que LinearRings debe tener al menos 4 puntos, por lo que esto se desviaría de la especificación. Sin embargo, todavía estoy interesado en entender si este enfoque se toma en otro lugar.

Jason Davies
fuente
En parte, la respuesta tiene que depender de los SIG. Sin embargo, está en problemas desde el principio: si el polígono no tiene límite , entonces, sin especificar información adicional que no está presente en la cadena lineal, no hay forma de que el software distinga toda la esfera del conjunto vacío. (Los polígonos vacíos tienen usos importantes, aunque muchos SIG no los implementan o los implementan incorrectamente.)
whuber
1
Gracias. Decidimos simplemente definir nuestro propio tipo de objeto "Esfera" para manejar esta situación, ya que un LineString vacío representaría más intuitivamente el conjunto vacío. Creo que esta es la mejor "respuesta" que realmente puede dar a esta pregunta.
Jason Davies
1
Creo que podría generalizar su solución, Jason, a bajo costo y con algún beneficio. Dado que está dedicando un bit a distinguir el conjunto vacío de la esfera, ¿por qué no usar ese bit con cada polígono para indicar su orientación? Para polígonos no degenerados, indicaría si el interior del polígono debe considerarse a la derecha o a la izquierda al atravesar su límite. Para los polígonos degenerados, indicaría si el límite coincide con el polígono o el complemento previsto. Ahora siempre sabes dónde está el interior.
whuber
¡Buena idea! Sin embargo, en general, queremos aceptar GeoJSON estándar como entrada. El objeto Esfera es un caso un poco especial, por lo que no nos importa definir nuestro propio tipo, ya que difícilmente se utilizará. Para los polígonos, hemos decidido adoptar una convención de pedidos (la regla de la mano derecha debe ser coherente con la especificación ESRI)
Jason Davies,

Respuestas:

2

Como no parece haber una forma estándar de representar esta situación un tanto rara de un polígono sin límite que cubra toda la Tierra, decidimos agregar la nuestra {type: "Sphere"}, que ha funcionado notablemente bien para nuestros propósitos.

Decidimos no usar un Polígono que contenga un Anillo Lineal vacío, ya que esto representa más intuitivamente un polígono vacío y podría conducir fácilmente a la confusión y la creación accidental de polígonos de la Tierra entera.

Jason Davies
fuente