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