2012-10-18 1 views
5

Ich bin neu in Sachen Google Maps. Ich habe eine Tabelle, in der eine Liste aller Standorte (die Position von Supermärkten) mit ihrem Längen- und Breitengrad aufgeführt ist.Latitude und Longitude aller Orte, die sich im Umkreis von 10km von meinem aktuellen Standort befinden, über google map (mit PHP)

Jetzt möchte ich alle möglichen Standort (Mai Breite und Länge) dieser Super-Läden, die im Umkreis von 10 km von meinem aktuellen Standort sind.

Ich habe keine Ahnung, wie ich dies mit Google Map (in PHP-Code) tun kann. Welche Google Map API sollte ich verwenden? für mich

Vielen Dank im Voraus

+1

Einige Codebeispiele? Was hast du probiert? – transilvlad

+0

@tntu danke für deine antwort ... eigentlich habe ich keine idee wo ich anfangen soll was soll ich benutzen. Ich habe nichts versucht –

+0

Zumindest bieten mehr Informationen darüber, wie Ihr System arbeiten muss. In PHP kann cau nicht mit den Maps API interagieren, es sei denn, Sie verwenden etwas JavaScript-Code, um Daten an PHP zu übergeben. – transilvlad

Antwort

6

https://developers.google.com/maps/articles/phpsqlsearch_v3 Werfen Sie einen Blick auf über Jeder Vorschlag, Projektcode, werden Informationen hilfreich sein. Sollte dir eine gute Idee geben.

Für Standorte in Ihrem Marker-Tabelle, die in einem gewissen Radius Abstand einer bestimmten Breite/Länge sind, können Sie eine SELECT- Aussage über die Haversine Formel basiert. Die Haversine-Formel wird allgemein zur Berechnung von Großkreisabständen zwischen zwei Paaren von Koordinaten auf einer Kugel verwendet. Eine eingehende mathematische Erklärung ist von Wikipedia gegeben und eine gute Diskussion der Formel, wie es auf die Programmierung bezieht, ist auf der Website von Movable Type.

Hier ist die SQL-Anweisung, die die nächsten 20 Orte finden, die sind innerhalb eines Radius von 25 Meilen um die 37, -122-Koordinate. Es berechnet den Abstand basierend auf dem Breitengrad/Längengrad dieser Zeile und dem Ziel Breitengrad/Längengrad und fragt dann nach nur Zeilen, wobei der Abstand Wert ist weniger als 25, sortiert die gesamte Abfrage von Entfernung, und beschränkt es auf 20 Ergebnisse. So suchen Sie nach Kilometern statt von Meilen, ersetzen Sie 3959 mit 6371.

+0

Wo ist diese SQL-Anweisung? – Faizan

+0

Überprüfen Sie unter "Suchen von Positionen mit MySQL" Thema – xelber

6

Sie verwenden können, Abfrage von Mysql verfolgt alle Filialen zu erhalten im angegebenen Meilen

select * from stores where lat!='' and lng!='' and (3959 * acos(cos(radians(" . $centerpoints['lat'] . ")) * cos(radians(lat)) * cos(radians(lng) - radians(" . $centerpoints['lng'] . ")) + sin(radians(" . $centerpoints['lat'] . ")) * sin(radians(lat)))) < " . $distanceInMile 
+0

Wie berechnen Sie $ centerpoints ['lng'] und $ centerpoints ['lat']? – AlanP

+0

Was 3959 in der Abfrage tatsächlich tut? –

Verwandte Themen