Веб-приложение с автономной мозаичной картой

23

Я не уверен, стоит ли публиковать это здесь или в Stackoverflow, так как это своего рода кроссовер. Позвольте мне попробовать.

В предлагаемом стандарте HTML5 есть возможность хранить данные веб-приложения в локальном кеше с использованием манифеста кеша . Я ищу использовать эту технику для форума черепичного приложения веб - карты и сделал быстрый прототип здесь на основе стандартной установки Geoserver.

Я просто разорвал клиентскую страницу OpenLayers, которая генерируется из одного из слоев по умолчанию, и изменил <html>тег на

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

И создал файл, cache.manifestкоторый просто читает

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

Который должен, в моем ограниченном понимании вопроса, локально кэшировать все, что загружается с этого URL: все плитки и OpenLayers JS. На самом деле, при первом вызове в Firefox он действительно запрашивает разрешение на локальное хранилище, но когда я нажимаю кнопку обновить - либо онлайн, либо в автономном режиме - страница кричит, что объект OpenLayers не определен. Похоже, он не загрузил OpenLayers JS.

Кто-нибудь успешно сделал работающее автономное приложение на основе плиточных веб-карт на базе OpenLayers? Или намеки на то, как это расследовать дальше?

mvexel
источник

Ответы:

9

Возможно, вас заинтересуют проекты Maps на флешке и MapBox iPad. (заявление об отказе: разработан первый, задействован во втором. Однако оба имеют BSD-лицензию, а базовый формат листов, называемый " .mbtiles", основан на SQL.)

Карты на палочке - это автономная карта OpenLayers. Основная причина использования переносимой базы данных / сервера вместо хранилища на стороне клиента состоит в том, что использование браузеров в качестве хранилища больших данных не совсем проработано, а заполнение и индексация кэша может быть дорогостоящим.

tmcw
источник
Интересное решение, не то, о чем я думал, но выглядит работоспособным. Насколько легко или сложно загрузить MapBox / Maps на Стик с пользовательскими слоями листов?
mvexel
1
Это относительно просто: есть несколько инструментов - импортер на основе C ( github.com/developmentseed/mb_tiles_importer ), версия gdal2tiles, которая выводит mbtiles ( github.com/developmentseed/gdal2mb ), и готовящийся инструмент с графическим интерфейсом.
tmcw
4

Подумайте, что вам нужно будет создать свой собственный тайл кеш на localhost, см. Http://code.google.com/p/cumberland/wiki/TilePyramiderAndOpenLayers

Примеры

    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

Примечание: не должно быть пробелов

Mapperz
источник
Это полезно, но требует локального веб-сервера, что не всегда возможно, например, когда вы хотите, чтобы он работал на iPhone / iPad. В общем, я стремлюсь достичь этого без каких-либо требований на стороне клиента, кроме здравого смысла в веб-браузере HTML5 / манифеста.
mvexel
1
Я уже ссылался на эту страницу в первоначальном вопросе. Я знаю, что это путь, но я пытаюсь выяснить, возможно ли это вообще.
mvexel
3

Одна сложность, которая, кажется, проявляется в статьях об этом, заключается в том, что:

Обратите внимание, что MIME-типом файла манифеста является text / cache-manifest.

И все примеры, кажется, перечисляют определенные файлы для кэширования (но мне, возможно, придется читать дальше).

Ян Тертон
источник
Одна вещь, которая мне не ясна: нужен ли вам белый список конкретных конкретных URL или вы можете использовать префиксы URL. Я еще не смог проверить это. У кого есть?
mvexel
3

Может быть, другой подход: Geopublisher http://www.geopublishing.org/ может публиковать ваши карты для автономного использования. Geopublisher - это настольное программное обеспечение, которое позволяет объединять векторные и растровые данные и создавать цифровые карты. Затем вы можете экспортировать эту карту как отдельное Java-приложение. Он даже создает файлы автозапуска и т. Д. И не требует установки Java на целевых компьютерах.

ОБНОВЛЕНИЕ 2018: Geopublisher активно не разрабатывается.

alfonx
источник
примечание: пункт назначения на немецком языке, хотя URL-адрес соответствует версии сайта на английском языке. Чтобы исправить, найдите ссылку [english] в левой колонке навигации.
Мэтт Уилки