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

原文地址:https://www.cnblogs.com/hustshu/p/15576086.html