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,如有侵权,请联系删除。
- 参考网址