Entfernungsberechnung aus Datenbank

Hallo liebe Leute,

ich möchte auf meiner Website eine Entfernungssuche für Deutschland einbinden, die NUR eine Entfernung berechnet, ohne diese zu Visualisieren, also ohne dass gleich eine Karte geladen werden muss.

Diese Funktion muss aus technischen Gründen direkt in die Datenbank integriert werden, aus der dann die Berechnung erfolgt.

Nun würde ich gerne wissen wie die “OpenStreetMap” die Berechnungen umsetzen, steckt da auch eine Datenbank hinter?

Sollte eine Datenbank mit diesen Informationen bestehen, wäre es erlaubt diese Daten auch für meine Website zu nutzen, ich könnte dann einen Verweis auf die OpenStreetMap auf meiner Website platzieren.

Ich freue mich auf Antworten, sowie Anregungen und Vorschläge.

Liebe Grüße
Tedronan

Ja openstreetmap verwendet eine Datenbank. Allerdings werde ich aus deiner Beschreibung nicht schlau. Willst du nun die Luftlinienentferung zwischen zwei koordinaten berechnen? Dafür brauchst du keine Datenbank.
Willst du den kürzestene Weg zwischen zwei Koordinaten über Straßen oder Wege berechnen, dann brauchst du dafür eine Datenbank mit den Straßen und Wegen. Dafür gibt es mehrere Projekte. Je nach Anforderungen sind dann aber viele Vorverarbeitungschritte erforderlich.
Wenn du das direkt in der Datenbank machen möchtest, wirst du auch um pgrouting nicht drumherum kommen. Dieses Programm führt die Berechnung komplett in der Datenbank durch.
Aber die Anforderungen an die Datenbank ist auch nicht ohne. Bei OSM wirst du nur schwer um eine Postgresqldatenbank mit Postgis herum kommen. Sollte dein Server dies nicht anbieten wird es ohnehin sehr sehr schwer.

Bei Verwendung der Daten von OSM ist ein Hinweis auch nicht mehr fakultativ!

Hallo Tedronan,

Willkommen im Forum.

Wenn Du keine Karte anzeigen willst, kommt man schnell auf die Vermutung, dass Du den Standort mittels einer Adresse angeben willst. Aber auch das Wörtchen Entfernungsuche bzw. -berechnung ist doppeldeutig, hier kann man Luftlinie oder echte Entfernungskilometer (abhängig vom genutzten Verkehrsmittel) errechnen. Oder kurz gesagt, der Lösungsraum ist beliebig groß, dass kann von einem SQL-Statement ( wenn die Koordinaten bereits vorliegen) oder einer einfachen API Nutzung, über eine MySQL Datenbank bis hin zu der erwähnten Postgis Datenbank sein.

Eventuell willst Du deine Anforderungen etwas genauer schildern, damit wir zielgerichteter Antworten können.

MfG Georg V.

Vielen Dank für eure Antworten.

Es sollten wie beim Routenplaner die kürzeste Entfernung zwischen 2 Adressen, über Straßen und Wege berechnet werden. (PKW)
Dann sollten Straße, Hausnummer und Stadt bzw. PLZ des Startpunktes und ebenso die des Zielpunktes angegeben werden nicht nur die Koordinaten.
Ich möchte möglichst eine MySQL-Datenbank als Grundlage nutzen, damit kann mein Server umgehen.
Das größte Problem ist für mich nur wo bekomme ich Daten zur Umsetzung solch eines Projektes her.

Eventuell habe ich Glück und das Katasteramt stellt mir Daten zur Verfügung, aber auf deren Antwort möchte ich nicht untätig warten.
Ich hoffe einfach mal, dass mir hier auch jemand helfen kann.
Schön wäre es für mich zu wissen, an wen ich mich wenden kann um diese Daten zu bekommen oder darüber zu sprechen.

LG

Hallo Tedronan, auch von mir erstmal ein herzliches willkommen :slight_smile:

Unsere Daten kannst du gerne hier runterladen und auch in verschiedene Datenbanken einspielen
http://wiki.openstreetmap.org/wiki/Planet.osm
http://wiki.openstreetmap.org/wiki/Databases#Choice_of_DBMS

So wie ich dich aber bisher verstehe, ist das schon ein kompletter Routen-Berechnung, nur dass du dir ebend die Zielroute nicht anzeigen lässt. Am besten nutzt du daher bestehende Tools und bettest die in deinen Workflow ein. Oder vielleicht sogar Dienste anderer Hersteller?
http://wiki.openstreetmap.org/wiki/Routing

Das kann die Datenbank sowieso: http://www.postgis.org/docs/ST_Distance.html

Also erstens möchte er das ganze mit MySQL machen.
Zweitens wäre ich mir unsicher, ob die Fuktion nicht doch nur die Luftlinienentfernung zwischen zwei Geometrien berechnet.

@Tedronan du wirst wohl sehr viel selber entwickeln müssen, wenn du von MySQL nicht weg möchtest. Denn die Standard OSM Datenbank ist das opensource Datenbanksystem Postgre. Vorallem, weil es hier mit der Erweiterung Postgis nicht nur die geografischen Datentypen gibt, sondern eben auch die ganzen Berechnungsfunktionen.
Auf dieser Datenbank aufgesetzt gibt es dann das Projekt PGRouting welches die Berechnung in der eigenen Datenbank durchführt. Wie das geht ist hier erklärt: http://workshop.pgrouting.org/
Eine lauffähige Umgebung gibts auf der LiveDVD.
Neben dem reinen Berechnen ist auch das Aufbereiten der Daten nicht ganz trivial, weshalb ich dir raten würde lieber fertige Tools anzuschauen und gegebenfalls weiter zuentwickeln als das mal eben in der MYSQL Datenbank nachzubilden.

Es bleibt ja immer noch die Möglichkeit auf verschiedene Services zurückzugrifen, wie i!i empfohlen hat.

Vielen Dank für die vielen Tipps ich werde mal schauen wie ich das am Besten handhaben kann.

Möchte nur dezent hinweisen, dass
a) MySQL auch Support für Geodaten hat in Form der “Spatial Extensions”, unter denen es auch “analytische Funktionen” gibt.
b) bis Anfang 2009 (?) OSM MySQL statt Posgresql/Postgis benutze (vor der Einführung der 0.6 API), AFAIK.

:wink: