Frage

Unter Berücksichtigung eines Radius von 50 km von der Basis Stadt i müssen die Städte in der Nähe zu finden.

Ihr Skript sollte in PHP sein ... Gibt es eine API, es herauszufinden ....

Bitte bitte helft mir ...

THanks ...

War es hilfreich?

Lösung

Dies ist eine großartige Ressource: code.google.com/apis/ maps / articles / phpsqlsearch.html # findnearsql

Basis Stadt: Lat: 37 Lng: -122

SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 50 ORDER BY distance LIMIT 0 , 20;

Die gleiche Prinzip wie die Lösung von "Tricker".

Andere Tipps

Ich schrieb eine Art aus Skripten, dass die Abstände zwischen den Koordinaten zu berechnen. Sie können es tun, wenn Sie zwei Koordinaten haben:

base :
 - latitude
 - longitude

city :
 - latitude
 - longititude

Sie haben in der Basis Stadt geo coords passieren, dann müssen Sie einen cURL zum Google oder Yahoo-Server senden (abhängig von welchem ??Geocoder api Sie wollen Sie), um die Stadt coords zu bekommen.

Nun ist es die Frage, aus welchen Städten haben Sie Koordinaten? wenn Sie keine haben, können Sie eine zipcode Bereich Datenbank kaufen (dann können Sie Ihre Koordinaten aus der Stadt haben Sie wollen),. wenn Sie die Koordinaten von Stadt haben, können Sie eine komplizierte Berechnung ausgeführt als eine Entfernung führen. Danach kann man sehen, wenn das Ergebnis / Abstand mehr oder weniger ist dann 50, wenn ist weniger Sie es als Stadt im Bereich zurückkehren können.

Es ist nicht etwas, das man in wenigen Minuten zu tun

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top