4 votos

Geografía ST_Intersects causas "Boom! No podía generar fuera de punto!"

Estoy tratando de encontrar donde un usuario se basa en su punto y una tabla de varios polígonos.

Tengo actualmente:

SELECT u.name l.name
FROM users u
INNER JOIN locations AS l
ON ST_Intersects(u.location, l.geog)

Donde tanto u.ubicación y l.geog son de tipo geografía.

Y me sale el Error

Boom! No podía generar fuera de punto

He creado una nueva tabla con un solo usuario y una multi polígono y todavía desencadenar el error anterior.

Si yo me vuelvo a la ubicación original conjunto y añadir ::geometría, el punto parece a la tierra en 23 de los 28 posibles múltiples polígonos que también es incorrecto.

Podría usted me dirija en lo que estoy haciendo mal?


Me mudé a geom y el problema persistió (no el boom, pero el azar de regresar de polígonos).

He descubierto el problema.

Los datos que estaba usando era en el formato 27700, pero no tenía un conjunto SRID de 27700.

Así que para hacer este trabajo, he tenido que establezca explícitamente a la correcta SRID antes de cambiar:

SELECT u.name l.name
FROM users u
INNER JOIN locations AS l
ON ST_Intersects(u.location, ST_Transform(ST_SetSRID(l.geom,27700),4326))

4voto

Ricardo Reyes Puntos 3428

A partir de mi lectura de:

Como Brad ha sugerido, la publicación de la WKT de los infractores de geometrías, y también la versión de Postgres y PostGIS sería de gran ayuda.

Lo que es probablemente el caso es que usted está experimentando un error. El AUGE de mensaje de error se incluyó, posiblemente tarde en la noche, pero Paul Ramsey porque él no espera que se produzca este error. Esencialmente, se trata de una broma (pero no es gracioso, porque usted está experimentando!)

Por lo tanto, puede reducir el consumo de geometría, y utilizar esto como una repetible caso para hacer un informe de error.

Como una solución a corto plazo, usted puede tratar de fundición a la geometría (que está utilizando la geografía, derecho?) como el error no parece existir para la geometría. (Tenga en cuenta que la geometría maneja lat, lon, sólo que no se manejar esférica cálculos, como tengo entendido.)

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