Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   OpenStreetMap mit Delphi verwenden (https://www.delphipraxis.net/148793-openstreetmap-mit-delphi-verwenden.html)

Bambi 8. Mär 2010 15:30


OpenStreetMap mit Delphi verwenden
 
Hallo Leute,
viele von ecuh dürften die geniale OpenStreetMap kennen.
Nur mein Delphi nicht... ;-)

Was ich vor habe: ein kleines Progrämmchen zur Verwaltung von Unwettereinsätzen für die Feuerwehr (ist soweit schon fertig) soll die Möglichkeit bekommen, die einzelnen Einsatzorte auf einer Karte anzuzeigen. Dabei reichen mir (vorerst) eigentlich drei Funktionen:
- ich übergebe eine Adresse und auf der Map erscheint ein "Pin" oder ähnliches
- wenn ich mich auf der Karte bewege, sollen zumindest die Koordinaten, besser noch die passende Adresse ausgegeben werden
- wenn ich auf einen von den Pins klicke, sollte am Besten gleich der passende Einsatz aufgerufen werden (über einen Index oder die Koordinaten), ist aber ehe ein Nice-To-Have

Ich hab mir auch schon MapPoint von Mikrodoof angeschaut, aber 1. is mir des zu teuer und 2. sind ja nicht mal Straßen drin, die vor einem Jahr gebaut wurden... da ist die OSM wesentlich aktueller! Einziger Vorteil: es gibt ein halbwegs funktionierendes ActiveX-Steuerelement.

Wie kann ich denn nun die OSM-Daten in mein Projekt bringen? Ich hab auch schon externe Programme gefunden, z.B. Viking, hab aber noch nix gefunden, wie man das "Fernsteuerun" kann. Ein eigener Renderer oder so is sicher etwas zu aufwendig. Die Funktion Adresse->Map ist aber schon wichtig...

Hat jemand ne Idee, wie ich das anstellen könnte?

Gruß vom Bambi

Mithrandir 8. Mär 2010 16:13

Re: OpenStreetMap mit Delphi verwenden
 
Wenn man OSM nutzen will, steht man vor einem riesen Berg an Arbeit. Ich hatte zu dem Thema mal ein paar Threads erstellt, weil ich einen Routenplaner anfangen wollte. (Siehe hier, hier, hier und hier).

Für deinen Aufgabenbereicht bietet sich doch eigentlich Google Maps an, oder? Kann man ja auch in einem Windowsprogramm nutzen, siehe dieser Beitrag.

mjustin 8. Mär 2010 17:53

Re: OpenStreetMap mit Delphi verwenden
 
Zitat:

Zitat von Daniel G
Für deinen Aufgabenbereicht bietet sich doch eigentlich Google Maps an, oder? Kann man ja auch in einem Windowsprogramm nutzen, siehe dieser Beitrag.

Sind die beiden (OSM und Google Maps) denn lizenztechnisch denn vergleichbar? Die Google Maps API ist ja nicht ohne weiteres frei nutzbar.

http://de.wikipedia.org/wiki/OpenStreetMap#Lizenzen

Mithrandir 8. Mär 2010 18:03

Re: OpenStreetMap mit Delphi verwenden
 
Nein, sind sie nicht. Ein passus in der Lizenz für Google Maps verbietet z.B. einen Service, um Umschlagplätze für Drogendealer auf Google Maps einzuzeichnen. :mrgreen:

Das müsste ggf. der TE checken. Bei kommerzieller Anwendung bzw. interner Verwendung muss man den Service lizensieren. Allerdings handelt es sich hier ja um ein gemeinnütziges Projekt für einen geschlossenen Benutzerkreis. Da würde ich bei Google direkt nachfragen.

Ansonsten kann man natürlich auch die OSM-Daten nutzen. Man könnte ja einen Renderserver aufsetzen, oder einen vorhandenen wie den von Kosmos benutzen. Der generiert dann die nötigen Kacheln.

Dank der XML-Struktur der Rohdaten sollte es zudem ein Leichtes sein, eine Datenbank mit den Adressen des Einsatzgebiets zu erstellen. Er wird ja sicher nicht in ganz Deutschland tätig sein. ;)

So könnte man im Prinzip auch die Kacheln mit einem externen Renderer vorrechnen, und die einfach mit der Anwendung weitergeben. Dann bräuchte man die Karten nicht selbst Rendern, was eigentlich der größte Aufwand an der ganzen Sache ist. :)

DelphiMarkus 8. Mär 2010 18:11

Re: OpenStreetMap mit Delphi verwenden
 
Hallo!

Ich habe mich vor vor einiger Zeit mal mit der Umrechnung der Koordinaten in Tiles und umgekehrt beschäftigt. Im OSM-Wiki gibt es dazu einen Eintrag (Slippy map tilenames), aber dort wird kein Codeschnipsel für Pascal zur Verfügung gestellt. Deswegen habe ich mir den Python-Code übersetzt. Damit kann man die Tiles zu Koordinaten und die Koordinaten zu Tiles umrechnen. Die Tiles kann man dann ganz einfach passend vom Server runterladen.

Mithrandir 8. Mär 2010 19:40

Re: OpenStreetMap mit Delphi verwenden
 
Vielleicht kannst den Codeschnipsel ja hier oder in deren Wiki posten? :)

DelphiMarkus 9. Mär 2010 16:01

Re: OpenStreetMap mit Delphi verwenden
 
Hallo!

Das hatte ich auch vor, bin aber vorher noch nie dazu gekommen...
Ich habe es jetzt ins Wiki gestellt, bei mir funktioniert das Umrechnen ohne Probleme. Ich hoffe ich habe nichts vergessen, aber soweit ich sehe sollte alles da sein. War aber auch schon einige Arbeit bis ich raus hatte, welche Funktion in Python der in Delphi entspricht, aber nach viel probieren hab ich es dann doch geschafft. :)

Link: :arrow: Slippy map tilenames - Pascal

xZise 9. Mär 2010 17:45

Re: OpenStreetMap mit Delphi verwenden
 
Öh irgendwie fehlt das da? Also laut history ist da was, aber irgendwie ist da nix mit Pascal? Selbst in der Diff, aber ansonsten nix :mrgreen:

MfG
Fabian

Garfield 9. Mär 2010 18:01

Re: OpenStreetMap mit Delphi verwenden
 
Muss vermutlich noch freigeschaltet werden.

KalleAnka 18. Okt 2010 21:00

AW: OpenStreetMap mit Delphi verwenden
 
Ein wenig spät die Antwort - aber mir dieser Link sehr hilfreich:

http://code.google.com/p/openstreetmap-fpk/


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 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