Abfragen in Längen- und Breitengrad in MySQL
Bevor Sie Fragen für bestimmte code-Beispiele, ich wollte nur mal Fragen, ob es möglich ist, eine Abfrage so etwas pseudo-code:
wählen Sie die Elemente aus der Tabelle, in denen lat/lon - = - innerhalb von x Meilen von einer bestimmten lat/lon-Punkt-
Ist, dass machbar? Oder muss ich den Sprung durch einige Reifen?
Alle guten Ansätze, die empfohlen werden könnten, wäre Super!!!
InformationsquelleAutor der Frage Genadinik | 2011-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie suchen für die Haversine Formel, aber ein guter Anfang könnte sein:
Zitieren aus der ersten url:
Hier ist die SQL-Anweisung, findet die nächsten 20 Standorten innerhalb eines radius von 25 Meilen um die 37, -122 koordinieren. Es berechnet die Entfernung auf der Grundlage der Breite/Länge der Zeile und der Ziel-latitude/longitude, und fragt dann nur die Zeilen, wo der Wert für die Distanz weniger als 25 Bestellungen der gesamten Abfrage durch die Entfernung und die Grenzen, die es zu 20 Ergebnisse. Die Suche nach Kilometern statt Meilen, ersetzen 3959 mit 6371.
InformationsquelleAutor der Antwort daroczig
Ich würde empfehlen, entweder mit SpatiaLite oder PostgreSQL für diese Art von operation. Sie haben gebaut, in der Art von Funktionen, die Sie versuchen zu hand-code. Sie haben auch die richtige Unterstützung für räumliche Daten, welche nicht wirklich existieren in MySQL.
Nicht genau eine Lösung in MySQL, aber eine bessere Lösung, wenn Sie wollen, zu tun zu halten räumlichen Anforderungen in der Zukunft.
InformationsquelleAutor der Antwort TheSteve0