Geosuche

Wenn Sie einem Modell ein Geopoint-Feld hinzufügen, können Sie fragen, welche Datensätze einem Punkt am nächsten liegen, nach Entfernung sortiert. Die Abfragen arbeiten mit Punkten und einem Radius.

Geopoint-Felder

Ein Geopoint-Feld enthält einen Breitengrad und einen Längengrad, und die Konsole bearbeitet es mit einer Kartenauswahl. Ein Modell kann mehrere haben, jeweils ein eigens benannter Punkt. Der Punkt wird in derselben Transaktion indexiert wie das Schreiben des Datensatzes, sodass ein Datensatz nach dem Speichern sofort per Ort gefunden werden kann.

Am nächsten zu einem Punkt oder zu einem Datensatz

searchByLocation nimmt einen Breiten- und einen Längengrad und gibt die Datensätze in der Nähe dieses Punkts zurück. findNearbyRecords nimmt einen Datensatz und gibt die ihm nächstgelegenen zurück, wobei dieser Datensatz selbst ausgelassen wird. Beide lassen sich auf ein Modell eingrenzen. Die Ergebnisse kommen nach Nähe sortiert, und jedes enthält seine Entfernung in Metern zusammen mit ID, Modellschlüssel, natürlichem Schlüssel und Inhalt des Datensatzes.

Radius und Paginierung

Der Radius ist optional. Mit Radius enden die Ergebnisse bei dieser Entfernung. Ohne Radius gibt die Abfrage die nächsten Datensätze zurück, wo auch immer sie liegen. Die Ergebnisse sind cursor-paginiert, nur vorwärts, standardmäßig 50 pro Seite. Ein Breitengrad außerhalb von -90 bis 90 oder ein Längengrad außerhalb von -180 bis 180 wird abgelehnt.

Zugriffsregeln und vorhandene Datensätze

Eine Abfrage läuft unter den Zugriffsregeln auf Zeilenebene, die für den Aufrufer gelten. Wird einem Modell mit vorhandenen Datensätzen ein Geopoint-Feld hinzugefügt, werden die bestehenden Zeilen nicht indexiert. foir geometry bietet Befehle, die die im Index fehlenden Datensätze auflisten und nachtragen.

Nur Punkte und Radius

Flächen, Linien und Begrenzungsrahmen werden nicht unterstützt.

Details nachlesen

Die CLI-Referenz dokumentiert die Geometrie-Befehle: Suche in der Nähe eines Punkts, Suche der Datensätze, die einem anderen am nächsten liegen, und Nachtragen von Datensätzen, die noch nicht indexiert sind.