代码之家  ›  专栏  ›  技术社区  ›  Maysam

使用离线OSM的离线OpenLayers web应用

  •  1
  • Maysam  · 技术社区  · 11 年前

    我正在尝试创建基于地图的web应用程序,用户可以在提供的地图上设置地标。地图的边界仅限于一个小城市,客户端计算机始终处于离线状态,根本无法访问互联网。经过一整天的谷歌搜索,我发现 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>
    

    这很好,但需要一台联网的计算机。 在谷歌搜索了几个小时后,我发现了另一个 website 提供离线的 OpenStreetMap 具有的数据 .osm 总体安排 现在我不知道有没有可能给OpenLayers提供这些 .锇 文件或不是,像本地地图服务器吗?客户端计算机正在运行 IIS 8

    1 回复  |  直到 11 年前
        1
  •  6
  •   scai    11 年前

    要使用OpenLayers(或传单)脱机显示地图,您需要光栅 tiles A. .osm 文件无法直接显示,因为它包含原始矢量数据,必须首先渲染。

    要生成平铺,请查看 Maperitive TileMill 。然后导入 country or area extract 。或者,您可以 set up your own rendering server 这需要更多的工作。

    推荐文章