5 votos

El polígono geográfico de Postgis 2.0 tiene un alcance longitudinal máximo.

Mi problema es que tengo una carga de un punto geográfico de datos (srid 4326) en una tabla. Un usuario puede hacer un cuadro de búsqueda - básicamente, crear un polígono de la siguiente manera:

l_poly geography(Polygon,4326):= 'POLYGON((-120 -89, -120 81, 59.999 81, 59.999 -20, -120 -20))';

... luego de la consulta utilizando el predicado ST_Intersect

WHERE ST_Intersects(my_tab.point_data, l_poly)

En el ejemplo anterior, puedo volver a un punto en el lon=0, lat=0. Sin embargo, una vez que mi más oriental de longitud que pasa por encima de 60degrees (actualmente 59.999), la longitudinal de la gama supera los 180 grados, y mi polígono ajusta de la manera opuesta alrededor de la tierra. En este caso, no puedo devolver los datos a 0 longitud, pero yo por ejemplo, 180 longitud.

Parece como si de un área geográfica polígono no puede ser definido que supera una extensión longitudinal de 180 grados. ¿Es esto cierto? Puede alguien me apunte en la dirección de una solución?

He tratado de fundición de una geografía a partir de una geometría definida con forzada Derecho de uso preferente de una Mano, que pensé que podría definir el interior del polígono a la derecha de las agujas del reloj dibujado el polígono. Pero esto tampoco funciona.

Gracias de anticipación. :)

2voto

NilObject Puntos 7874

Densifica tu polígono de consulta. Tal vez ST_Segmentize ()? Tenga en cuenta que, naturalmente, las líneas entre los puntos serán grandes círculos, por lo que si los usuarios dibujan cuadros en un mapa de mercator, podrían obtener algunos resultados que les parezcan muy extraños (los cuadros que dibuje con líneas rectas en el mercator serán interpretados como grandes círculos curvey). Una "solución" es ST_Segmentizar () lo suficientemente agresivamente como para que los bordes de los grandes círculos que salen tengan una curva muy pequeña.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X