1. 程式人生 > 其它 >MapProxy的部署與TMS地圖服務代理_做GIS夢的人

MapProxy的部署與TMS地圖服務代理_做GIS夢的人

從網上偶然看到,現在有一些專業的地圖服務代理伺服器,不僅可以本地快取地圖服務、地圖瓦片,而且可以對地圖服務進行重新投影切片等。瞬間得到一個啟發,當前google線上地圖不能使用的情況下,是否可以架設一個地圖代理伺服器,供自己內部使用呢?

地圖代理服務,自己開發起來也簡單,但是短時間內實現快取、重投影等多重功能,還是不太可能的。這裡就以MapProxy為例,簡單介紹一下如何部署和實現代理。

文章目錄

參考網址

環境

  • windows 10
  • Python 3.9.5

部署

MapProxy在windows上的部署還是非常方便的,直接使用pip

安裝,電腦上只要有python環境就行。

# 安裝 MapProxy
pip install MapProxy

# 由於PROJ通常在Windows系統上不可用,因此還需要安裝Python包 `pyproj`
pip install pyproj

# 驗證安裝版本
mapproxy-util --version

# 建立MapProxy的配置檔案:
mapproxy-util create -t base-config mymapproxy
#這句命令會建立一個名叫mymapproxy的資料夾,裡面包含一個最小的示例配置(mapproxy.yaml 和 seed.yaml),以及兩個完成的示例配置檔案(full_example.yaml and full_seed_example.yaml)。

cd mymapproxy
mapproxy-util serve-develop mapproxy.yaml   #預設埠8080

# 指定埠啟動
mapproxy-util serve-develop mapproxy.yaml  -b 0.0.0.0:8011

瀏覽器訪問http://localhost:8080/#/ 就可以進入頁面,如果想看代理的服務,直接點選demo

測試代理地圖服務

MapProxy支援對WMS、WMS-C、WTMS、TMS等服務的代理,所有的都只需要你在yml檔案裡配置,上手還是比較快的,對不懂開發人是很友好的。我的測試配置如下mapproxy.yaml

services:
  demo:
  tms:
    use_grid_names: true
    # origin for /tiles service
    origin: 'nw'
  kml:
      use_grid_names: true
  wmts:
  wms:
    md:
      title: MapProxy WMS Proxy
      abstract: This is a minimal MapProxy example.

layers:
  - name: osm_utm
    title: 智圖測試
    sources: [osm_cache_tile]
caches:
  osm_cache_tile:
    grids: [osm_grid]
    # true會禁用本地快取
    disable_storage: false
    # a tile source you want to reproject
    sources: [osm_source]

sources:
  osm_source:
    type: tile
    grid: osm_grid
    url:  https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/%(z)s/%(y)s/%(x)s   
grids:
    webmercator:
        base: GLOBAL_WEBMERCATOR
    osm_grid:
        base: GLOBAL_MERCATOR
        srs: 'EPSG:3857'
        origin: nw

globals:


這裡一定要注意

對於TMS服務的url,一定是%(z)s/%(y)s/%(x)s這種格式的,不能是{z}/{y}/{x}

預覽效果圖

檢視本地mapproxy.yaml所在同級目錄下,出現了一個cache_data資料夾,點進去可以看到都是快取的瓦片

本文轉自 https://blog.csdn.net/GISuuser/article/details/121394995,如有侵權,請聯絡刪除。