Wie OSM in WPF anzeigen?

Hallo zusammen, ich bin vollkommen neu hier und kenne mich nicht aus, darum entschuldigt im voraus…

Ich bin ein Bergwachtmitglied und Mechatroniktechniker, beruflich habe ich meist mit der Programmierung von Motoren, GUI und beherrsche verschiedene Sprachen.

Habe jetzt nun die Idee ein Arbeitskarte zu entwickeln (die Idee ist erst mal vollkommen Privat und hat nichts mit der Bergwacht zutun), wo man im Wald beim Einsatz Autos, Personen in eine Karte einzeichnen kann. Natürlich könnte man das auch über bestehende Programme tun, aber wenn die Hände e schon zittern, die Witterung nicht gut, sind einfach die bestehenden Oberflächen nichts.

Frage1: Kann man OSM zu einem Gewissen teil herunterladen um unabhängig vom Internet zu sein?
Frage2: Ich würde das ganze gern in WPF (C#) einbinden, ist das möglich?

Danke im voraus

Antwort 1: Ja. Es gibt Exporte für den gesamten Planeten, für einzelne Länder und teilweise auch bestimmter übergreifender Regionen. Außerdem kannst du kleinere Gebiete (einige km²) direkt herunterladen. Zudem gibt es “fertige Karten” in diversen Formaten (Garmin, Mapsforge, OsmAnd, …), die du eventuell verwenden kannst.

Antwort 2: Das ist sicher möglich. Die Daten von OSM kannst du in fast jedes beliebige Format konvertieren. Du brauchst dann nur noch eine Bibliothek, die das Format lesen und darstellen kann.

Zu Antwort1: Wo kann ich die herunterladen?
Zu Antwort 2: Du hättest nicht zufällig ein Beispiel?

Klick mal auf openstreetmap.org auf “Export”.

Dort kannst Du kleine Gebiete runterladen.
Größere Gebiete am besten über http://download.geofabrik.de/ .

Chris

Hallo chris66, gut die habe ich jetzt heruntergeladen, wie kann ich die jetzt in meinem Programm anzeigen (C#)

Stöbere doch mal etwas im OpenStreetMap-Wiki und mach dich mit den Grundzügen von OSM vertraut.

Das wichtigste: es gibt “Rohdaten” in einer Datenbank, die stellen Punkte, Linienzüge, Flächen etc. dar. Das sind die eigentlichen Geodaten.

Diese Daten kann man auf vielfache Weise graphisch darstellen, auch rendern genannt.

geht mal zu http://wiki.osm.org sowie http://help.osm.org und gib in die dortigen Suchfelder “offline” ein.

Für Beispiele wäre wichtig: welche Hardware schwebt dir zur Darstellung der Karten vor? PC, Laptop, Tablet, Android, iOS, … ?

zu stepahn75
Das schöne bei was neuem es donnern so viele Informationen ein, da liest ne halbe stunde, und zum Schluss merkst das war für die Katze ;D.

Also über Laptop, das Prgramm würde ich gern in C# WPF schreiben

Zu C# fällt mir OsmSharp ein (keine Ahnung bzgl. WPF). Selbst nicht ausprobiert und weiß nicht, wie gut man das erweitern und eigene Marker platzieren kann, kann aber zumindest Offline-Rendering und der Kartenstil lässt sich auch per MapCSS anpassen.

Schau Dir mal Greatmaps an (Opensource)
http://greatmaps.codeplex.com/

Greatmaps lässt sich sowohl online als auch offline verwenden und unterstützt WPF…

Greatmaps lädt nur die Kacheln herunter, kann sie lokal abspeichern. D.h. das ist keine Vektorkarte.

OSMSharp schaut interessant aus. Leider kein Tutorial auffindbar, nur alte Links, die aussagen, daß die Seite umgezogen ist.
Nach einigem Rumstöbern fand ich auf https://github.com/OsmSharp/OsmSharp rechts einen Button “Download ZIP”, über den man an eine Sammlung von Beispielprogrammen kommt. WPF ist zwar nicht dabei, aber Windows Forms.

Ich ab’s mal mit Visual Studio 2010 C# EXPRESS (d.h. nicht die Vollversion auf meinem Dienstrechner, sondern die “freie” Version auf meinem Privatrechner) versucht.

Eine Reihne von Fehlermeldungen beim Öffnen:
Solution folders are not supported in this version of the application…

Läßt sich nicht kompilieren:
error MSB4019: The imported project “C:\Program Files (x86)\MSBuild\Microsoft\Portable\v4.0\Microsoft.Portable.CSharp.targets” was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

Naja, da fehlen mir noch ein paar Libraries: Entwicklung für Smartphones interessiert mich nicht, habe deswegen nie diesen Bereich heruntergeladen.
An dieser Stelle lasse ich es mal dabei bewenden: vielleicht kümmere ich mich ein andermal drum, eine Projektmappe zusammenzustellen, die auch mit der Express-Version funktioniert.

Richtig, das betrifft aber nur den “Kartenhintergrund”. Gebiete, Wege etc. lassen sich nachträglich mit Vektoren bzw. Polygonen hervorheben (Bsp auf die Schnelle: http://www.websofia.com/2013/02/gmap-net-tutorial-maps-markers-and-polygons/))

Für kleine Gebiete sehe ich das durchaus als Vorteil. Außerdem lassen sich dadurch auch Luftbilder offline als Hintergrund verwenden…

Von daher hängt es, berg2304feuer, von Deinem genauen Einsatzszenario ab…

Hallo. Danke schön für die zahlreichen Infos. Werde mich da durchlesen. Eins vorab der Link von free_as_a_bird bringt ein Error…
Das Problem bei GreatMaps, ist glaube ich auf den ersten Blick zusehen, das die Karte auch vom Server gezogen wird.
Mit OSM Export kann ich zwar die Karter herunterladen aber das sind “nur” die werpkt. Wenn ich das in JOSM öffne sehe ich nur Linien, gehe ich auf Hintergrund Mapnik gehe werden nur Kacheln bis zur einer gewissen Stufe erzeugt (offline). Das wichtigste ist erstmal das mir eine Detailkarte OFFLINE zu Verfügung steht, da ich im Wald nicht immer Netz habe.

Jetzt schaue ich mir mal OSMSharp an ;D

Danke nochmal für die Beiträge…!!

Hallo, habe jetzt OSM SDK (osmsharp.com/download) mittels NuGet installiert, wie arbeite ich nun damit? Gibt’s da Beispiel??

Grüße

Hier https://github.com/OsmSharp/OsmSharp/tree/master/OsmSharp.WinForms.UI.Sample gibts Beispielcode.

;D der Reihe nach…

wie würdet ihr in einem Frame oder sogar in einem WPF Frame die OSM Karte Anzeigen, bei great maps wird es ja auch heruntergeladen nur man sieht eben nicht die OPM HP Karte, sondern so schön diskret der hinweiß in der karte das es von OSM ist…

Danke

Willst du nur eine Zoomstufe, oder willst du mehrere?

Brauchst du die Vektordaten, oder reichen dir die Kartenkacheln?

siehe auf http://wiki.openstreetmap.org/wiki/Frameworks

Hallo, bis zum Waldweg

Wenn detailliert heißt das ich Vektordaten brauche, dann ja

Hallo,

Aber insgesamt schon in mehreren Stufen, oder reicht eine?

Nee, Vektordaten brauchst du dann, wenn du Informationen zu den Objekten brauchst, die im Kartenbild nicht sichtbar sind.

Es gibt bei OSM (bei Geodaten allgemein) zwei Abgabeformen: als Raster- und als Vektordaten. Rasterdaten bedeuten du hast eine Grafik, die x mal y Pixel groß ist, und wo durch Pixelfarben, Objektsignaturen etc. für Menschen klar ist, was dort in der Realität ist. Vektordaten sagen “auf Position x.xxxx, y.yyyy ist ein Punkt, dieser Punkt ist eine Telefonzelle” oder “Zwischen den Punkten 1.1111 und 2.2222 läuft ein Pfad mit Sand als Oberfläche, den man Montags bis Freitags von 11 bis 18 Uhr befahren darf”.

Dein Monitor kann aber nur Rasterdaten anzeigen (Schalte Farbe rr,gg,bb auf Kristall x,y im Monitor).

Der Schritt zwischen Raster- und Vektordaten bei Openstreetmap ist das sogenannte rendering. Dabei wird nach bestimmten Regeln, die irgendwo beschrieben sind, aus der Info das ein Weg ein Sandweg ist eine Linie (im Sinne von “die Pixel auf der Linie”) zwischen den beiden Punkten in einer bestimmten Farbe und mit einem bestimmten Muster gezeichnet.

Jetzt gibts aber mehrere Arten, die Vektordaten in Rasterdaten zu überführen, das sind also unterschiedliche Render-Regeln. Das Ergebnis sind dann bspw. die Humanitarian-, Verkehrskarte, die OpenCycleMap und noch ein paar mehr Kartenstile.

Per Definition ist ein Kartenstil aber immer eine Abwägung, welche Daten ich ins Kartenbild übernehme. Male ich eine ÖPNV-Karte, kann ich kleine Waldwege weglassen. Male ich eine Notfallkarte für die Bergwacht interessieren mich Frisörgeschäfte, Parkbänke oder Hundekottütenspender wohl eher nicht.

Jetzt ist die Frage: machst du dir die Mühe deinen eigenen Kartenstil als Rasterdaten zu rendern? Dann kannst du beispielsweise Maperitive http://wiki.openstreetmap.org/wiki/Maperitive nehmen - oder nimmst du einen bestehenden Kartenstil, wie den “normalen” auf openstreetmap.org , und zeichnest nur die dich interessierenden Objekte als Overlay drüber? Zweiteres ist einfacher, ersteres eventuell hübscher.

Also:

  • Gibt es einen Kartenstil, der alles das darstellt was du willst?
  • Ja: Super, nimm den!
  • Nein: Gibt es einen, mit dem du leben kannst?
    ** Ja: Nimm den und zeichne deine fehlenden Objekte drüber
    ** Nein: mach deinen eigenen Stil.

Hallo Senior Member, danke für die Grundlagen infos,

Ja in mehreren Stufen

Der Kartenstil von OSM ist zum reinkommen in das ganze vollkommen ausreichend…

Jetzt wieder zu “einfachen” Frage: Welche Adresse muss ich eingeben das mein Frame zB Baden Württemberg von OSM anzeigt?