MapProxy的部署與TMS地圖服務代理_做GIS夢的人
阿新 • • 發佈:2021-11-19
從網上偶然看到,現在有一些專業的地圖服務代理伺服器,不僅可以本地快取地圖服務、地圖瓦片,而且可以對地圖服務進行重新投影切片等。瞬間得到一個啟發,當前google線上地圖不能使用的情況下,是否可以架設一個地圖代理伺服器,供自己內部使用呢?
地圖代理服務,自己開發起來也簡單,但是短時間內實現快取、重投影等多重功能,還是不太可能的。這裡就以MapProxy為例,簡單介紹一下如何部署和實現代理。
文章目錄
參考網址
環境
- windows 10
- Python 3.9.5
部署
MapProxy在windows上的部署還是非常方便的,直接使用pip
# 安裝 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,如有侵權,請聯絡刪除。