Holen Sie sich die nächstgelegenen Orte in Google Maps mithilfe von MySQL-Geodaten

8

Ich habe eine Datenbank mit einer Liste von Geschäften mit Breiten- und Längenangaben. Basierend auf dem aktuellen (lat, lng) Ort, den ich eingegeben habe, würde ich gerne eine Liste von Gegenständen aus denen in einem Umkreis von 1 km, 5 km usw. erhalten?

Was sollte der Algorithmus sein? Ich brauche den PHP-Code für den Algorithmus selbst.

    
Atif Mohammed Ameenuddin 10.01.2011, 09:55
quelle

3 Antworten

26

Sie müssen nur die folgende Abfrage verwenden.

Sie haben zum Beispiel Breiten- und Längengrad 37 und -122 in Grad eingegeben. Und Sie möchten nach Benutzern im Umkreis von 40 km vom aktuellen gegebenen Längen- und Breitengrad suchen.

%Vor%

Wenn Sie die Suchentfernung in km suchen möchten, ersetzen Sie in der obigen Abfrage 3959 durch 6371.

Sie können auch Folgendes tun:

  1. Wählen Sie alle Längen- und Breitengrade

  2. aus
  3. Berechnen Sie dann die Entfernung für jeden Datensatz.

  4. Der obige Prozess kann mit Mehrfachumleitung durchgeführt werden.

Zum Optimieren der Abfrage können Sie Stored Procedure verwenden.

Und das kann Ihnen auch helfen.

    
Gaurav 12.02.2011, 18:43
quelle
6

Sie sollten eine Datenbank auswählen, die räumlich aktiviert ist wie mysql oder < a href="http://postgis.refractions.net/"> postgresql und dann können Sie einige der bereit Funktionen, die sie bereitstellen. Sonst, wenn Sie es manuell tun möchten, überprüfen Sie dieses für Heads-up.

    
Argiropoulos Stavros 10.01.2011 11:20
quelle
6

Wenn Sie PHP-Code zum Berechnen der Entfernung zwischen zwei Koordinatensätzen suchen, ist dies eine Klasse, die ich angepasst habe und die die Entfernung in Kilometern berechnet. Wenn Sie jedoch eine Datenbank verwenden, würde ich vorschlagen, dass Sie prüfen, ob Ihre Datenbank räumliche Berechnungen ausführen kann (ich weiß, dass SQL Server und MySQL von Kopf bis Fuß sind).

Hier ist ein interessanter Link für eine SQL-Lösung, die Sie vielleicht auschecken möchten. Optimieren eines SQL-Aufrufs der hairsine-Formel in PHP

%Vor%     
Jarrod Nettles 11.02.2011 17:38
quelle

Tags und Links