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í.