¿Cómo los diferentes sistemas SIG determinan el interior de un polígono?

11

Estoy interesado en comprender cómo los sistemas SIG del mundo real y sus datos codifican polígonos.

Específicamente, ¿cómo resuelven la ambigüedad del interior de un Polígono en una esfera?

Antecedentes: en 2D, es trivial elegir el lado del límite que tiene un área finita, ya que el plano 2D es infinito. Sin embargo, una esfera es finita, por lo que es imposible saber qué lado está dentro sin hacer suposiciones adicionales.

Posibles enfoques que conozco:

  1. Regla de la mano derecha : los límites exteriores siempre se especifican en sentido horario y los agujeros se especifican en sentido antihorario. (Por supuesto, también existe la regla de la mano izquierda).
  2. Área más pequeña : para cualquier anillo dado, elija siempre el lado con el área más pequeña. No estoy seguro de cómo especificaría un polígono de gran alcance: ¿quizás un anillo exterior vacío seguido de agujeros?
  3. Equirectangular : simplemente considere la proyección equirectangular en un plano 2D infinito. Sin embargo, esto supone que las características se cortan en el antemeridiano, de lo contrario se requeriría una alternativa a uno de los dos métodos anteriores.

Mi preferencia personal es el primer enfoque, pero estoy interesado en comprender si esto es común en los sistemas SIG estándar.

Jason Davies
fuente

Respuestas:

3

Los principales sistemas SIG y sus métodos para resolver la ambigüedad inherente:

  • ESRI : regla del pie derecho.
  • ArcGIS : regla del pie derecho.
  • SQL Server 2012 : regla de pie izquierdo. Antes de SQL Server 2012, los polígonos más grandes que el hemisferio arrojarían un error.

GeoJSON no especifica un pedido.

Jason Davies
fuente
1
La especificación revisada de GeoJSON ( tools.ietf.org/html/rfc7946 ) especifica que "los anillos de polígono DEBEN seguir la regla de orientación a la derecha (anillos externos en sentido antihorario, anillos internos en sentido horario)".
Perrygeo
1

Si entiendo su pregunta correctamente, desea saber cómo GIS realiza un punto en la prueba de polígono esférico. Aquí hay un algoritmo que encontré en geospatialmethods.org :

  1. Conecte el punto al punto externo conocido con un gran arco circular.
  2. Para cada arco de gran círculo que sea un lado de la prueba de polígono esférico, si intersecta el arco construido en el paso 1 y cuenta el número de intersecciones.
  3. Si el número total de intersecciones es impar, el punto dado está dentro del polígono esférico. si el número total de intersecciones es par, el punto está fuera del polígono esférico.

Supongo que todavía se basa en el algoritmo plano de construir un rayo de prueba desde el punto en cuestión hasta un punto que se sabe que está fuera del polígono, seguido de contar cuántos bordes cruza el rayo que mencionaste.

También se analiza en profundidad en un documento JPL de la NASA sobre algoritmos en polígonos en una esfera . Está en la página 11. Por supuesto, hay algunas optimizaciones:

Primero, evite realizar los cálculos de trigonometría esférica computacionalmente costosos cuando sea posible al verificar el rayo de prueba contra un cuadro delimitador precalculado antes de mirar cualquiera de los bordes del polígono. Si el rayo de prueba se cruza con el cuadro delimitador, Q se verifica contra cada uno de los vértices del polígono. No tiene sentido probar si Q está en un borde en este punto, porque eso se revelará cuando se realicen las pruebas de intersección y el resto de los bordes se puedan omitir en ese momento.

Creo que encontrarás el papel más interesante :)

RK
fuente
Esto parece responder a una pregunta diferente. Una polilínea cerrada, que no se cruza entre sí, divide una esfera en dos componentes conectados. El OP pregunta cómo determina el SIG, o cómo se le dice, cuál de esos componentes debe considerarse "dentro" y cuál "fuera". El sitio web que usted cita discute este problema bajo el título "Adivina el punto externo", enfatizando que simplemente está adivinando qué componente está destinado a estar dentro.
whuber
Oh ... maldita sea. Entendió mal su pregunta. Lo combiné con la versión esférica del punto en la prueba de polígono. Lo revisaré tan pronto como encuentre una respuesta.
RK
Bueno, aprecio las referencias que encontraste, así que espero que puedas incluirlas en tu respuesta revisada :-).
whuber
Yo tambien lo espero. O tal vez solo haga una pregunta y la responda yo mismo ;-) Sería una pena desperdiciarlos.
RK
1
¡Gracias por la respuesta detallada! Desafortunadamente, como señala @whuber, esto no responde a mi pregunta específica. :) He esbozado posibles enfoques para resolver la ambigüedad inherente de dónde está el interior de un polígono, pero estoy interesado en saber qué enfoques adopta el software SIG del mundo real.
Jason Davies