![]() |
Datenbank: Ms-SQL • Version: 2000 • Zugriff über: ADO
Suche nach Orten über X/Y Koordinaten
Hallo
Ich würde gerne in meiner DB Orte und deren Position speichern. Anschliessend möchte ich alle Orte auflisten, die 'in der Nähe' eines Punktes P sind. 'In der Nähe' würde über den Abstand zwischen P und dem Ort definiert werden. Nun kann man das ja einfach sequentiell durchsuchen, aber das ist nicht schnell, vor allen Dingen, wenn man 1000000 Orte in der DB hat. So was gibt es doch schon, oder? Aber wie macht man das? Wie wird die Position abgespeichert? Danke für alle Ideen und Anregungen! |
Re: Suche nach Orten über X/Y Koordinaten
Zitat:
zumindest ![]() Dort steht auch irgendwo wie er die Berechnungen macht. |
Re: Suche nach Orten über X/Y Koordinaten
Hy Sharky
Danke für die Info, aber online bieten das so ziemlich alle Map-Dienste... Ich wollte eigentlich wissen, wie die Daten abgelegt werden müssen, um einen Index zu erstellen, der eine schnelle Umkreissuche ermöglicht. Ich meine, ich hätte irgendwann irgendwo mal was darüber gelesen. Aber, wie mein Nick schon sagt, nagt der Zahn des Vergessens an meinem Hirn :) Schönes WE |
Re: Suche nach Orten über X/Y Koordinaten
Hallo,
die Berechnung des ganzes erfolgt die Längen & Breitengrade. Somit must die Daten schonmal in der DB ablegen, zusätzlich würde ich dann noch in einer weiteren DB die Orte ablegen und über den einen Index mit jeweilgen Längen & Breitengraden verknüpfen. Dann brauchst Du nur noch die Daten zur deiner Berechnung aus der DB ziehen. Ich hoffe das hilft dir ein wenig weiter. |
Re: Suche nach Orten über X/Y Koordinaten
Hallo alzaimar,
die Entfernung eines Punktes zu anderen Punkten muss immer berechnet werden, aber man kann in großen Datenbanken dadurch optimieren, dass man einem Ort mehrere Koordinaten zuordnet. Das Prinzip ist folgendes: Ausgehend von einem Referenzpunkt werden verschiedene Gitter konstruiert, deren quadratische Maschen brauchbare Seitenlängen von z.B. 1 km, 2 km, 5 km, 10 km, usw. (du erkennst die Folge) haben. Beim Speichern eines Ortseintrages werden die jeweiligen Gitterkoordinaten errechnet und abgespeichert. Bei der Distanzsuche wird dann für einen gesuchten Ort die passende Gitterkoordinate herangezogen, um das Gros der Datensätze von einer eventuell noch nachfolgenden Einzelberechnung (computed field) auszuschließen. Ich hoffe ich konnte mich verständlich ausdrücken Grüße vom marabu |
Re: Suche nach Orten über X/Y Koordinaten
@marabu: DAS war es, was ich irgendwo irgendwann gelesen habe! Danke.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz