9 votos

PostGIS: Encontrar los puntos en los que se encuentran dentro de un conjunto de coordenadas

Tengo un PostGIS db, y quiero saber los puntos que se encuentran dentro de una región (de un cuadro delimitador). Tengo dos conjuntos de coordenadas, de la que puedo obtener todos los cuatro rectángulo de puntos que forman la caja (si es necesario). Mi columna de datos en cuestión se llama 'punto' y también es de tipo punto.

  • Es de todos modos hay que especificar cuatro conjuntos de coordenadas (lat/long) y conseguir todos los puntos que se encuentran dentro de la caja.
  • O especificar dos puntos y dejar el DB de trabajo fuera de las esquinas de un rectángulo, y el retorno de los puntos dentro de

Sólo en caso de que no estoy siendo claro qué es lo que quiero lograr. El equivalente con 'vainilla' sql si yo tuviera una lat y long campo en lugar de un punto sería:

SELECT * FROM myTable where lat> xMin AND lat < xMax AND long > yMin and long < yMax

ACTUALIZADO EDITAR:

Estoy tratando de underdark de la solución. Al principio yo no tenía la ST_MakePoint constuctor (ahora lo hago) y me dan un muy similares error (tan sólo en un personaje diferente).

SELECT * FROM myTable WHERE ST_Within(ST_MakePoint(point),GeometryFromText('POLYGON((75 20,80 30,90 22,85 10,75 20))',4326))

y estoy recibiendo este error:

ERROR:  function st_makepoint(point) does not exist
LINE 1: SELECT * FROM triples WHERE ST_Within(ST_MakePoint(point),Ge...
                                          ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


********** Error **********

ERROR: function st_makepoint(point) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 39

EDITAR:

En el corto plazo me puede resolver con:

SELECT * FROM triples WHERE box '((point1),(point2))' @> point

Pero voy a tener que averiguar por qué ninguno de los PostGIS funciones no trabajan para mí.

9voto

tobes Puntos 19
SELECT * FROM myTable WHERE 
ST_Within(the_geom, GeometryFromText ('POLYGON((75 20,80 30,90 22,85 10,75 20))', 4326))

<-- reemplazar las coordenadas necesarias

3voto

Erik Öjebo Puntos 6937

Suena como que usted desea que el BBOX (Cuadro Delimitador) de sus puntos - así ST_Extent sería favorable.

BBOX2D

http://www.bostongis.com/postgis_extent_expand_buffer_distance.snippet

proporcionaría la http://postgis.net/docs/ST_Extent.htm la página, pero el servidor está teniendo problemas

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