Generieren interaktiver Kacheln mit Nodejs, Mapnik und PostGIS for Leaflet

8

Ich suche etwas wie zu tun dies aber , wo ich alle Daten auf dem gleichen Server.

Ich habe die Tutorials unter sparkgeo.com/labs/big/ durchgearbeitet und habe einige Schwierigkeiten. Letztendlich möchte ich es Leafletwie das Tutorial @ sparkgeo.com/labs/bigleaflet/ zum Laufen bringen, aber ich kann die Version des vorherigen Tutorials auch nicht zum Laufen bringen. So wird die endgültige Version wird Generierung R Shinyvon Fliesen interaktive Karten und Schichten zugegriffen durch , Leafletdie durch Postgismittels node.jsVerwendung mapnikund mapbox.

Die Waxin diesem Tutorial verwendeten Bibliotheken wurden entfernt, daher habe ich diese installiert . Ich zeigte mit den Kacheln in der HTMLDatei http://localhost:8000/{z}/{x}/{y}.pngauf meinen Standort von wax.g.min.js. Es werden keine Zensusdaten angezeigt, wenn ich den cencon.jsCode ausführe. Ähnlich habe ich bei der LeafletVersion der HTMLDatei auf den lokalen Host für die Ebenen verwiesen, die nicht angezeigt werden. Sie werden erfolgreich in die PostGISDatenbank geladen und ändern die Anmeldeinformationen der Datenbank.

OK, ich bin neu in all dem und frage mich, ob mir etwas Offensichtliches fehlt. Ich habe den Code nicht anders als den zuvor erwähnten geändert. Muss ich noch etwas tun, um die Kacheln @ zu generieren http://localhost:8000/{z}/{x}/{y}.png? WaxHaben Sie jetzt, da dies abgelöst ist, Links für geeignetere Tutorials mapbox?

ideamotor
quelle
1
Haben Sie versucht, die Entwicklertools von Chrome (insbesondere Registerkarte "Netzwerk" und "Konsole") zu öffnen, um festzustellen, ob Fehler oder Zeitüberschreitungen vorliegen?
blah238
Ja auf jeden Fall bekommen GET http://localhost:8000/10/166/395.png net::ERR_CONNECTION_REFUSEDund so weiter. Ich frage mich, ob die Datenbank zu langsam ist, da das Laden einer Tabelle in QGIS ewig dauert. Aktualisiert diese Einstellungen. Wenn ich nur zu einer Kachel mit der echten URL navigiere, gibt es mir auch nichts.
ideamotor
Das Wax GitHub Repo ist noch verfügbar, übrigens: github.com/mapbox/wax
blah238
Danke für die Hinweise. Für diejenigen, die mitmachen, wurde "localhost" in die IP des Servers geändert. Immer noch Probleme - die Kachelebenen sind unsichtbar. Ich lege dies ins Bett, um an einer schnelleren Lösung zu arbeiten, kann aber zu einem späteren Zeitpunkt antworten.
ideamotor

Antworten:

3

Es ist ein bisschen höchste Zeit, dass ich antworte, aber hier ist:

  • Da die Verwendung von Wachs wie erwähnt veraltet ist, finden Sie hier einige Mapbox-Beispiele, um Ihnen den Einstieg zu erleichtern. Beachten Sie, dass die Leaflet-API in Mapbox.js eingebettet ist und Hand in Hand mit Mapbox-Code verwendet werden kann.

  • Verwenden von http://localhost:8000/{z}/{x}/{y}.pngMitteln zum Speichern der Kacheln in Ihrem eigenen Ordner. Dies ist gut, vorausgesetzt, Sie möchten nicht zu viele Zoomstufen. Andernfalls wird es sehr schwierig, so viele Kacheln auf Ihrem Computer zu verwalten. Vielleicht möchten Sie das zuerst selbst klären.

  • Wenn Sie ERR_CONNECTION_REFUSED auf einem Windows-Localhost erhalten, um auf diese von deklarierten Kacheln zuzugreifen http://localhost:8000/{z}/{x}/{y}.png, liegt das Problem möglicherweise darin, dass sich Ihre js-Quelle auf einem Remoteserver befindet und nicht im Ordner localhost. Natürlich erlaubt der Computer keinem nicht vertrauenswürdigen js-Code im Internet, auf den Inhalt Ihres Computers zuzugreifen.

Mit anderen Worten, anstatt die js-Bibliothek wie folgt hinzuzufügen:

<script src="http://mapbox.com/foo/bar/mapbox.js"></script>

... laden Sie die js in Ihren localhost-Ordner herunter und verwenden Sie diese:

<script src="/mapbox.js"></script>

Wenn dies Ihr Problem nicht löst, stellen Sie sicher, dass Ihr lokaler Hostserver (XAMPP oder was auch immer) über die Berechtigungen zum Zugriff auf Ihr Dateisystem verfügt.

  • Ich glaube, Sie verwenden gleichzeitig ein bisschen zu viele Bibliotheken für eine einfache Webkarte. TileMill ist ein großartiges Tool, um mit minimalem Aufwand interaktive Karten zu erstellen. Kombinieren Sie dies mit Mapbox.js und Ihren JavaScript-Kenntnissen, damit Sie eine Karte wie im ersten Beispiel erstellen können.

Wenn Sie die Daten haben, die Sie in CSV oder einem ähnlichen Format anzeigen möchten, empfehlen wir Ihnen, sofort mit TileMill zu beginnen.

Doruk Karınca
quelle