Ứng dụng web bản đồ lát gạch ngoại tuyến


23

Tôi không chắc nên đăng bài này ở đây hay trên Stackoverflow, vì nó là một dạng chéo. Hãy để tôi thử.

Trong tiêu chuẩn HTML5 được đề xuất, có tùy chọn lưu trữ dữ liệu ứng dụng web trong bộ đệm cục bộ bằng cách sử dụng bảng kê khai bộ đệm . Tôi đang tìm cách sử dụng kỹ thuật này cho một ứng dụng bản đồ web ngoại tuyến và đã thực hiện một nguyên mẫu nhanh ở đây dựa trên bản cài đặt chuẩn của Geoserver.

Tôi vừa xé trang khách OpenLayers được tạo từ một trong các lớp mặc định và thay đổi <html>thẻ thành

<html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest">

Và tạo tập tin cache.manifestchỉ cần đọc

CACHE MANIFEST
http://lima.schaaltreinen.nl:8080/

Theo hiểu biết hạn chế của tôi về vấn đề này, hãy lưu trữ cục bộ mọi thứ tải từ URL đó: tất cả các ô xếp và Mã mở OpenLayers. Trên thực tế, trong lần gọi đầu tiên trong Firefox, nó yêu cầu tôi cho phép lưu trữ cục bộ, nhưng khi tôi nhấn refresh - trực tuyến hoặc ngoại tuyến - trang này nói rằng đối tượng OpenLayers không được xác định. Có vẻ như nó chưa tải JS OpenLayers.

Bất cứ ai cũng thực hiện thành công một ứng dụng bản đồ web lát gạch dựa trên OpenLayers hoạt động? Hoặc gợi ý về cách điều tra thêm?

Câu trả lời:


9

Bạn có thể quan tâm đến các dự án Bản đồ trên iPad và iPad MapBox. (từ chối trách nhiệm: đã thiết kế cái trước, liên quan đến cái sau. Tuy nhiên, cả hai đều được cấp phép BSD và định dạng ô bên dưới, được gọi là " .mbtiles", dựa trên SQL.)

Bản đồ trên Stick là bản đồ OpenLayers ngoại tuyến. Lý do chính để sử dụng cơ sở dữ liệu / máy chủ di động thay vì lưu trữ phía máy khách là việc sử dụng trình duyệt vì lưu trữ dữ liệu lớn không hoàn toàn hiệu quả và việc điền và lập chỉ mục bộ đệm có thể tốn kém.


Giải pháp thú vị, không phải những gì tôi đã nghĩ về nhưng nó có vẻ khả thi. Việc tải MapBox / Maps trên Stick với các lớp gạch tùy chỉnh dễ dàng hay khó khăn như thế nào?
mvexel

1
Điều này tương đối đơn giản: có một vài công cụ - nhà nhập khẩu dựa trên C ( github.com/developmentseed/mb_tiles_importer ), một phiên bản của gdal2tiles tạo ra mbtiles ( github.com/developmentseed/gdal2mb ) và một công cụ GUI sắp ra mắt.
tmcw

4

Hãy nghĩ rằng bạn sẽ cần tạo tilecache của riêng mình trên 'localhost', xem http://code.google.com.vn/p/cumberland/wiki/TilePyramiderAndOpenLayers

Ví dụ

    Using vmap
    http://localhost:8081/vmap0/levelzero/0/0.png
    The tile near the middle of the tile set in the third zoom level of vmap0.
    http://localhost:8081/vmap0/leveltwo/3/4.png
    The tile near the middle of the tile set in the fifth zoom level of landsat2000.
    hhttp://localhost:8081/vmap0/landsat2000/1/8500/8500.png
Source:
    The tile at the origin of the tile set in the first zoom level of basemap.
    http://www.osgeo.org/services/basemap/L1/0/0.png

Lưu ý: không được có khoảng trắng


Điều này hữu ích nhưng yêu cầu một máy chủ web cục bộ, có thể không phải lúc nào cũng khả thi, ví dụ như khi bạn muốn nó chạy trên iPhone / iPad. Nói chung, tôi đang tìm cách đạt được điều này mà không có bất kỳ yêu cầu nào ở phía máy khách ngoài trình duyệt web hiểu biết về bộ đệm HTML5 / bộ đệm.
mvexel


1
Tôi đã liên kết đến trang đó trong câu hỏi ban đầu. Tôi biết đây là con đường để đi, nhưng tôi đang cố gắng tìm hiểu xem liệu nó có khả thi hay không.
mvexel

3

Một điều phức tạp dường như xuất hiện trong các bài báo về điều này là:

Lưu ý rằng loại MIME của tệp kê khai là văn bản / bộ đệm.

Và tất cả các ví dụ dường như liệt kê các tệp cụ thể vào bộ đệm (nhưng tôi có thể cần đọc thêm).


Đó là một điều không rõ ràng với tôi: liệu bạn có cần liệt kê các URL cụ thể cụ thể hay bạn có thể sử dụng tiền tố URL. Tôi chưa thể kiểm tra điều này. Bất cứ ai có?
mvexel

3

Có thể một cách tiếp cận khác: Công viên địa chất http://www.geopublishing.org/ có thể xuất bản bản đồ của bạn để sử dụng ngoại tuyến. Geopublisher là một phần mềm Máy tính để bàn cho phép bạn kết hợp dữ liệu vectơ và raster và tạo bản đồ số. Sau đó, bạn có thể xuất bản đồ này dưới dạng một ứng dụng Java độc lập. Nó thậm chí còn tạo các tệp tự khởi động, v.v. và không yêu cầu cài đặt Java trên các máy tính được nhắm mục tiêu.

CẬP NHẬT 2018: Công cụ địa lý không được phát triển tích cực nữa.


lưu ý: Đích đến bằng tiếng Đức mặc dù url là phiên bản tiếng Anh của trang web. Để sửa lỗi xác định vị trí liên kết [tiếng Anh] trong cột điều hướng bên trái.
matt wilkie
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.