win+Apache+mod_wsgi配置mapproxy心得(一)

最近有一项任务就是 配置使用mapproxy,由于之前对其一无所知,现在经过2天研究,现在已经基本 明白,现在给大家分享。

本版本 所使用的软件先给大家介绍一下:

MapProxy 1.9.0 文档地址: https://mapproxy.org/docs/latest/index.html,下载 地址自己 去找。

python 2.7.12,可以自行在官网 下载安装。

与python对应的vc9编译环境,安装好后如下图


接下来,介绍一下 在windows下 的安装情况。

可以使用python自带的 安装工具进行安装,如下图命令 :

c:\Python27\Scripts\easy_install MapProxy

安装之后可以使用命令进行测试,结果如下所示表示成功。

mapproxy-util --version


然后根据教程配置 mapproxy.yaml文件 ,下面是介绍一下配置文件的组成 部分。切记,本文在测试过程中,只使用了mapproxy。yaml的配置。

mapproxy.yaml和seed.yaml;

mapproxy.yaml:主要配置文件,配置服务的所有部分,比如那些服务需要启动,数据来自哪里,那些需要缓存

mapproxy-seed mapproxy创建 所有需要的图片,为了 提高请求速度,这个 工具可以缓存一个或多个多边形区域 。

配置文件 同一使用 YAML格式,mapproxy.yaml主要包含下面这些部分:

globals:设置默认 值,全局 变量,可以 在其他配置部分使用。

services:MapProxy 提供 的服务,比如jWMS或者TMS。

sources:定义在哪里MapProxy可以取到新的数据集。

caches:配置 内部 缓存

layers:配置MapProxy提供的图层,每一个图层都可以包含多个数据源sources和缓存caches。

grids:定义MapProxy使用 的网格来排列缓存图片

注意,要保持格式,不能使用 tab键,而 只能用space键

配置文件的内容贴出如下,因为自己 使用的是 tile图层,故代码是这样的:

services:
   tms:
     use_grid_names: true 
layers:
   – name: my_layer
     title: WMS layer from tiles HiFleet
     sources: [mycache]
caches:
   mycache:
     grids: [webmercator]
     sources: [my_tile_source]
sources:
   my_tile_source:
     type: tile
     url: http://your web root/%(z)s/%(x)s/%(y)s.png 
grids:
 webmercator:
   base: GLOBAL_WEBMERCATOR 
   srs: ‘EPSG:3857’

这种实例,可以使用openlayers进行访问测试。

贴出openlayers的代码如下

var raster = new ol.layer.Tile({
        source: new ol.source.XYZ({
url:’http://localhost:8080/tms/1.0.0/my_layer/webmercator/{z}/{x}/{y}.png’
        }),
opacity: 1,
visible:false
    });


可以使用  命令创建实例配置文件,进行测试,测试会 生成4个文件 f ull_example.yaml,seed.yaml,full_seed_example.yaml,simple_conf.yaml

mapproxy-util create -t base-config ./

示列代码 simple_conf.yaml 如下所示,大家测试的时候可以 使用

services:
  demo:
  wms:
    md:
      title: MapProxy WMS Proxy
      abstract: This is the fantastic MapProxy.
      online_resource: http://mapproxy.org/
      contact:
        person: Your Name Here
        position: Technical Director
        organization: 
        address: Fakestreet 123
        city: Somewhere
        postcode: 12345
        country: Germany
        phone: +49(0)000-000000-0
        fax: +49(0)000-000000-0
        email: info@omniscale.de
      access_constraints:
        This service is intended for private and
        evaluation use only. The data is licensed
        as Creative Commons Attribution-Share Alike 2.0
        (http://creativecommons.org/licenses/by-sa/2.0/)
      fees: ‘None’
sources:
  test_wms:
    type: wms
    req:
      url: http://osm.omniscale.net/proxy/service?
      layers: osm
layers:
  – name: cascaded_test
    title: Cascaded Test Layer
    sources: [test_wms]

接下来使用  命令来来启动mapproxy,测试是否成功,使用启动mapproxy,在 浏览器输入localhost :8080进行访问

mapproxy-util serve-develop ./mapproxy.yaml


如上图,则 成功,说明mapproxy已经可以使用,实际上,这样看着似乎mapproxy已经搭建好了,但是在测试过程中,我遇到了不得不让我进行继续工作bug,使用Ip无法进行访问,只能使用localhost或者127.0.0.1,于是我不得不进行接下来 的工作。请看我的下一篇文章。

转载自:https://mtr-1.oss-cn-beijing.aliyuncs.com/qyblog/2019/04/52023493.jpg

You may also like...