通過OpenLayers3呼叫TileMapServer的柵格瓦片服務與失量瓦片服務

horry.wang發表於2017-01-09

TileMapServer是一個高效能的Web地圖伺服器,可以非常方便快速的將己有的失量地圖釋出為Web地圖服務。失量地圖支援shp、tab、mif三種檔案格式的匯入,並可以支援柵格瓦片,失量瓦片及空間資訊查詢等常用的web地圖服務。

以下是呼叫TileMapServer的柵格瓦片服務js方法:

<script>
var map = new ol.Map({
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM({url:"http://127.0.0.1:8080/tilemap?level={z}&ix={x}&iy={y}"})
        })
    ],
    target: `map`,
    controls: ol.control.defaults({
        attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ collapsible: false }) }),
        view: new ol.View({ center: [112, 21], zoom: 5 })
    });
</script>

以下是呼叫TileMapServer失量瓦片的方法:

<script>
    var map = new ol.Map({
        layers: [
          new ol.layer.VectorTile({
              source: new ol.source.VectorTile({
                  format: new ol.format.MVT(),
                  tileGrid: ol.tilegrid.createXYZ({ maxZoom: 22 }),
                  tilePixelRatio: 16,
                  url: `http://127.0.0.1:8080/vector-tile?level={z}&ix={x}&iy={y}`
              }),
              style: createMapboxStreetsV6Style()
          })
        ],
        target: `map`,
        controls: ol.control.defaults().extend([
            new ol.control.MousePosition()
        ]),
        view: new ol.View({
            projection: `EPSG:3857`,
            center: [0, 0],
            zoom: 2
        })
    });
</script>

以下是伺服器的配製檔案:

<server>
  <!--伺服器提供http服務的埠-->
  <port>8080</port>
  <!--該檔案為TileMap生成的地圖檔案,需要將同名的cfg檔案放在同一資料夾-->
  <database>D:	est11.gid</database>
  <tile>
    <!--地圖背景,也可以配製為圖片檔案,圖片的顏色應儘可能的簡單-->
    <background>#ffcae2f0</background>
    <!--瓦片快取級別,大於該級別的瓦片不會快取到檔案中-->
    <cache-level>16</cache-level>
    <!--伺服器在記憶體中快取瓦片的數量,當級別大於cache-level時會快取在記憶體中-->
    <cache_count>500</cache_count>
    <!--瓦片快取路徑,請確保有足夠的儲存空間-->
    <cache-path>d:map	ile</cache-path>
  </tile>
  <vectortile>
    <!--失量瓦片快取級別,大於該級別的瓦片不會快取到檔案中-->
    <cache-level>10</cache-level>
    <!--伺服器在記憶體中快取瓦片的數量,當級別大於cache-level時會快取在記憶體中-->
    <cache_count>500</cache_count>
    <!--渲染精度,長度長於該值的線條均會被忽略-->
    <accuracy>20</accuracy>
    <!--失量瓦片快取路徑,請確保有足夠的儲存空間-->
    <cache-path>d:mapvectortile</cache-path>
  </vectortile>
  <!--伺服器執行http請求的執行緒數量-->
  <threads>1</threads>
  <headers>
    <!--該內容伺服器會直接加入http頭裡面,可根據需要自行設定-->
    <header name="Cache_control" value="max-age=30"/>
    <header name="Access-Control-Allow-Origin" value="*"/>
  </headers>
</server>

軟體下載地址:www.tilemapserver.com
己配製好的2G大小的全圖地圖資料:http://pan.baidu.com/s/1c12Qfo0


相關文章