Verwenden Sie räumliche MySQL-Erweiterungen, um Punkte innerhalb des Kreises auszuwählen

Ich habe einen Tisch angerufenflags das enthält eine Spalte namenscoordinates das ist voll von MySQL 'Punkten'. Ich muss eine Abfrage durchführen, bei der alle Flags innerhalb eines Kreises basierend auf einer Breiten- und Längengradposition mit 100 m Radius abgerufen werden.

Aus Sicht der Nutzung basiert dies auf der Position des Benutzers. Zum Beispiel würde das Mobiltelefon den Breiten- und Längengrad des Benutzers angeben und ihn dann an diesen Teil der API weiterleiten. Es liegt dann an der API, einen unsichtbaren Kreis um den Benutzer mit einem Radius von 100 Metern zu erstellen und dann die Flags zurückzugeben, die sich in diesem Kreis befinden.

Es ist dieser Teil der API. Ich bin nicht sicher, wie ich ihn erstellen soll, da ich nicht sicher bin, wie ich SQL zum Erstellen dieses unsichtbaren Kreises und zum Auswählen von Punkten nur innerhalb dieses Radius verwenden soll.

Ist das möglich? Gibt es eineMySQL räumliche Funktion das wird mir dabei helfen?

Ich glaube dasBuffer() Funktion kann dies tun, aber ich kann keine Dokumentation finden, wie man es benutzt (zB Beispiel SQL). Im Idealfall benötige ich eine Antwort, die mir zeigt, wie ich diese Funktion verwenden kann oder wie ich sie am nächsten finde. Wo ich diese Koordinaten als Geodatenpunkte speichere, sollte ich eine Geodatenfunktion verwenden, um das zu tun, was ich fordere, um die Effizienz zu maximieren.

Flaggentabelle:

Ich würdeKoordinatenName

Beispielreihe:

1 | [GEOMETRIE - 25B] | Tenacy AB

Für die Flaggentabelle habe ich Breiten-, Längen- und Ost- und Nordpositionen (UTM).

Der Standort des Benutzers ist nur der Standard-Breiten- / Längengrad, aber ich habe eine Bibliothek, die diese Position in UTM konvertieren kann

Antworten auf die Frage(8)

Ihre Antwort auf die Frage