Openlayers mit Vektorkarte

Hmm…die genannten Links haben mir leider nicht weitergeholfen.
Kann sonst noch jemand weiterhelfen?

Klar, wenn du uns sagst, wo es klemmt. “Haben mir leider nicht weitergeholfen” bringt uns nix.

Was hast du real ausprobiert oder auch nicht verstanden? Und hast du schon den Kollegen wegen mapsForge kontaktiert?

Gruss
walter

Nahmd,

Möglicherweise ist die Software Garmin Basecamp zusammen mit der Deutschland-Freizeitkarte (1.3Gb) was für Dich?

Gruß Wolf

Danke für die Antworten!

Basecamp sieht auf den ersten Blick ganz gut aus.

Ich habe mit Maperitive eine zu Testzwecken eine kleine Karte gerendert und sie mit meinen sehr rudimentären JavaScript-Kenntnissen in Openlayers eingebunden. Ich hätte allerdings ganz gerne eine Karte von ganz Deutschland möglichst bis Zoomstufe 17 oder noch besser 18.
Die Datenmenge wird natürlich riesig.
Auf dem Smartphone nutze ich Oruxmaps. Da ist ganz Deutschland nur wenige GB groß.

Meine Frage: Kann ich ein solches oder ähnliches Kartenformat in Openlayers einbinden und falls ja wie?

Also du möchtest gerne OSM-basierte Kacheln bis zur Zoomstufe 17 oder 18 für ganz deutschland offline auf deinem PC haben, und diese dann via OpenLayers in einem Browser darstellen?

Und auf deinem Smartphone hast du schon derartige Kacheln in Benutzung mit OruxMaps (nur wenige GB groß)?

Kannst du dann die Ordnerstruktur mit den Kacheln vom Smartphone auf deinen PC kopieren?

Ich habe es anders verstanden. Wenn man die Kacheln in allen Zoomstufen anlegen würde, dann würden die wenigen GB nicht aussreichen. Sondern dann werden es schnell ganz ganz viele.
Daher will er lieber Vectordaten ausliefern, die aber bequem mit Openlayers einbinden. Vorteil je nach Zoom berechnet der Browser das Bild aus den Rohdaten selber nur der Bereich (boundingbox) je Anfrage ändert sich.

Ja, genau das ist meine Absicht. Danke viw. Du hast es nochmal deutlicher auf den Punkt gebracht.

Ich habe keine Ahnung wie die Sache bei den 3D Dingen da funktioniert. Aber ich glaube das zu mindest die Opensincemap auf html5 basis im Browser gerendert wird. Welchen Aufwand das jetzt für deine Karte/Anwendung bedeuten würde weiß ich nicht.

und das aber alles offline auf einem eigenständigen Rechner?

Ob das mit http://wiki.openstreetmap.org/wiki/OpenScienceMap geht, kann ich nicht genau beurteilen.

Meine persönliche, größtenteils theoretische Einschätzung:

Statt alle Tiles im Voraus zu berechnen, wäre bei ganz Deutschland eher ein Tile Server angebracht, der den aktuellen Kartenausschnitt erst auf Anfrage rendert. Das ist allerdings meist komplexer und aufwändiger zu installieren als Maperitive, besonders unter Windows. Für Linux gibt es z.B. das OSM Mapnik Setup als Installations-Pakete.

Mir wäre nicht bekannt, dass es schon eine Lösung zum Lesen des Mapsforge- oder eines ähnlichen Formats per JavaScript im Browser gibt.

Auf was ich gestoßen bin, ist ein Tile Server Aufsatz für Mapsforge: https://github.com/develar/mapsforge-tile-server
Finde ich sehr cool, hat der Demo nach allerdings Einschränkungen: bei Deutschland muss man weiter reinzoomen und Beschriftungen/Symbole werden teilweise abgeschnitten.

Für Rendering im Browser sind verschiedene Ansätze auf Basis von Vector Tiles und WebGL in Arbeit, z.B. von Mapbox, mit Plugin für Leaflet. Für OpenLayers 3 gibt es ein einfaches Beispiel (Canvas), einen kompletten Karten-Renderer hat OpenLayers selbst noch nicht. Mit welcher Lösung und wie man am besten Vector Tiles offline erzeugt, muss man sich vermutlich erst mal selbst erarbeiten.

Als Alternative könnte man evtl. auch Oruxmaps in einer Android VM verwenden.

Die einfachste Lösung ist aber vermutlich immer noch - wie schon erwähnt - eine klassische Desktop-Anwendung auf Basis von Garmin- oder neuerdings Mapsforge-Karten.

OpenScienceMap im Browser scheint mir momentan eher eine Insellösung ohne Overlays oder Integration zu sein:

http://www.opensciencemap.org/?p=678

Für eine lokale Server-Installation kann man vermutlich mod_tile, Tirex und TirexStache weglassen und nur eine osm2pgsql PostGIS Datenbank mit TileStache verwenden.

Das klingt für mich sehr interessant. Für die Informationen in dem github-Link bin ich allerdings scheinbar zu blöd. Das verstehe ich leider überhaupt nicht.

Im Netz konnte ich sonst leider kaum was dazu finden - lediglich eine sehr gute Anleitung, wie man ihn mit CGPSL verwenden kann.
http://www.naviboard.de/vb/showthread.php?t=57617

Kannst du mir sagen, wie ich den am geschicktesten in Openlayers einbinden kann?

Hab den Mapsforge Tile Server jetzt mal bei mir unter Linux installiert, hoffe, dass das so auch für Windows funktioniert:

Benötigt Java 8 (1.8.0), siehe https://www.java.com/de/.

  1. Mapsforge Tile Server v0.2 herunterladen und entpacken

  2. eine OpenAndroMaps Karte herunterladen und entpacken

  3. Server starten
    im Verzeichnis mapsforge-tile-server-0.2 ein Konsolenfenster (Eingabeaufforderung/Terminal) öffnen und folgendes ausführen, dabei den Pfad zur heruntergeladenen Karte bei --map entsprechend anpassen:

    Windows (kein Start-Script für Windows dabei, daher Wrapper direkt aufrufen)

    
    .\bin\wrapper-windows-x86-32.exe ..\conf\wrapper.conf -- --map ..\..\baden-wuerttemberg\baden-wuerttemberg.map
    
    

    Linux

    
    ./bin/mts console --map ../../baden-wuerttemberg/baden-wuerttemberg.map
    
    
  4. Layer URL für OpenLayers 3/Leaflet:

    
    http://localhost:6090/{z}/{x}/{y}.png
    
    

    Online Client zum Testen (Gist, download)

Um eine andere Karte zu verwenden, z.B. die Freizeitkarte:

  1. Konfiguration anpassen
    Die Parameter kann man auch in mapsforge-tile-server-0.2/conf/mapsforge-tile-server.conf eintragen (sonst greift --theme nicht), z.B.:

    
    #--theme ../renderThemes
    --theme ../../freizeitkarte/freizeitkarte.xml
    --map ../../freizeitkarte/Freizeitkarte_BADEN-WUERTTEMBERG.map
    --max-file-cache-size 0
    
    
  2. Server ohne Parameter starten:
    Windows

    
    .\bin\wrapper-windows-x86-32.exe ..\conf\wrapper.conf
    
    

    Linux

    
    ./bin/mts console
    
    
  3. ggf. Browser-Cache leeren

Tut es leider nicht. Die Windows-Version scheint irgendeinen Fehler zu haben.

WrapperSimpleApp Error: java.lang.UnsatisfiedLinkError: no webp-imageio in java.library.path

Hab jetzt die Version verwendet wird, die hier modifiziert wurde: http://www.naviboard.de/vb/showthread.php?t=57617

In Kombination mit deiner schönen Anleitung läuft es!!

Ganz herzlichen Dank!!

Hello. Sorry for English. I live in Deutschland, but my deutsch is not yet good. Feel free to answer in deutsch.

I am the author of mapsforge tile server — if you have any troubles or suggestions, feel free to file issue https://github.com/develar/mapsforge-tile-server/issues/new (you can use deutsch if you want).
If it is useful for you, I can make it more user-friendly for end users.

Making things user-friendly would be great!

Because I see many users asking for offline OSM-based solutions … do a search for “offline” on http://help.osm.org and you will see … :wink:

Not an hour ago your solution was added to the github wiki pages of mapsforge project as “mapsforge application” … I saw that you mentioned your project many month ago on mapsforge mailing list.

Maybe we can do a special entry on http://wiki.openstreetmap.org/wiki/Offline_Openstreetmap

Hi

ich habe den Server von

runtergeladen und ausprobiert. Das Ganze unter Windows. Als Anzeige habe ich den lokalen Tileserver als Mapsource in MOBAC konfiguriert. Man kann somit sehr schön druckbare PDFs erzeugen. An den Kachelgrenzen gibt es mit den Label leider noch Probleme (abgeschnitten). Ab für eine lokale Verwendung ist das super.

Weiß jemand was für den Windows Tileserver geändert wurde, da dazu nichts geschrieben wurde?

Viele Grüsse
Achim

@develar Was muß am originale Tileserver geändert werden, dass das unter Windows läuft? Gibts da ne neue lauffähige Version?

…weiß jemand was da für Windows modifiziert wurde?

Oder @develar

wie bringt man Deinen ORIGINAL Mapsforge-Tileserver unter Windows zum Laufen?

Gibts eine Newsgroup für den Server?

Viele Grüsse
Achim

Ps: Unter Windows scheint es dies nicht zu geben ==> wrapper-windows-x86-32.dll

jvm 1 | WrapperManager:
jvm 1 | WrapperManager: WARNING - Unable to load the Wrapper’s native library
because none of the
jvm 1 | WrapperManager: following files:
jvm 1 | WrapperManager: wrapper-windows-x86-32.dll
jvm 1 | WrapperManager: wrapper.dll
jvm 1 | WrapperManager: could be located on the following java.libr

Was geändert wurde weiß ich auch nicht. Aber ich meine das Hauptproblem ist, dass die Unterstützung für das WebP Bildformat in Windows oder der Java VM für Windows fehlt, siehe Fehler aus #15:

WrapperSimpleApp Error: java.lang.UnsatisfiedLinkError: no webp-imageio in java.library.path

Weiß aber nicht ob generell oder nur bei bestimmten Windows Versionen. Im Zip der modifizierten Variante ist eine Bibliothek im lib Verzeichnis enthalten, das beim Aufruf (siehe unten) mit “-Djava.library.path=lib” referenziert wird.

Ja, da fehlen wohl Dateien. Das kann man glaube ich umgehen (aus meiner Anleitung #14):


.\bin\wrapper-windows-x86-32.exe ..\conf\wrapper.conf -- --map ..\..\baden-wuerttemberg\baden-wuerttemberg.map

In der Anleitung zur modifizierten Variante wird Java direkt aufgerufen (weiß nicht ob das ohne weitere Änderungen geht):


jre1.8.0_XX\bin\java -Djava.library.path=lib -jar mapsforge-tile-server.jar --map <PfadKarte1>[,<PfadKarte2>,...] --theme <PfadTheme>

Am zielführendsten wäre es wohl wie in #16 von develar vorgeschlagen, je Problem ein Issue auf GitHub anzulegen:
https://github.com/develar/mapsforge-tile-server/issues/new

Hi Ikonor,

vielen Dank für die Tipps.

Deine Anleitung in #15 hab ich aufmerksam gelesen und auch durchgeführt. Prinzipiell geht das ja. Aber Deine Anleitung kann die fehlenden DLLS auch nicht ersetzen.

Ferner ist dieser Weg doch nur eine “Überbrückungslösung” da das Labelrendering an den Kachelgrenzen nicht “passt”. Ich habe da schon bei EMUX (MFG Entwickler) nach einem “vollen” Server gefragt. Aber die Antwort war “Das ist nicht so einfach” und die Prioritäten liegen auf Android.

Ich nutze derzeit den"primitive" Server von MOBACSRV der für meine Zwecke ausreichend funktioniert. Die Labelrendering- Fehler sind dort sogar geringer.

===> http://sourceforge.net/projects/mobac/files/Misc/

===> Sourceen ==> http://sourceforge.net/p/mobac/code/HEAD/tree/trunk/tools/MapsforgeSrv/

Viele Grüsse
Achim