Cách đơn giản để có một bản đồ dựa trên web ngoại tuyến? [đóng cửa]


15

Mục tiêu của tôi là có một bản đồ thế giới được nhúng trong một trang web, nhưng không có quyền truy cập vào internet. Tốt nhất chỉ là một bộ gạch kết hợp với một số bản đồ slippy js-lib. Dung lượng lưu trữ không thực sự là một vấn đề và không cần mức thu phóng tối đa.

Cách dễ nhất để thực hiện điều này là gì?

Tôi tìm thấy một dự án có vẻ phù hợp với dự luật - Bản đồ trên một cây gậy, nhưng dường như nó đã chết?


2
Chính xác thì "zoom tối đa là không bắt buộc" nghĩa là gì? Bạn cần loại thang đo / độ chính xác / độ phân giải nào?
Mr_Chimp

2
mapnik (Windows) github.com/mapnik/mapnik/wiki/WindowsInstallation và sử dụng localhost làm url (máy cục bộ)
Mapperz

Độ chính xác và độ phân giải không quan trọng, các quốc gia và thành phố thị trưởng là đủ, nhưng tất nhiên tôi muốn nó phải tốt nhất có thể. Đơn giản là quan trọng hơn, tôi đang cố gắng tránh các dịch vụ và cơ sở dữ liệu bổ sung.
tek

1
Nếu bạn sẵn sàng dành vài ngày để định cấu hình trên windows thì mapnik + postgis + postgresql + proj.4 + python 2.7 + ... là một tùy chọn nhưng sau khi trải qua điều đó, tôi khuyên bạn nên nghiên cứu câu trả lời của TileMill bên dưới. Âm thanh dễ dàng hơn nhiều .
ca0v

Nó thực sự đơn giản. Vấn đề duy nhất là nắm giữ dữ liệu bản đồ và các vấn đề cấp phép liên quan đến việc tạo hệ thống bản đồ ngoại tuyến . Tức là hầu hết các nhà cung cấp bản đồ cho phép sử dụng miễn phí (ví dụ google) chỉ làm như vậy khi bản đồ có sẵn cho công chúng. Nhưng đây là một câu hỏi hoàn toàn khác ... Tôi chỉ làm việc đó cho Vương quốc Anh nên đã sử dụng Dữ liệu mở hệ điều hành miễn phí.
Mr_Chimp

Câu trả lời:


17

Tôi khuyên bạn nên tìm hiểu về TileMill được tạo bởi cùng những người đã làm việc trên Maps On A Stick. TileMill là một phần của Maps On A Stick, hoặc là những gì Maps On A Stick đã trở thành - một cái gì đó tương tự. Tôi quên kết nối. Dù sao...

TileMill sẽ cho phép bạn tải dữ liệu địa lý, định kiểu theo cách bạn thích và sau đó tạo một tập hợp các ô bản đồ PNG cho nhiều mức độ thu phóng.

Đầu ra của TileMill là tệp .mbtiles. Đây chỉ là một cơ sở dữ liệu sqlite chứa các PNG. Nếu bạn đang làm việc ngoại tuyến, có thể dễ dàng trích xuất pngs vào một thư mục (sử dụng mbutil ) hơn là sử dụng sqlite để truy cập chúng.

Nếu bản đồ của bạn khá đơn giản (tức là tương tác tối thiểu), tôi khuyên bạn nên sử dụng Tờ rơi cho thư viện bản đồ của mình.

Trong tờ rơi, sau đó bạn cần thêm một lớp gạch (gợi ý: sử dụng tms thay vì xyz).

Mong rằng sẽ giúp.

Chỉnh sửa: Vài điều cần lưu ý.

1) Bạn nên biết về các hạn chế cấp phép với bất kỳ dữ liệu bản đồ nào bạn sử dụng (xem nhận xét của tôi về câu hỏi ở trên).

2) Nếu bạn đến gần đủ để thấy đường, v.v. thì bạn sẽ có vài GB gạch.


Có một bằng chứng về khái niệm và chạy! Tôi sẽ phải điều tra các vấn đề cấp phép hơn nữa, nhưng đây rất có thể là giải pháp dễ nhất.
tek

2

Một lựa chọn khác sẽ là một cái gì đó như mapwingis . Không cần gạch, nó sẽ đọc shapefiles.


MapWinGIS là khá tốt nhưng câu hỏi được chỉ định dựa trên web.
Mr_Chimp

Nó cho biết TRANG TRANG, không dựa trên web và chỉ định không có quyền truy cập internet nên tôi cho rằng điều đó có nghĩa là dựa trên máy chủ (hoặc cục bộ), sẽ ổn đối với mapwingis. Tôi đã sử dụng nó dưới dạng trong cơ sở dữ liệu Access và không thể tưởng tượng được nó sẽ khó thực hiện hơn trong một trang web.
Ian

2

Tôi đã tìm thấy một dự án mới có tên OpenMapTiles , giúp việc có bản đồ ngoại tuyến dễ dàng hơn nhiều.

Thiết lập một máy chủ gạch trên máy của bạn rất dễ dàng. Cài đặt Node.js (với npm) và làm theo hai bước trong tài liệu của họ: https://openmaptiles.org/docs/

Bạn có thể tải xuống các bản đồ từ trang web của họ (bao gồm bản đồ của toàn hành tinh, hiện có ~ 44 GB): https://openmaptiles.org/doads/


1

Nếu bạn có thể tạo tệp MBTiles (ví dụ với Tilemill), thì bạn có thể chuyển đổi tệp đó thành một túi gạch đơn giản trong các thư mục lồng nhau phù hợp với bố cục z / x / y dự kiến ​​bằng cách sử dụng tilestache-seed.py, tập lệnh có trong Tilestache. Đây là một cái tôi đã làm gần đây:

http://mike.teczno.com/img/hachure/labels/

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.