MySql Abfrage mit Berechnung?

  • Hallo,


    grundsätzlich ja. Die Formel dazu heißt "greater circle distance". Wenn du das selber implementierst musst du aber über alle (!) Datensätze laufen und für jeden die Distanz zu deinem Punkt ausrechnen, was wenig performant ist.


    Ab MySQL 5.5 hat MySQL aber ein Erweiterung namens "Extensions for Spatial Data" eingebaut, damit geht das besser und schneller. Aber AFAIK hat MySQL erst ab Version 5.6 die Funktion ST_DISTANCE(punkt1, punkt2) an Bord, mit der die Distanz von zwei Punkten berechnet wird.


    Gruß, noisefloor

  • Kann man bei ST_DISTANCE auch den maximalen Distanz Radius angeben?


    Habe es bis jetzt wie folgt gelöst:
    [code=php]SELECT city, country FROM coordinates ORDER BY ST_Distance(Point(:longitude, :latitude), geolocation) LIMIT 5[/php]


    Also beschränkt durch das Limit. Da ich aber ja nicht weis wie viele Punkte es im Umkreis gibt wurde ich gerne den Suchradius mit angeben.

  • habe es erstmal nur überflogen und bei mir zum testen das Endergebnis noch mit 0.621371192237334 multipliziert. Dann hab ich ja auch Kilometer.
    Also ich würde mal Thread wird als wird als Erledigt markiert :thumbs1:
    :danke_ATDE: