Más

La distancia del punto PostGIS desde el polígono no es 0 cuando está en el borde

La distancia del punto PostGIS desde el polígono no es 0 cuando está en el borde


Tengo un problema bastante simple:

SELECT * FROM ST_Distance (ST_GeographyFromText ('POLYGON ((70-40,70 -39,71 -39,71 -40,70 -40))'), ST_GeographyFromText ('POINT (70.48 -39)'), False)

devuelve 118.45656881 ¿No debería ser 0? ¿No está el punto en el borde del polígono? Por que

SELECT * FROM ST_Distance (ST_GeographyFromText ('POLYGON ((70 -40,70 -39,71 -39,71 -40,70 -40))'), ST_GeographyFromText ('POINT (70.48 -40)'), False)

devolver 0?

SELECCIONAR * FROM ST_Distance (ST_GeographyFromText ('POINT (70 -39.5)'), ST_GeographyFromText ('POINT (70-39)')); SELECCIONAR * FROM ST_Distance (ST_GeographyFromText ('POINT (70 -39.5)'), ST_GeographyFromText ('POINT (70-40)'));

¿Por qué esto devuelve dos números diferentes (aunque solo ligeramente)?


El video lo explica muy bien. Si toma el borde en cuestión y lo segmenta

SELECCIONE st_asewkt (st_segmentize (geog, 10000)) FROM ST_GeographyFromText ('LINESTRING (70 -39,71 -39)') geog

vas a tener lo siguiente:

el punto es el punto sobre el que está preguntando. La línea representa el borde. El norte está arriba.

(medición de distancia hecha a mano, sin roturas)

¿En cuanto a la segunda consulta que devuelve 0? Lo hace porque el punto está realmente dentro de su polígono.

Para ser más claros, la intersección entre las dos geometrías está vacía porque simplemente no se superponen.

seleccione st_asewkt (st_intersection (ST_GeographyFromText ('POLYGON ((70 -40,70 -39,71 -39,71 -40,70 -40))'), ST_GeographyFromText ('POINT (70.48 -39)'))) st_asewkt - ------------- SRID = 4326; COLECCIÓN DE GEOMETRÍA VACÍA

Ver el vídeo: BUFFER in Postgis STBuffer