覆盖范围

通过覆盖范围,您可以定义数据可用或感兴趣的数据所在的区域。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 而不是 bboxpolygonsogr_datasource 选择权。仍然支持旧选项。

覆盖类型

包围盒

简单的盒装。

bboxdatasource

一个简单的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数据源

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。

union

多个覆盖范围的列表。

差异

1.10 新版功能.

差异覆盖率从第一个覆盖率中减去其他子覆盖率。这可用于从覆盖范围中排除零件。每个子覆盖范围可以是任何支持的类型和SRS。

difference

多个覆盖范围的列表。

交叉

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'

mapproxy-seed

在中定义种子区域 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 对于所有支持的格式。