Ich habe ein minLat, ein minLong, ein maxLat und ein maxLong von einem Kasten, der auf einer Karte gezeichnet wird. Im Moment sieht meine Abfrage zum Abrufen aller Punkte in der Box folgendermaßen aus:
SELECT *
FROM geomTable
WHERE (longitude BETWEEN minLon AND maxLon)
AND (latitude BETWEEN minLat AND maxLat)
Ich möchte die Geometriespalte anstelle von Lat / Long-Spalten verwenden, um die Ergebnisse zu erhalten. Ich habe diese Abfrage versucht:
SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326);
Von diesem Beitrag: Wählen Sie mit postgis den Begrenzungsrahmen aus, der jedoch keine Ergebnisse liefert .
Hat jemand ein Beispiel, wie man alle Punkte innerhalb einer Box auswählt, die durch Min- und Max-Lat / Longs unter Verwendung der Geometrie in Postgis erstellt wurde?
geomTable
und das Feldmytable.geom
?Antworten:
Ihre Daten sind nicht in lat / lon, daher müssen Sie Ihre Box in den Koordinatenraum Ihrer Daten schieben:
quelle