AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Suche nach Orten über X/Y Koordinaten
Thema durchsuchen
Ansicht
Themen-Optionen

Suche nach Orten über X/Y Koordinaten

Ein Thema von alzaimar · begonnen am 28. Mai 2005 · letzter Beitrag vom 29. Mai 2005
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Suche nach Orten über X/Y Koordinaten

  Alt 28. Mai 2005, 08:07
Datenbank: Ms-SQL • Version: 2000 • Zugriff über: ADO
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!
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Suche nach Orten über X/Y Koordinaten

  Alt 28. Mai 2005, 08:24
Zitat von alzaimar:
.... So was gibt es doch schon, oder? ...!
Hai alzaimar,

zumindest online gibt es das.
Dort steht auch irgendwo wie er die Berechnungen macht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Suche nach Orten über X/Y Koordinaten

  Alt 28. Mai 2005, 08:30
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
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#4

Re: Suche nach Orten über X/Y Koordinaten

  Alt 28. Mai 2005, 09:01
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.
Gruß

Albi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Suche nach Orten über X/Y Koordinaten

  Alt 28. Mai 2005, 09:06
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
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Suche nach Orten über X/Y Koordinaten

  Alt 29. Mai 2005, 09:09
@marabu: DAS war es, was ich irgendwo irgendwann gelesen habe! Danke.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz