Wie erstelle ich einen Kachelserver aus Openstreetmap-Daten für Anfänger?

11

Ich bin ein Anfänger bei GIS und entwickle eine Java-Anwendung, die eine Karte benötigt. (Die Karte würde speziell von nur einer Stadt auf den Philippinen stammen.) Ich habe nach verschiedenen Möglichkeiten gesucht, dies zu tun, und festgestellt, dass ich einen Kachelserver benötige, um die Karte zu platzieren, da ich ohne die auf diese zugreifen kann Verbindung des Internets. Ich bin ein Anfänger und die meisten Tutorials, die ich gesehen habe, waren kompliziert und enthalten Schritte, die ich noch nicht ausführen kann. Kennt jemand Tutorials oder kann er mir beim Erstellen des Kachelservers helfen, wenn man bedenkt, dass ich ein Anfänger bin?

Meebee
quelle
Muss es in Java sein?
RK

Antworten:

9

Es gibt eine sehr gute Website für Anfänger über OpenStreetMap World, die sich auf Personen konzentriert, die von anderen Kartendiensten stammen, die Ihrer Frage entsprechen könnten: http://switch2osm.org/serving-tiles/

Wenn Sie jedoch einige Kacheln erstellen möchten, die offline bereitgestellt werden sollen, z. B. http://www.maptiler.org/ , konzentrieren Sie sich jedoch auf Rasterdaten.

Wenn ich dies tun müsste, würde ich wahrscheinlich einen Blick auf TileMill werfen , um das Design zu erstellen und eine MBTiles-Datei zu erstellen, und sie dann in eine TMS-Dateistruktur konvertieren , die von OpenLayers oder Leaflet im Offline-Modus verwendet wird.

Ja, es ist ziemlich kompliziert und viele neue (aber aufregende!) Sachen, sorry.

Jorge Sanz
quelle
Hallo, danke für die Antwort. Wenn ich alle benötigten Kacheln heruntergeladen habe, wie kann ich sie verwenden, um sie in meiner Java-Anwendung zuzuordnen? Entschuldigung, ich bin ein Anfänger. Die Karte ist nur offline. Ich habe die Geotools-Bibliothek verwendet, um eine Karte in meine Java-Anwendung einzufügen, aber sie besteht nur aus Shapefiles. Deshalb habe ich an einen Kachelserver gedacht, aber an einen Offline-Server.
Meebee
Ich habe keine Ahnung, ob es bei GeoTools einen Treiber für eine TMS-Struktur gibt. Ich würde eine neue Frage mit einer genaueren Beschreibung posten, damit die Leute Sie besser verweisen können.
Jorge Sanz
4

Für eine einzelne Stadt sind Tilemill und Tile Drawer zwei großartige Optionen: http://switch2osm.org/serving-tiles/using-an-all-in-one-solution/

Tilemill liefert Ihnen eine '.mbtiles'-Datei, eine SQLite3-Datenbank, die alle Ihre gerenderten Kacheln enthält. Sie müssen auch ein benutzerdefiniertes Stylesheet für die Daten entwickeln.

Tile Drawer erledigt im Wesentlichen alles für Sie, was zu einem EC2-Server führt, mit dem Sie das eigentliche Rendern Ihrer Kacheln durchführen können. Wenn Sie auf diesen Server ssh und tilestache-seed.py für Ihre Region ausführen, können Sie ein Verzeichnis mit vorgerenderten Kachelbildern abrufen, die an die gewünschte Stelle kopiert werden können.

Michal Migurski
quelle
2

Da Sie ein Anfänger sind, würde ich empfehlen, dass Sie die OpenGeo Suite verwenden. Es wird mit GeoServer (Kartenserver) und PostGIS (räumliche Datenbank) geliefert. Es ist ein integriertes Paket, sodass Sie sich noch keine Gedanken über die Integration machen müssen. Ich schlage vor, dass Sie zuerst die Tutorials durchführen und, wenn Sie sicher genug sind, Ihre eigenen Daten oder OSM-Daten ausprobieren . Es hat einen Shape File Loader, so dass es nicht zu schwer sein sollte. Viel Glück :)

RK
quelle
2

Wenn ich das richtig verstehe, möchten Sie die Kacheln auf demselben Computer ablegen, auf dem Ihre Java-App ausgeführt wird. In diesem Fall benötigen Sie per se keinen Kachel-Webserver. Sie müssen lediglich Ihren Webkarten-HTML-Code vorbereiten und zusammen mit den Kartenkacheln auf einer lokalen Festplatte ablegen. Sie können dann über das Datei-URI-Schema darauf zugreifen .

Eine ziemlich einfache Möglichkeit, Kacheln zu generieren, besteht darin, dem " Maperitive Tutorial: Eine Wander-Webkarte in zehn einfachen Schritten " zu folgen .

Igor Brejc
quelle
Hallo, danke für die Antwort. Wenn ich alle benötigten Kacheln heruntergeladen habe, wie kann ich sie verwenden, um sie in meiner Java-Anwendung zuzuordnen? Entschuldigung, ich bin ein Anfänger. Die Karte ist nur offline. Ich habe die Geotools-Bibliothek verwendet, um eine Karte in meine Java-Anwendung einzufügen, aber sie besteht nur aus Shapefiles. Deshalb habe ich an einen Kachelserver gedacht, aber an einen Offline-Server.
Meebee
Ich kann Ihnen mit Java nicht viel helfen, und es hängt auch sehr davon ab, was Sie mit der Karte tun müssen. Sie können sich den Quellcode von JOSM ansehen, die in Java geschriebene Open-Source-OSM-Mapping-App.
Igor Brejc