Membuat Ubin Interaktif menggunakan Nodejs, Mapnik, dan PostGIS untuk Leaflet


8

Saya mencari untuk melakukan sesuatu seperti ini tetapi di mana saya memiliki semua data di server yang sama.

Saya telah mengikuti serangkaian tutorial @ sparkgeo.com/labs/big/ dan saya mengalami beberapa kesulitan. Pada akhirnya saya ingin membuatnya bekerja dengan Leafletseperti tutorial @ sparkgeo.com/labs/bigleaflet/ tapi saya tidak bisa mendapatkan versi di tutorial sebelumnya untuk bekerja juga. Jadi versi final akan menghasilkan R Shinypeta interaktif dan lapisan dari ubin diakses melalui Leafletdihasilkan oleh Postgisdengan cara node.jsmenggunakan mapnikdan mapbox.

The Waxpustaka yang digunakan dalam tutorial yang telah dihapus jadi saya menginstal ini . Saya menunjuk ubin di HTMLfile ke http://localhost:8000/{z}/{x}/{y}.pngdan menunjuk ke lokasi saya wax.g.min.js. Tidak ada trus sensus yang muncul dengan saya menjalankan cencon.jskode. Demikian pula dengan Leafletversi HTMLfile, saya menunjuk ke localhost untuk layer dan mereka tidak menampilkan. Mereka berhasil dimuat ke PostGISbasis data dan mengubah info masuk basis data.

OK, jadi saya baru dengan semua ini dan saya bertanya-tanya apakah saya kehilangan sesuatu yang jelas. Saya tidak mengubah kode selain yang saya sebutkan sebelumnya. Apakah ada hal lain yang perlu saya lakukan untuk menghasilkan ubin @ http://localhost:8000/{z}/{x}/{y}.png? Selain itu, sekarang Waxsudah digantikan, apakah Anda memiliki tautan untuk menggunakan tutorial yang lebih cocok mapbox?


1
Sudahkah Anda mencoba membuka alat pengembang Chrome (khusus tab dan konsol Jaringan) untuk melihat apakah ada kesalahan atau batas waktu?
blah238

Ya pasti mendapatkan GET http://localhost:8000/10/166/395.png net::ERR_CONNECTION_REFUSEDdan sebagainya. Saya bertanya-tanya apakah database terlalu lambat karena butuh selamanya memuat tabel ke QGIS. Akan memperbarui pengaturan itu. Ketika saya hanya menjelajah ke satu ubin dengan URL asli itu memberi saya apa-apa juga.
ideamotor

Repo Wax GitHub masih tersedia, BTW: github.com/mapbox/wax
blah238

Terima kasih untuk petunjuknya. Bagi yang mengikuti, akhirnya mengubah "localhost" ke IP server. Masih menghadapi masalah - lapisan ubin tidak terlihat. Saya meletakkan ini di tempat tidur agar dapat bekerja pada solusi yang lebih cepat tetapi dapat merespons di lain waktu.
ideamotor

Jawaban:


3

Ini agak tinggi waktu saya menjawab, tetapi begini:

  • Karena penggunaan Lilin sudah usang seperti yang Anda sebutkan, berikut adalah beberapa contoh Mapbox untuk Anda mulai. Ingatlah bahwa Leaflet API disematkan ke Mapbox.js dan dapat digunakan bersama dengan kode Mapbox.

  • Menggunakan http://localhost:8000/{z}/{x}/{y}.pngcara untuk menyimpan ubin di folder Anda sendiri. Ini bagus asalkan Anda tidak ingin terlalu banyak level zoom. Kalau tidak, akan sangat sulit untuk mengelola begitu banyak ubin di komputer Anda. Anda mungkin ingin mengklarifikasi untuk diri sendiri terlebih dahulu.

  • Jika Anda mendapatkan ERR_CONNECTION_REFUSED di Windows localhost untuk mengakses ubin yang dideklarasikan oleh http://localhost:8000/{z}/{x}/{y}.png, masalahnya mungkin karena sumber js Anda ada di server jarak jauh, dan bukan di dalam folder localhost. Secara alami, komputer tidak memperbolehkan beberapa kode js yang tidak tepercaya di internet mengakses konten komputer Anda.

Dengan kata lain, alih-alih menambahkan perpustakaan js karena ini:

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

... unduh js ke folder localhost Anda dan gunakan ini:

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

Jika ini tidak menyelesaikan masalah Anda, pastikan server localhost Anda (XAMPP atau apa pun) memiliki izin untuk mengakses sistem file Anda.

  • Saya percaya Anda menggunakan terlalu banyak perpustakaan pada saat yang sama untuk peta web sederhana. TileMill adalah alat yang hebat untuk membuat peta interaktif dengan upaya minimal. Gabungkan itu dengan Mapbox.js dan keterampilan JavaScript Anda sehingga Anda dapat membuat peta seperti pada contoh pertama yang Anda berikan.

Jika Anda memiliki data yang ingin Anda tampilkan dalam CSV atau format serupa, saya sarankan Anda segera memulai dengan TileMill.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.