Автономное веб-приложение OpenLayers с использованием автономного OSM

Я пытаюсь создать веб-приложение на основе карты, в котором пользователь может установить ориентир на предоставленной карте. Границы карты ограничены небольшим городом, а клиентский компьютер всегда отключен от сети, вообще нет доступа в интернет. После целого дня гугления я нашел эту комбинацию OpenLayers и OpenStreetMap — хороший выбор.

Следующий пример предоставлен веб-сайтом OpenLayers:

<!doctype html>
<html lang="en">
  <head>
    <link rel="stylesheet" href="http://openlayers.org/en/v3.0.0/css/ol.css" type="text/css">
    <style>
      .map {
        height: 400px;
        width: 100%;
      }
    </style>
    <script src="http://openlayers.org/en/v3.0.0/build/ol.js" type="text/javascript"></script>
    <title>OpenLayers 3 example</title>
  </head>
  <body>
    <h2>My Map</h2>
    <div id="map" class="map"></div>
    <script type="text/javascript">
      var map = new ol.Map({
        target: 'map',
        layers: [
          new ol.layer.Tile({
            source: new ol.source.MapQuest({layer: 'sat'})
          })
        ],
        view: new ol.View({
          center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
          zoom: 4
        })
      });
    </script>
  </body>
</html>

Это работает нормально, но нужен компьютер, подключенный к Интернету. После пары часов гугления я нашел еще один веб-сайт, на котором в автономном режиме предоставляется OpenStreetMap данные в формате .osm. Теперь я не знаю, можно ли кормить OpenLayers этими .osm файлами или нет, что-то вроде локального картографического сервера? клиентский компьютер работает под управлением IIS 8


person Maysam    schedule 09.03.2015    source источник


Ответы (1)


Для отображения карты в автономном режиме с помощью OpenLayers (или Leaflet) вам потребуются растровые тайлы. Файл .osm нельзя отобразить напрямую, потому что он содержит необработанные векторные данные и должен быть отрендерен в первую очередь.

Для создания плиток воспользуйтесь Maperitive или TileMill. Затем импортируйте страну или регион. В качестве альтернативы вы можете настроить свой собственный сервер рендеринга, что требует немного больше работы.

person scai    schedule 10.03.2015
comment
есть ли учебник по запуску сервера рендеринга? - person Maysam; 12.03.2015
comment
Да, учебник находится за ссылкой в ​​моем ответе. - person scai; 12.03.2015
comment
Предоставляет ли TileMill URL-адрес для загрузки OpenLayers? Я установил его и создал новый проект, используя автономные данные, но я не знаю, как это работает! - person Maysam; 12.03.2015
comment
Насколько я знаю, вы должны экспортировать карту, используя формат файла MBTiles. MBTiles, в свою очередь, могут быть извлечены с помощью mbutil, что дает структуру каталогов, пригодную для OpenLayers и Leaflet. - person scai; 12.03.2015
comment
Я использовал Maperitive и mb-util для создания структуры каталогов {x}/{y}/{z}. А с учебником OSM показывает офлайн-плитки. Имейте в виду, поскольку он использует протокол file:///, вам необходимо запустить страницу на сервере http. - person Maysam; 12.03.2015