通过覆盖范围,您可以定义数据可用或感兴趣的数据所在的区域。Maproxy支持 sources 而在 mapproxy-seed tool . 请参阅文档中的相应部分。
描述覆盖范围有五种不同的方法:
一个简单的矩形边界框,
具有一个或多个(多)wkt格式多边形的文本文件,
具有(多)多边形功能的geojson文件,
(多)任何数据源的多边形,可通过ogr读取(例如shapefile、geojson、postgis);
具有WebMercator平铺坐标的文件。
1.10 新版功能.
您还可以构建多个覆盖范围之间的交叉点、联合和差异。
如果要使用多边形定义覆盖范围,而不是简单的边界框,则还需要形状和地理。要从形状文件加载多边形,还需要GDAL/OGR。
maproxy需要shapely 1.2.0或更高版本和geos 3.1.0或更高版本。
关于Debian::
sudo aptitude install libgeos-dev libgdal-dev
pip install Shapely
通过定义覆盖源和SRS来配置所有覆盖。覆盖范围的配置取决于类型。SRS可以通过 srs
选择权。
1.5.0 新版功能: maproxy可以自动检测覆盖的类型。您现在可以使用 coverage
而不是 bbox
, polygons
或 ogr_datasource
选择权。仍然支持旧选项。
简单的盒装。
bbox
或 datasource
:一个简单的bbox,作为minx、miny、maxx、maxy的列表,例如: [4, -30, 10, -28] 或作为字符串 4,-30,10,-28 .
每行包含一个WKT多边形或多个多边形的文本文件。您可以创建自己的文件或使用 one of the files we provide for every country . 读 the index 找到你的国家。
datasource
:多边形文件的路径。应该相对于代理配置或绝对配置。
1.10 新版功能: 以前的版本需要ogr/gdal来读取geojson。
可以将geojson文件与多边形和多多边形几何图形一起使用。还支持这些几何图形的功能集合和功能。如果定义了一个 where
过滤器。
datasource
:geojson文件的路径。应该相对于代理配置或绝对配置。
OGR支持的任何多边形数据源(如shapefile、geojson、postgis)。
datasource
:数据源的名称。参考 OGR format page 获取所有支持的数据源的列表。文件路径应该相对于代理配置或绝对路径。
where
:限制从数据源加载哪些多边形。一个简单的where语句(例如 "CNTRY_NAME='Germany'"
)或完整的select语句。参考 OGR SQL support documentation . 如果取消设置此选项,将使用数据源的第一层。
1.10 新版功能.
具有WebMercator平铺坐标的文本文件。切片应该在里面 z/x/y
格式(例如) 14/1283/6201
,每行一个切片坐标。仅支持WebMercator网格中的图块(原点始终是 nw )
expire_tiles
:包含过期磁贴文件的文件或目录。目录是递归加载的。
1.10 新版功能.
交叉口覆盖范围只包含所有子覆盖范围所覆盖的区域。这可用于将较大的覆盖范围限制在较小的区域。每个子覆盖范围可以是任何支持的类型和SRS。
difference
:多个覆盖范围的列表。
1.10.0 新版功能.
默认情况下,maproxy尝试获取和服务完整的源代码图像,即使覆盖范围只触及它。可通过设置启用按覆盖范围剪切 clip: true
. 如果启用,覆盖范围之外的所有区域都将转换为透明像素。
这个 clip
选项仅对源覆盖有效,而对播种覆盖无效。
使用 coverage
用于定义WMS或平铺源的覆盖范围的选项。
sources:
mywms:
type: wms
req:
url: http://example.com/service?
layers: base
coverage:
bbox: [5, 50, 10, 55]
srs: 'EPSG:4326'
带裁剪的交叉点覆盖示例:
sources:
mywms:
type: wms
req:
url: http://example.com/service?
layers: base
coverage:
clip: true
intersection:
- bbox: [5, 50, 10, 55]
srs: 'EPSG:4326'
- datasource: coverage.geojson
srs: 'EPSG:4326'
在中定义种子区域 seed.yaml
,将覆盖范围直接添加到视图中。
coverages:
germany:
datasource: 'shps/world_boundaries_m.shp'
where: CNTRY_NAME = 'Germany'
srs: 'EPSG:900913'
以下是PostGIS源的相同示例:
coverages:
germany:
datasource: "PG: dbname='db' host='host' user='user'
password='password'"
where: "select * from coverages where country='germany'"
srs: 'EPSG:900913'
下面是一个geojson源的例子:
coverages:
germany:
datasource: 'boundary.geojson'
srs: 'EPSG:4326'
见 the OGR driver list 对于所有支持的格式。