MapProxy的部署与TMS地图服务代理
從網(wǎng)上偶然看到,現(xiàn)在有一些專業(yè)的地圖服務(wù)代理服務(wù)器,不僅可以本地緩存地圖服務(wù)、地圖瓦片,而且可以對地圖服務(wù)進行重新投影切片等。瞬間得到一個啟發(fā),當前google在線地圖不能使用的情況下,是否可以架設(shè)一個地圖代理服務(wù)器,供自己內(nèi)部使用呢?
地圖代理服務(wù),自己開發(fā)起來也簡單,但是短時間內(nèi)實現(xiàn)緩存、重投影等多重功能,還是不太可能的。這里就以MapProxy為例,簡單介紹一下如何部署和實現(xiàn)代理。
文章目錄
- 參考網(wǎng)址
- 環(huán)境
- 部署
- 測試代理地圖服務(wù)
參考網(wǎng)址
- 英文官網(wǎng)
- 中文參考地址
環(huán)境
- windows 10
- Python 3.9.5
部署
MapProxy在windows上的部署還是非常方便的,直接使用pip安裝,電腦上只要有python環(huán)境就行。
# 安裝 MapProxy pip install MapProxy# 由于PROJ通常在Windows系統(tǒng)上不可用,因此還需要安裝Python包 `pyproj` pip install pyproj# 驗證安裝版本 mapproxy-util --version# 創(chuàng)建MapProxy的配置文件: mapproxy-util create -t base-config mymapproxy #這句命令會創(chuàng)建一個名叫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/#/ 就可以進入頁面,如果想看代理的服務(wù),直接點擊demo
測試代理地圖服務(wù)
MapProxy支持對WMS、WMS-C、WTMS、TMS等服務(wù)的代理,所有的都只需要你在yml文件里配置,上手還是比較快的,對不懂開發(fā)人是很友好的。我的測試配置如下mapproxy.yaml:
services:demo:tms:use_grid_names: true# origin for /tiles serviceorigin: 'nw'kml:use_grid_names: truewmts:wms:md:title: MapProxy WMS Proxyabstract: This is a minimal MapProxy example.layers:- name: osm_utmtitle: 智圖測試sources: [osm_cache_tile] caches:osm_cache_tile:grids: [osm_grid]# true會禁用本地緩存disable_storage: false# a tile source you want to reprojectsources: [osm_source]sources:osm_source:type: tilegrid: osm_gridurl: https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/%(z)s/%(y)s/%(x)s grids:webmercator:base: GLOBAL_WEBMERCATORosm_grid:base: GLOBAL_MERCATORsrs: 'EPSG:3857'origin: nwglobals:這里一定要注意:
對于TMS服務(wù)的url,一定是%(z)s/%(y)s/%(x)s這種格式的,不能是{z}/{y}/{x}
預覽效果圖
查看本地mapproxy.yaml所在同級目錄下,出現(xiàn)了一個cache_data文件夾,點進去可以看到都是緩存的瓦片
總結(jié)
以上是生活随笔為你收集整理的MapProxy的部署与TMS地图服务代理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python matplotlib 万花
- 下一篇: 优惠券的设计分享