Tạo các khối tương tác bằng Nodejs, Mapnik và PostGIS cho tờ rơi


8

Tôi đang tìm cách để làm một cái gì đó như thế này nhưng nơi tôi có tất cả dữ liệu trên cùng một máy chủ.

Tôi đã theo dõi qua các hướng dẫn @ sparkgeo.com/labs/big/ và tôi gặp một số khó khăn. Cuối cùng, tôi muốn làm cho nó hoạt động Leafletgiống như hướng dẫn @ sparkgeo.com/labs/bigleaflet/ nhưng tôi cũng không thể làm cho phiên bản trên hướng dẫn trước hoạt động. Vì vậy, phiên bản cuối cùng sẽ tạo ra R Shinycác bản đồ và lớp tương tác từ các ô được truy cập thông qua Leafletđược tạo Postgisbằng phương tiện node.jssử dụng mapnikmapbox.

Các Waxthư viện được sử dụng trong hướng dẫn đó đã bị xóa nên tôi đã cài đặt . Tôi chỉ các ô trong HTMLtệp đến http://localhost:8000/{z}/{x}/{y}.pngvà chỉ vào vị trí của tôi wax.g.min.js. Không có vùng điều tra dân số nào được hiển thị khi tôi chạy cencon.jsmã. Tương tự với Leafletphiên bản của HTMLtệp, tôi chỉ vào localhost cho các lớp và chúng không hiển thị. Chúng được tải thành công vào PostGIScơ sở dữ liệu và thay đổi thông tin đăng nhập cơ sở dữ liệu.

OK, vì vậy tôi mới biết tất cả những điều này và tôi tự hỏi nếu tôi thiếu một cái gì đó rõ ràng. Tôi đã không thay đổi mã khác với những gì tôi đã đề cập trước đây. Có điều gì khác tôi cần phải làm để tạo gạch @ http://localhost:8000/{z}/{x}/{y}.pngkhông? Ngoài ra, bây giờ đã Waxđược thay thế, bạn có liên kết nào cho các hướng dẫn phù hợp hơn bằng cách sử dụng mapboxkhông?


1
Bạn đã thử mở các công cụ dành cho nhà phát triển của Chrome (cụ thể là tab Mạng và bảng điều khiển) để xem liệu có bất kỳ lỗi hoặc thời gian chờ nào không?
blah238

Yea chắc chắn nhận được GET http://localhost:8000/10/166/395.png net::ERR_CONNECTION_REFUSEDvà như vậy. Tôi tự hỏi nếu cơ sở dữ liệu quá chậm vì phải tải mãi mãi một bảng vào QGIS. Sẽ cập nhật những cài đặt đó. Khi tôi chỉ duyệt đến một ô với URL thực, nó cũng không cho tôi gì cả.
ideamotor

Repo Wax GitHub vẫn có sẵn, BTW: github.com/mapbox/wax
blah238

Cảm ơn các con trỏ. Đối với những người theo sau, cuối cùng đã thay đổi "localhost" thành IP của máy chủ. Vẫn phải đối mặt với các vấn đề - các lớp gạch là vô hình. Tôi đang đặt cái này lên giường để làm việc với một giải pháp nhanh hơn nhưng có thể sẽ trả lời sau.
ideamotor

Câu trả lời:


3

Đó là một chút thời gian cao tôi đã trả lời, nhưng ở đây đi:

  • Vì việc sử dụng Wax không được chấp nhận như bạn đã đề cập, đây là một số ví dụ về Mapbox để giúp bạn bắt đầu. Hãy nhớ rằng API Leaflet được nhúng vào Mapbox.js và có thể được sử dụng cùng với mã Mapbox.

  • Sử dụng http://localhost:8000/{z}/{x}/{y}.pngphương tiện để lưu trữ các gạch trong thư mục của riêng bạn. Điều này là tốt với điều kiện bạn không muốn có quá nhiều mức thu phóng. Mặt khác, thật khó để quản lý nhiều gạch trên máy tính của bạn. Bạn có thể muốn làm rõ điều đó cho chính mình trước.

  • Nếu bạn nhận được ERR_CONNECTION_REFUSED trên Windows localhost để truy cập các ô này được khai báo bởi http://localhost:8000/{z}/{x}/{y}.png, vấn đề có thể là nguồn js của bạn nằm trên một máy chủ từ xa chứ không phải trong thư mục localhost. Đương nhiên, máy tính không cho phép một số mã js không đáng tin cậy trên internet truy cập vào nội dung của máy tính của bạn.

Nói cách khác, thay vì thêm thư viện js như sau:

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

... tải js vào thư mục localhost của bạn và sử dụng:

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

Nếu điều này không giải quyết được vấn đề của bạn, hãy đảm bảo máy chủ localhost của bạn (XAMPP hoặc bất cứ thứ gì) có quyền truy cập vào hệ thống tệp của bạn.

  • Tôi tin rằng bạn đang sử dụng quá nhiều thư viện cùng một lúc cho một bản đồ web đơn giản. TileMill là một công cụ tuyệt vời để tạo các bản đồ tương tác với nỗ lực tối thiểu. Kết hợp điều đó với Mapbox.js và các kỹ năng JavaScript của bạn để bạn có thể tạo bản đồ như trong ví dụ đầu tiên bạn cung cấp.

Nếu bạn có dữ liệu bạn muốn hiển thị trong CSV hoặc một số định dạng tương tự, tôi khuyên bạn nên bắt đầu với TileMill ngay lập tức.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.