2016-03-30 7 views
0

I die (Niederländisch) xy erhalten haben Koordinaten einer Person und die xy-Koordinaten von verschiedenen Standorten in der Datenbank, zum Beispiel:PHP/Mysql Umkreissuche zwischen xy-Koordinaten

x = 158322 
y = 460782 

Jetzt möchte ich finden alle Orte in einem Umkreis von 15km um den Standort der Person. Was ist der beste Weg, dies zu finden und können Sie ein Beispiel geben?

Antwort

1

Je nachdem, wie viele Daten Sie haben, müssen Sie den Abstand zwischen Ihrem Fixpunkt und jedem Punkt in Ihrem Datensatz berechnen. Wenn das Dataset groß ist, können Sie zuerst alle Punkte in einer 15-km-Boundingbox abrufen und dann die Abstände für die übereinstimmenden Punkte berechnen.

den Abstand in PHP zu berechnen, können Sie etwas tun:

$distance = sqrt(($x-$x2)^2+($y-$y2)^2 // = pythagoras a^2+b^2=c^2 

Ofcourse dies die Erde flach ist annimmt. Wenn Sie die Krümmung der Erde kompensieren müssen, suchen Sie in Google nach "Abstand zwischen zwei Koordinaten berechnen".

Wenn ich mich richtig erinnere, die „dutch Koordinaten“ Sie erwähnen, sind in Meter, so eine 15 km Begrenzungsrahmen bekommen sollte so einfach wie x +/- 15000 und y +/- 15000

Btw sein, mysql eine sqrt Funktion hat, so technisch können Sie Mach das alles in mysql.

Auch, wenn Sie Code benötigen, um Rijksdriehoekscoördinaten in GPS-Koordinaten zu konvertieren, lassen Sie es mich wissen;)

Verwandte Themen