Mam minLat, minLong, maxLat i maxLong z pudełka narysowanego na mapie. W tej chwili moje zapytanie o uzyskanie wszystkich punktów w polu wygląda następująco:
SELECT *
FROM geomTable
WHERE (longitude BETWEEN minLon AND maxLon)
AND (latitude BETWEEN minLat AND maxLat)
Chcę użyć kolumny geometrii zamiast kolumn długich / długich, aby uzyskać wyniki. Próbowałem tego zapytania:
SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326);
z tego postu: Wybierz obwiednię za pomocą postgis, ale nie zwraca żadnych wyników.
Czy ktoś ma przykład, jak wybrać wszystkie punkty w polu utworzonym przez min i max lat / longs przy użyciu geometrii w postgis?
geomTable
i polemytable.geom
?Odpowiedzi:
Twoje dane nie są w formacie lat / lon, więc musisz wepchnąć swoje pole w przestrzeń współrzędnych swoich danych:
źródło