C# Mit C# Anwendung Route planen, Google oder Bing?

Mathias09876

Ensign
Registriert
Nov. 2010
Beiträge
235
Hallo zusammen,

ich würde gerne in meiner C# Anwendung einen Routenplaner implementieren. Hintergrund ist folgender, das Programm ist für die örtliche Feuerwehr und soll Informationen zum aktuellen Einsatz anzeigen. Die Informationen werden via OCR aus einem Fax ausgelesen, unter anderem eben auch der Einsatzort. Idee war es nun, sich auf einem Monitor eine Route anzeigen zu lassen bzw. diese auch zu drucken.

Meine Frage wäre, ob hier schon jemand mit so etwas Erfahrung hat bzw. mit welchem Anbieter das einfacher geht, Google oder Bing. Bei einer ersten Google-Suche habe ich gelesen, dass es wohl mit beiden möglich ist. Mein Verdacht wäre jetzt, dass es mit Bing einfacher geht, da Bing und C# beide aus dem selben Hause stammen aber ganz sicher bin ich mir nicht.

Hoffe Ihr könnt mir weiter helfen


Grüße
Mathias
 
Naja egal was du einsetzst, letztendlich wird's auf ne HTTP-Abfrage rauslaufen... nen großen Unterschied wird's da wohl nicht geben... außer es gibt von MS spezielle Biblitoheken für die Bing-Routenplanung in .net, aber irgendwie wage ich das zu bezweifeln...

Wobei es für Bing wohl nen Silverlight-Control gibt, ka ob sich das evtl nutzen lässt...
siehe auch hier: http://www.microsoft.com/maps/isdk/...ontrolInteractiveSdk.Tutorials.Services.Route

evtl auch interessant:
http://www.codeproject.com/KB/miscctrl/Virtual_myEarth_Control.aspx

Hier wie man in Silverlight mit dem Bing Control umgeht:
http://stackoverflow.com/questions/2162626/silverlight-add-pushpin-to-bing-maps-via-c
 
Zuletzt bearbeitet:
@dcobra: Wenn du das so schreibst hört es sich ja gerade so an, als könnte man die API direkt aus C# aus nutzen ...
 
Kann man auch, .NET bringt alles mit was dazu nötig ist. Das Programm drumrum muss man sich natürlich selber bauen, aber was sollte Google denn sonst noch alles mitliefern? Das wichtige, die Daten, sind so leicht und abstrakt zugänglich.
Ergänzung ()

Zum Beweis mal kurz eine kleine Testanwendung gebaut. Zwar in Java weil ich das visual Studio nicht installiert habe und als Servlet weil ich kein bock hatte eine Gui zu bauen, aber das tut ja nichts zur Sache.

Alles, was ich dafür aus der Google Maps API gebraucht habe, sind 2 HTTP-Requests. Einen für die Daten, einen für die Karte. Den Pfad für der Karte hab ich aus dem ersten Request.

Das leg.steps gibt übrigens an, wie viele detaillierte Schritte verfügbar sind (diese habe ich aus Platzgründen weggelassen). Also sowas wie "Make a U-turn at Alexanderplatz", davon gibt's in meinem Beispiel 23.
 

Anhänge

  • gmaptest.PNG
    gmaptest.PNG
    149,3 KB · Aufrufe: 739
Zuletzt bearbeitet:
@dcobra: Mir gings halt um "passend"...
Wenn du von passender API sprichst, hört es sich halt nach entsprechenden .net-Klassen an... darum ging's mir nur.

Dass es über HTTP-Abfragen geht, oh Wunder, hab ich ja bereits oben geschrieben...
 
"passend" zum Problem des Threadstarters, und darum geht es doch :)
War dann wohl aneinander vorbeigeredet.
 
Zuletzt bearbeitet:
Danke für Eure schnellen Antworten, dann werde ich mir wohl die Google API's mal genauer anschauen und es damit versuchen.
 
dcobra schrieb:
Alles, was ich dafür aus der Google Maps API gebraucht habe, sind 2 HTTP-Requests. Einen für die Daten, einen für die Karte. Den Pfad für der Karte hab ich aus dem ersten Request.

Wäre es möglich, dass du die beiden Requests hier postest? Ich habe es bereits geschafft von einer Adresse die Latitude und Longitude Werte zu bekommen, schaffe es aber grad noch nicht mir das ganze in einer Karte anzeigen zu lassen bzw. eine Route zu planen.

Grüße
 
Es gibt von Google auch nen Haufen C# Implementierungen ihrer API...
 
Darkfirefighter schrieb:
Wäre es möglich, dass du die beiden Requests hier postest? Ich habe es bereits geschafft von einer Adresse die Latitude und Longitude Werte zu bekommen, schaffe es aber grad noch nicht mir das ganze in einer Karte anzeigen zu lassen bzw. eine Route zu planen.

Grüße

Vielleicht gibt es einen besseren Weg, aber testweise hab ich's so gemacht:

1. Request für die Daten mittels Directions-API, wenn lieber xml statt json gewünscht ist dann entsprechend in der URL "json" durch "xml" austauschen

Code:
http://maps.google.com/maps/api/directions/json?origin=Berlin&destination=Leipzig&sensor=false

Für die Karte musst du in der Antwort nach polyline_overview -> points nach dem ewig langen, kryptischen String suchen, im Beispiel oben wäre das:

Code:
gnq_IglzpAqByCE~@tGtLdUji@fG`WzEhqB_Hz@@r@v@bStEy@nAlAHvA|H`xCgBjKrCxHnIb{CyArGZtCtArAR~DdMr{EsHaDxIdCtUtOfPbDrEzC~@jDb@lNrAjD|zBb{CfcArmAj`Fb{G|HrD|c@nGzHyChJiO~FgEtu@aKbHHtH|B~KzJp~@hgApN`UfJb[vW~bBzFzOxIfKja@nUfKvDpKv@zj@m@vIx@lHdFfHrI`R`\\pFdE`FdBjHb@z|A{@tNxCjKbHrJrMxG|Pph@loCpHzQf[|^ln@fp@bmAzs@hIvLhF`SxAfWC|h@qCfoBTl\\bBhQvIx^tAdL`@bPmAfWwWnvA{B`SmAj}EbC`[t_Ad|GrIrl@rFdQ|GlHfNpEpaCbk@bWfBlOoAtKqC`aAwe@pZeM~LwBjOe@zEBhL|BfSxJ`LfKvwCjbDhTpWhMvTxKl[~FpYpO|eAfL~a@zMfX`x@phAtH`OtH`TvI|a@pl@`_EjGpWrJbW|ItOxQnU~cE``FrR|WfPr^vo@lqBfJrUtkAznBji@lnAv{@vsAnYj]t\\vZzUjPvaBx_A~OdObN~S|m@tcBvG|IjYfXrHnMjHlWxG|b@~GhS`GzJhVrXnKrRvt@h`CbKdXnLfStx@jcAbfArgBrQ`_@dMj`@vl@`bCxl@nbDxi@|}AxMbZvNrSrKvJdKdGlpBrn@`uAre@zOvIrPhPpOrWtv@joBlNzV|ZxZ|yBvhBlRlSnIpMtQrb@d\\brAng@b`Bdf@rvAtO~Z`R`UzHnGlkAzn@|LfJddBbeBjH|Ktj@dgAxMlQjrApeAvg@zXbQvOpPtW|hAvhCtRnXhhAbz@fi@j^t^vQt[nJzThDrhNj{Ar|@pLhgAxY|nDvgA`UhDpLDjQkCdqAec@vVaG`XBtx@hOpY~D`KFhM_A`SsEnbCuo@nUgB`cA}@|]qDjpBm^bSgKlw@yh@`U{JpXqFty@aJhLGtQrAxPxD|OhGhlDldBlBnAh@pCq@tB{CtB{AeAIwDbZcnDld@otGpKwfBtIahInAia@ra@qhEnKkz@jA}A|Cw@xCwEtJo@~P_Fd\\}K|M{InD}@hHzA~QnQ~TjHrGFdLgGzc@cOzKcFvBuDnBsMzBaDzIiAd^cK~GU|b@dh@nNdUdJba@zOj\\|EdQnT}ApA`ARf`@~MtJtAs@vEcIpCIJo@

2. Request für die Map mittels static map API unter Miteinbeziehung des polyline-Strings von gerade eben:

Code:
http://maps.google.com/maps/api/staticmap?size=400x400&sensor=false&path=weight:3|color:red|enc:XXX

Am Ende wo das XXX steht musst du den String einsetzen und bekommst als Response das fertige Bild zurück.
Desweiteren musst du aufpassen, wie man gültige URLs zusammenbaut. Das ist auf der Seite aber genau dokumentiert.

Dabei stellt sich mir gerade die Frage, was mit verdammt langen Routen passiert. Eventuell sprengt die Länge des Polyline-Strings dann die technische Grenze für GET-Parameter. Der String oben ist jedenfalls schon relativ lang und es funktioniert noch.

edit: eine Herausforderung wäre noch, sicherzustellen, dass die Städtenamen etc. passen.


Mike Lowrey schrieb:
Es gibt von Google auch nen Haufen C# Implementierungen ihrer API...


Von google? oder meinst du für google? Ersteres wäre mir neu.
 
Zuletzt bearbeitet:
Habe es jetzt so gelöst wie von dcobar vorgeschlagen, funktioniert wunderbar :)
Vielen Dank!
 
Es gibt auch noch MS Mappoint, da würden die Daten lokal vorliegen und es müsste nicht auf Google/Bing zugegriffen werden.
 
Zurück
Oben