最近有一项任务就是 配置使用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-util serve-develop ./mapproxy.yaml
如上图,则 成功,说明mapproxy已经可以使用,实际上,这样看着似乎mapproxy已经搭建好了,但是在测试过程中,我遇到了不得不让我进行继续工作bug,使用Ip无法进行访问,只能使用localhost或者127.0.0.1,于是我不得不进行接下来 的工作。请看我的下一篇文章。