MYSQL Anzeige naheliegender GEOCoordinaten
Motorsägen
- datenbank
0 globe0 Paul0 luti
0 Motorsägen
Hallo,
ich habe mir eine schöne MYSQL Adressdatenbank gebastellt und habe alle Orte mit den jeweiligen Geocoordinaten X + Y Wert versehen.
Soweit alles ganz toll. Nur die Frage ist, wenn ich meinen jetzigen Wert mit Geocoordinaten kenne, wie suche ich dann in der Datenbank Punkte in meiner nähe heraus?
Ich gibt es für MYSQL hier vielleicht einen passenden Befehl der nach Werten sucht die meinen 2 Werten ähnlich sind (2 Werte weil X und Y Koordinaten ja ähnlich sein müssen...
Danke
Motorsäge
n'abend,
Hallo,
ich habe mir eine schöne MYSQL Adressdatenbank gebastellt und habe alle Orte mit den jeweiligen Geocoordinaten X + Y Wert versehen.
Soweit alles ganz toll. Nur die Frage ist, wenn ich meinen jetzigen Wert mit Geocoordinaten kenne, wie suche ich dann in der Datenbank Punkte in meiner nähe heraus?
Datensätze in deiner Nähe kannst du (schnell und Einfach) in einem Quadrat um deinen Suchpunkt finden:
X zwischen (SuchX - Radius) und (SuchX + Radius) und
Y zwischen (SuchY - Radius) und (SuchY + Radius)
Da du aber das Format der Kooridnaten nicht angegeben hast, kann ich dir über diesen Denkanstoß hinaus nicht weiterhelfen.
weiterhin schönen abend...
Es gibt auch eine Spatial Extension für MySQL. Ist aber für Deine "Probleme" etwas overdressed :-)
Hallo,
Es gibt auch eine Spatial Extension für MySQL. Ist aber für Deine "Probleme" etwas overdressed :-)
Nunja, wenn er tatsächlich Adressen _in der Nähe_ finden möchte, wäre die Spatial Extension doch gar nicht verkehrt ... Um z.B. alle Orte der Entfernung nach zu einer gegebenen Koordinate "händisch" zu sortieren bedarf es ansonsten schon ein wenig Code. Mit DISTANCE geht das sicherlich einfacher ...
Grüße, luti
Moin :-)
das Format der 2 Spalten ist varchar(12) und eine Koordinate sieht:
Spalte1 = 9.9990823
Spalte2 = 53.7177583
aus
Hallo,
das Format der 2 Spalten ist varchar(12) und eine Koordinate sieht:
Spalte1 = 9.9990823
Spalte2 = 53.7177583
daher wäre es günstiger für Deine Koordinaten einen angemessenen numerischen Datentyp wie DECIMAL mit einer entsprechenden Nachkommaanzahl oder DOUBLE zu verwenden.
Freundliche Grüße
Vinzenz