配置

mapproxy使用两个配置文件。

mappproxy.yaml

这是maproxy的主要配置。它配置了服务器的所有方面:应该启动哪些服务器、数据来自何处、应该缓存什么等等。

seed.yaml

此文件是 mapproxy-seed 工具。见 seeding documentation 更多信息。

mapproxy.yaml

配置使用yaml格式。维基百科包含 good introduction to YAML .

maproxy配置分为多个部分,每个部分配置maproxy的不同方面。以下是部分:

  • globals :其他配置节中使用的maproxy和默认值的内部。

  • services :Mapproxy提供的服务,例如WMS或TMS。

  • sources :定义maproxy可以检索新数据的位置。

  • caches :配置内部缓存。

  • layers :配置MapProxy提供的层。每个层可以由多个源和缓存组成。

  • grids :定义MapProxy用于对齐缓存图像的网格。

各部分的顺序并不重要,因此您可以按自己的方式进行组织。

注解

缩进很重要,只能包含空格字符。制表人是 not 允许缩进。

还有另一个可选部分:

1.6.0 新版功能.

  • parts :yaml支持引用,通过引用,您可以定义配置部件并在其他配置部分中使用它们。例如,您可以在一个地方定义所有覆盖范围,并从源代码引用它们。但是,如果将引用放在无效选项的位置,则maproxy将记录一条警告。为了防止这些警告,建议您将这些配置片段放入 parts 部分。

例如::

parts:
  coverages:
      mycoverage: &mycoverage
        bbox: [0, 0, 10, 10]
        srs: 'EPSG:4326'

sources:
  mysource1:
    coverage: *mycoverage
    ...
  mysource2:
    coverage: *mycoverage
    ...

base

您可以使用 base 选择权。这个 base 选项加载其他文件并将加载的配置字典合并在一起–它不是其他文件的文本包含。

例如::

base: [mygrids.yaml, mycaches_sources.yaml]
service: ...
layers: ...

在 1.4.0 版更改: 支持递归导入和多个文件。

服务

在这里,您可以配置应该启动哪些服务。所有服务的配置在 服务 文档。

下面是一个例子:

services:
  tms:
  wms:
    md:
      title: MapProxy Example WMS
      contact:
      # [...]

在这里,您可以定义maproxy应该提供的所有层。层定义与WMS类似:每个层都可以有名称和标题,并且可以嵌套层来构建层树。

应将层配置为列表 (- 在yaml中),其中每个层配置都是一个字典 (key: value 在YAML)

layers:
  - name: layer1
    title: Title of Layer 1
    sources: [cache1, source2]
  - name: layer2
    title: Title of Layer 2
    sources: [cache3]

每一层都包含关于该层以及数据来源的信息。

在 1.4.0 版更改.

不推荐使用旧语法将每个层配置为字典,并使用键作为名称。

layers:
  mylayer:
    title: My Layer
    source: [mysource]

应该成为

layers:
  - name: mylayer
    title: My Layer
    source: [mysource]

层是列表的混合格式 (- )但每一层仍然是一个字典,不再受支持(例如 - mylayer: 变成 - name: mylayer

name

层的名称。可以省略分组图层的名称(例如,带有 layers ,在这种情况下,该层在WMS中不可寻址,仅用于分组。

title

层的可读名称,例如WMS层标题。

layers

每层可以包含另一层 layers 配置。您可以使用它来构建组层和嵌套层树。

例如::

layers:
  - name: root
    title: Root Layer
    layers:
      - name: layer1
        title: Title of Layer 1
        layers:
          - name: layer1a
            title: Title of Layer 1a
            sources: [source1a]
          - name: layer1b
            title: Title of Layer 1b
            sources: [source1b]
      - name: layer2
        title: Title of Layer 2
        sources: [cache2]

rootlayer1 在这种情况下是一个组层。WMS服务将提供 layer1alayer1b 如果你要求 layer1 . 注意 sources 如果您提供 layers . 您仍然可以配置 sources 用于组层。在这种情况下,小组 sources 将替换 sources 子层的。

如果在第一级定义多个层,maproxy将把所有层包装成一个未命名的根层。

注解

旧语法(参见 name above )如果使用嵌套层配置格式,则不支持。

sources

此层的数据源列表。您可以使用中定义的源 sourcescaches 部分。maproxy将从左(下)到右(上)合并多个源。

WMS和MapServer源还支持标记名称 (wms:lyr1,lyr2 )见 标记的源名称 .

tile_sources

1.8.2 新版功能.

此层的缓存列表。此列表覆盖 sources 用于 WMTS 和 TMS 。 tile_sources 不是像这样合并的 sources 而是将所有缓存作为附加的平铺(矩阵)集添加。

min_res, max_res or min_scale, max_scale

将图层限制为给定的最小和最大分辨率或比例。对于超出这些边界的请求,maproxy将返回空白图像。 (min_res 是包容的, max_res 独家)。您可以使用分辨率或比例值,缺少的值将解释为 unlimited . 分辨率应以米/像素为单位。

这些值也将出现在功能文档中(即WMS scaleHint和Min/MaxscaledOrminator)。

恳请阅读 scale vs. resolution 关于 scale .

legendurl

配置作为此层的图例返回的图像的URL。局部URL (file:// )也支持。如果配置一个 legendurl 在这里。

md

1.4.0 新版功能.

添加此层的其他元数据。此元数据显示在WMS 1.3.0功能文档中。有关每个选项的说明,请参阅OGC 1.3.0规范。

也见 Inspire View服务 用于配置其他Inspire元数据。

下面是一个具有扩展层功能的示例层:

layers:
  - name: md_layer
    title: WMS layer with extended capabilities
    sources: [wms_source]
    md:
      abstract: Some abstract
      keyword_list:
        - vocabulary: Name of the vocabulary
          keywords:   [keyword1, keyword2]
        - vocabulary: Name of another vocabulary
          keywords:   [keyword1, keyword2]
        - keywords:   ["keywords without vocabulary"]
      attribution:
        title: My attribution title
        url:   http://example.org/
      logo:
         url:    http://example.org/logo.jpg
         width:  100
         height: 100
         format: image/jpeg
      identifier:
        - url:    http://example.org/
          name:   HKU1234
          value:  Some value
      metadata:
        - url:    http://example.org/metadata2.xml
          type:   INSPIRE
          format: application/xml
        - url:    http://example.org/metadata2.xml
          type:   ISO19115:2003
          format: application/xml
      data:
        - url:    http://example.org/datasets/test.shp
          format: application/octet-stream
        - url:    http://example.org/datasets/test.gml
          format: text/xml; subtype=gml/3.2.1
      feature_list:
        - url:    http://example.org/datasets/test.pdf
          format: application/pdf

dimensions

1.6.0 新版功能.

注解

目前,只有未缓存的WMTS服务才支持维度。见 具有维度的WMTS服务 对于一个有效的用例。

配置此层支持的维度。维度应该是一个字典,每个维度都有一个条目。每个维度都是另一个字典,其中包含 values 还有一个可选的 default 价值。当 default 值被省略,将使用最后一个值。

layers:
  - name: dimension_layer
    title: layer with dimensions
    sources: [cache]
    dimensions:
      time:
        values:
          - "2012-11-12T00:00:00"
          - "2012-11-13T00:00:00"
          - "2012-11-14T00:00:00"
          - "2012-11-15T00:00:00"
        default: "2012-11-15T00:00:00"
      elevation:
        values:
          - 0
          - 1000
          - 3000

高速缓存

在这里,您可以配置应该缓存哪些源。可用选项包括:

sources

此缓存的数据源列表。您可以使用中定义的源 sourcescaches 部分。这个参数是 required . 在将多个源存储到磁盘之前,maproxy将从左(下)到右(上)合并多个源。

caches:
  my_cache:
    sources: [background_wms, overlay_wms]
    ...

WMS和MapServer源还支持标记名称 (wms:lyr1,lyr2 )见 标记的源名称 .

频带合并

1.9.0 新版功能.

您还可以为每个色带定义一个源列表。目标色带指定为 rgb 对于RGB图像,可以选择 a 对于阿尔法波段。您也可以使用 l (亮度)创建具有单一色带的切片(例如灰度图像)。

你需要定义 source 以及 band 每个源波段的索引。源带区的索引是数字的,从0开始。

以下示例通过使用近红外表示红色、红色(波段0)表示绿色、绿色(波段1)表示蓝色,创建一个彩色红外(假彩色)图像:

caches:
  cir_cache:
     sources:
         r: [{source: nir_cache, band: 0}]
         g: [{source: dop_cache, band: 0}]
         b: [{source: dop_cache, band: 1}]

您可以为每个目标波段定义多个震源。这些值的总和是255。可选的 factor 允许您减少值。您可以使用此功能将多个波段混合到单个灰度图像中:

caches:
 grayscale_cache:
     sources:
         l: [
             {source: dop_cache, band: 0, factor: 0.21},
             {source: dop_cache, band: 1, factor: 0.72},
             {source: dop_cache, band: 2, factor: 0.07},
         ]

高速缓存源

1.5.0 新版功能.

也可以使用其他缓存作为源。如果目标缓存的网格相同或 兼容的 使用源缓存的网格。当缓存网格中的所有图块在源网格中也可用时,即使图块坐标(x/y/z)不同,也可以使用兼容的网格。

当网格不兼容时,例如,当它们使用不同的投影时,maproxy将访问源缓存,就像它是WMS源一样,它将使用元请求,并根据需要执行图像重投影。

使用现有缓存 更多信息。

format

缓存的内部图像格式。可用选项包括 image/pngimage/jpeg 等等 mixed . 默认值为 image/png .

1.5.0 新版功能.

mixed 格式,根据每个图块的透明度,maproxy将图块存储为png或jpeg。具有透明度的图像将存储为PNG,完全不透明的图像将存储为JPEG。你需要设置 request_formatimage/png 使用时 mixed -模式:

caches:
  mixed_mode_cache:
    format: mixed
    request_format: image/png
    ...

request_format

如果没有设置,maproxy将尝试使用此格式请求新的磁贴。 format 使用。如果源不支持该格式或显式设置了源的格式,则此选项无效(请参见 suported_formatformat 来源)。

minimize_meta_requests

如果设置为 true ,maproxy将只向源发出一个请求。此选项可以减少未缓存区域的请求延迟(按需缓存)。

默认情况下,maproxy请求与请求的bbox相交的所有未缓存的元图块。对于典型配置,一个请求将触发四个请求,每个请求大于20000x2000像素,这并不少见。与 minimize_meta_requests 选项已启用,每个请求将只触发一个对源的请求。该请求将与下一个磁贴边界对齐,并缓存磁贴。

watermark

在缓存的图块中添加水印。因此,水印也出现在TMS或KML请求中。

text

水印文本。应该是短的。

opacity

水印的不透明度(从0透明到255完全不透明)。对于不显眼的水印,使用介于30和100之间的值。

font_size

水印文本的字体大小。

color

水印文本的颜色。默认为灰色,适用于矢量图像。可以是颜色值列表 ([255, 255, 255] )或十六进制字符串 (#ffffff

spacing

配置重复水印之间的间距。默认情况下,水印将放置在每个图块上, wide 水印将被放置在每一个切片上。

grids

可以为每个缓存配置一个或多个网格。maproxy将为每个网格创建一个缓存。::

grids: ['my_utm_grid', 'GLOBAL_MERCATOR']

maproxy支持使用不同SRS的请求的即时转换。因此,不需要为每个受支持的SRS添加额外的缓存。为了获得最佳性能,只应使用SRS中的大多数请求。

对于需要地理坐标系和投影坐标系的图层,有一些特殊的处理方法。例如,如果将一个网格设置为 EPSG:4326 和一个 EPSG:3857 然后,对计划的SRS的所有请求都将访问 EPSG:3857 缓存和地理SRS请求将使用 EPSG:4326 .

meta_size and meta_buffer

改变 meta_sizemeta_buffer 这个缓存的。见 global cache options 了解更多详细信息。

bulk_meta_tiles

为平铺的源启用元平铺处理。见 global cache options 了解更多详细信息。

image

See below 所有图像选项。

use_direct_from_level and use_direct_from_res

您可以使用这两个选项限制在哪个分辨率映射代理缓存数据之前。低于配置的分辨率或级别的请求将传递给基础源,结果将不会存储。决议 use_direct_from_res 应使用此缓存的第一个配置网格的单位。这仅在用于WMS服务时生效。

upscale_tiles and downscale_tiles

MapProxy可以通过从低于或高于缩放级别重新缩放分幅来创建缺少的分幅。

如果设置了以下设置,MapProxy将从一个或多个缩放级别(分辨率较低)放大平铺 upscale_tiles 到1或更高。该值通过MapProxy可以搜索适当平铺的缩放级别进行配置。值越大,结果越模糊。

你可以使用 upscale_tiles 如果您想以比可用缓存更高的分辨率提供平铺或WMS响应。这也适用于部分种子缓存,例如,你有一个20cm的arial图像缓存,有些区域的分辨率也是10cm。 upscale_tiles 允许您对所有区域的10cm请求提供响应,始终返回最佳可用数据。

MapProxy将从以下一个或多个缩放级别(具有更高的分辨率)缩小平铺(如果您设置 downscale_tiles 到1或更高。该值通过MapProxy可以搜索适当平铺的缩放级别进行配置。注意瓷砖的数量呈指数增长。通常,一个平铺可以从下一个缩放级别的四个分幅缩小。从两级以下缩小需要16块瓷砖,三级以下需要64块,等等。。一个更大的WMS请求可以很快累积上千个缩小规模所需的块。因此是这样 not 建议使用 downscale_tiles 大于1的值。

你可以使用 downscale_tiles 为只为更高分辨率提供数据的源填充缓存。

mapproxy-seed 将独立地为具有 upscale_tilesdownscale_tiles . 它将从最高缩放级别开始 downscale_tiles ,以便通过缩小已创建的分幅来创建下一个(较低)缩放级别中的分幅。它将从 upscale_tiles ,以便在下一个(更高)缩放级别中的分幅可以通过放大已创建的分幅来创建。

如果在配置的 upscale_tilesdownscale_tiles 范围。

要触发重缩放行为,缓存中需要缺少一个磁贴,MapProxy需要无法从源获取磁贴。如果缓存没有源,或者所有源都是源,则MapProxy无法获取磁贴 seed_only or limited to a different resolution (min_res/max_res

cache_rescaled_tiles

创建的平铺 upscale_tilesdownscale_tiles 选项仅在该选项设置为true时存储在缓存中。

disable_storage

如果设置为 true ,Mapproxy将不存储此缓存的任何磁贴。maproxy将为每个传入请求重新请求所有必需的块,即使缓存中有匹配的块。见 seed_only 如果你需要一个 脱机 模式。

注解

当缓存使用带有metatiling的WMS源时,在tile服务中使用带有禁用存储的缓存时要小心。

cache_dir

mapproxy应在此缓存中存储磁贴的目录。使用的值 globals.cache.base_dir 默认情况下。maproxy将每个缓存存储在以缓存和网格SRS命名的子目录中(例如 cachename_EPSG1234 )见 directory option 关于如何配置完整路径。

cache

1.2.0 新版功能.

配置后台磁贴缓存的类型。使用配置类型 type 选择权。默认类型为 file 你可以把 cache 如果要使用文件缓存,则选择。读 高速缓存 有关所有可用缓存后端的详细列表。

例子 caches 配置

caches:
 simple:
   source: [mysource]
   grids: [mygrid]
 fullexample:
   source: [mysource, mysecondsource]
   grids: [mygrid, mygrid2]
   meta_size: [8, 8]
   meta_buffer: 256
   watermark:
     text: MapProxy
   request_format: image/tiff
   format: image/jpeg
   cache:
     type: file
     directory_layout: tms

网格

在这里,您可以定义maproxy用于内部缓存的平铺网格。定义网格有多个选项,但请注意,并非所有选项都是同时需要的,某些组合将导致结果不明确。

有三个预先定义的网格,都具有全局覆盖范围:

  • GLOBAL_GEODETIC :epsg:4326,原点西南,与epsg:4326中的Openlayers地图兼容

  • GLOBAL_MERCATOR :epsg:900913,来源于西南,与epsg:900913中的Openlayers地图兼容

  • GLOBAL_WEBMERCATOR 类似于 GLOBAL_MERCATOR 但使用EPSG:3857和Origin North-West,与OpenStreetmap/etc兼容。

1.6.0 新版功能: GLOBAL_WEBMERCATOR

name

覆盖WMTS URL中使用的网格的名称。当 use_grid_names 服务选项设置为 true .

srs

用于内部缓存的空间引用系统,写为 EPSG:xxxx .

tile_size

每块切片的大小。默认为256x256像素。::

tile_size: [512, 512]

res

包含映射代理应缓存的所有分辨率的列表。::

res: [1000, 500, 200, 100]

res_factor

在这里,您可以在每个分辨率之间定义一个因子。它应该是数字或术语 sqrt2 . sqrt2 是分辨率为1.4142,即2的平方根的简写。有了这个因素,分辨率每提高一秒就提高一倍。与默认因子2相比,您将在所有标准级别之间获得另一个缓存级别。这适用于基于矢量的图层中的自由缩放,在某些分辨率中,结果可能看起来模糊/像素化。

对于没有匹配缓存分辨率的请求,将使用下一个最佳分辨率,并且maproxy将转换结果。

threshold_res

具有分辨率的列表,在该列表中,mapproxy应该从一个级别切换到另一个级别。maproxy自动尝试确定每个请求的最佳缓存级别。你可以用 stretch_factor 选项(见下文)。

如果需要以固定分辨率从一个级别到另一个级别的显式转换,则可以使用 threshold_res 定义这些分辨率的选项。您只需要定义显式转换。

示例:您缓存的分辨率为1000、500和200M/px,对于分辨率低于700M/px的请求,需要显示1000M/px级别;对于分辨率高于700M/px的请求,需要显示500M/px级别。您可以如下定义该转换:

res: [1000, 500, 200]
threshold_res: [700]

分辨率为1500、1000或701m/px的请求将使用第一级,分辨率为700或500m/px的请求将使用第二级。所有其他转换(本例中为500至200 m/px)将自动计算 stretch_factor (在这种情况下,使用默认配置时约为416米/像素)。

bbox

网格的范围。可以使用具有左下和右上坐标的列表或字符串。您可以使用 bbox_srs 选择权。如果该选项未设置 srs 将使用网格的。

mapproxy总是希望您的bbox坐标顺序是西、南、东、北,而不管您的SRS是什么。 axis order .

bbox: [0, 40, 15, 55]
  or
bbox: "0,40,15,55"

bbox_srs

网格bbox的SRS。见上文。

origin

1.3.0 新版功能.

平铺网格的默认原点(x=0,y=0)是左下角,与tms类似。WMTS定义左上角的图块原点。maproxy可以在具有不同切片起源的服务和缓存之间进行转换,但是对于具有自定义bbox和不属于因子2的分辨率的网格有一些限制。在这些情况下,您只能使用一个服务,并且需要使用匹配的 origin 为了那个服务。

支持以下值:

llsw

如果x=0,y=0,则切片位于切片网格的左下/西南角。这是默认设置。

ulnw

如果x=0,y=0,则切片位于切片网格的左上角/西北角。

num_levels

缓存的解析级别总数。默认值为20,但具有 sqrt2 决议。设置缓存分辨率的显式列表时,此选项无效。

min_res and max_res

第一级和最后一级的决议。

stretch_factor

Maproxy选择 optimal 不完全匹配任何缓存解决方案的请求的缓存级别。maproxy将把图像拉伸或收缩到要求的分辨率。这个 stretch_factor 定义允许maproxy拉伸图像的最大因子。拉伸图像会产生更好的性能,但当该值变大(>1.2)时,图像会变得模糊。

示例:您的maproxy缓存10米和5米的分辨率。分辨率为9米的请求将从10米级别生成,从5米级别生成8米请求。

max_shrink_factor

此系数仅适用于第一级,并定义了Maproxy将收缩图像的最大系数。

示例:您的maproxy层从1公里分辨率开始。分辨率为3km的请求将得到结果,分辨率为5km的请求将得到空白响应。

base

使用此选项,可以基于已定义的其他网格的选项创建网格。

定义解决方案

有多个选项会影响映射代理将用于缓存的分辨率: resres_factormin_resmax_resnum_levels 而且 bboxtile_size . 我们描述了maproxy用于构建所有缓存分辨率列表的过程。

如果在 res 然后,maproxy将使用此列表并忽略所有其他选项。

如果 min_res 如果设置了,则此值将用于第一级,否则maproxy将使用单个图块所需的分辨率。 (tile_size )它包含了整个 bbox .

如果你有 max_resnum_levels :分辨率将在 min_resmax_res 包括两项决议。分辨率是对数的,所以在每个分辨率之间会有一个常数。使用1000到10和6级分辨率,您将获得1000、398、158、63、25、10(此处四舍五入以获得可读性)。

如果你有 max_resres_factor :分辨率将乘以 res_factor 直到更大 max_res .

如果你有 num_levelsres_factor :分辨率将乘以 res_factor 至多 num_levels 水平。

例子 grids 配置

grids:
  localgrid:
    srs: EPSG:31467
    bbox: [5,50,10,55]
    bbox_srs: EPSG:4326
    min_res: 10000
    res_factor: sqrt2
  localgrid2:
    base: localgrid
    srs: EPSG:25832
    tile_size: [512, 512]

来源

源定义了maproxy可以在哪里请求新数据。每个源都有一个 type 所有其他选项都依赖于此类型。

来源 所有可用资源的文档。

一个例子:

sources:
  sourcename:
    type: wms
    req:
      url: http://localhost:8080/service?
      layers: base
  anothersource:
    type: wms
    # ...

全局变量

在这里,您可以定义在其他配置指令中使用的maproxy和默认值的一些内部。

image

在这里,您可以定义一些影响maproxy生成图像结果的选项。

resampling_method

当结果需要重新缩放或转换时使用的重新采样方法。你可以使用最近的,双线性或双三次之一。最近的是最快的,双三次的是最慢的。双线性或双三次曲线的结果最好。双三次增强边缘的对比度,应用于矢量图像。

bilinear 你应该得到大约2/3的 nearest 性能,与 bicubic 1/3。

参见以下示例:

nearest

_images/nearest.png

bilinear

_images/bilinear.png

bicubic

_images/bicubic.png
paletted

启用调色板(8bit)PNG图像。它默认为 true 为了向后兼容。你应该把这个设置为 false 如果需要24位PNG文件。您可以使用自定义格式为单个缓存启用8位PNG (colors: 256

formats

修改现有的或定义新的图像格式。 See below 用于所有图像格式选项。

cache

以下选项定义如何创建和存储磁贴。大多数选项也可以为每个缓存单独设置。

1.6.0 新版功能: tile_lock_dir

1.10.0 新版功能: bulk_meta_tiles

meta_size

maproxy不会对它需要的每个图块都进行单一请求,但它将请求由多个图块组成的大型元图块。 meta_size 定义元图块的大小。一 meta_size 属于 [4, 4] 将要求一次16块切片。切片大小为256x256时,这将导致对源的1024x1024请求。平铺源仍被逐块请求,但您可以将maproxy配置为使用 bulk_meta_tiles .

bulk_meta_tiles

为具有平铺源的缓存启用元平铺处理。如果设置为 true ,maproxy将从源请求相邻的图块,即使从缓存只请求一个图块。 meta_size 定义在一个步骤中应请求多少个图块,以及 concurrent_tile_creators 定义并行发出的请求数。此选项提高了允许在一个请求中存储多个图块的缓存的性能,如sqlite/mbtiles,但不提高 file 隐藏物。

meta_buffer

maproxy将在每个方向上增加每个meta-tile请求的像素数。这可以解决在切片边缘切断标签的情况。

base_dir

存储所有缓存磁贴的基本目录。路径可以是绝对路径(例如 /var/mapproxy/cache )或相对于maproxy.yaml文件。默认为 ./cache_data .

lock_dir

maproxy使用锁定将多个请求限制到同一个服务。见 concurrent_requests . 此选项定义临时锁定文件的存储位置。路径可以是绝对路径(例如 /tmp/lock/mapproxy )或相对于maproxy.yaml文件。默认为 ./cache_data/tile_locks .

tile_lock_dir

maproxy使用锁定来防止同一个图块被多次创建。此选项定义临时锁定文件的存储位置。路径可以是绝对路径(例如 /tmp/lock/mapproxy )或相对于maproxy.yaml文件。默认为 ./cache_data/dir_of_the_cache/tile_locks .

concurrent_tile_creators

这限制了maproxy对源发出的并行请求数。此限制是针对此缓存的每个请求,而不是针对所有maproxy请求。要限制maproxy对单个服务器的请求,请使用 concurrent_requests 选择权。

示例:未缓存区域中的请求需要maproxy获取四个元图块。一 concurrent_tile_creators 值two允许maproxy并行向源WMS请求发出两个请求。元图块的拆分和新图块的编码将与并行进行。

link_single_color_images

启用 link_single_color_images 所有缓存的选项(如果设置为) true . 见 link_single_color_images .

max_tile_limit

对于WMS请求,MapProxy将合并到一起的最大平铺数。此限制适用于每层,默认为500个切片。

srs

preferred_src_proj

此选项允许您控制需要重新投影图像时MapProxy应使用的源投影。

当您的请求不受源支持时,生成的网格或磁贴 (supported_srs ),则MapProxy将从 best 可用投影。默认情况下 best available projection是您的缓存或源支持的第一个投影,它也是投影的或地理的。

你可以用 preferred_src_proj . 例如,您可以配置MapProxy应该更喜欢来自相邻区域的类似投影,而不是Webmercator。

preferred_src_proj 是包含目标EPSG代码(即用户请求的SRS)和首选源EPSG代码列表的字典。

通过以下配置,WMS请求EPSG:25831是从藏匿处提供EPSG:25832,如果没有缓存爱普生:25831。:

srs:
  preferred_src_proj:
    'EPSG:25831': ['EPSG:25832', 'EPSG:3857']
    'EPSG:25832': ['EPSG:25831', 'EPSG:25833', 'EPSG:3857']
    'EPSG:25833': ['EPSG:25832'', 'EPSG:3857']
    'EPSG:31466': ['EPSG:25831', 'EPSG:25832', 'EPSG:3857']
    'EPSG:31467': ['EPSG:25832', 'EPSG:25833', 'EPSG:25831', 'EPSG:3857']

1.12.0 新版功能.

proj_data_dir

MapProxy将PROJ用于所有坐标变换。如果需要自定义投影或需要调整现有定义。可以将MapProxy指向自己的一组项目数据文件。

此路径应包含 epsg 带有EPSG定义的文件,用于安装PROJ版本4。PROJ>=5使用不同的配置格式。请参考项目文件。

配置的路径可以是绝对路径或相对于maproxy.yaml的路径。

axis_order_ne and axis_order_en

轴顺序定义了坐标的顺序,即lon/lat或lat/lon。顺序取决于SRS。大多数客户机和服务器都不遵守命令,每个人都使用lon/lat命令。根据WMS 1.3.0规范,OGC强调应使用SRS的轴顺序。

您可以在这里定义SRS的轴顺序。如果您使用的任何SRS不在默认配置中,这可能是正确的WMS 1.3.0支持所必需的。

默认情况下,maproxy对所有地理位置采用lat/long(北/东)顺序,对所有投影SRS采用x/y(东/北)顺序。

如果您的SRS不是这样,您需要将SRS名称添加到适当的参数中。::

srs:
  # for North/East ordering
  axis_order_ne: ['EPSG:9999', 'EPSG:9998']
  # for East/North ordering
  axis_order_en: ['EPSG:0000', 'EPSG:0001']

如果需要覆盖其中一个默认值,则需要定义两个轴顺序选项,即使其中一个为空。

在 1.13.0 版更改.

使用pyproj>=2时,MapProxy现在可以确定所有坐标系的正确轴顺序。在这种情况下,将忽略轴顺序/轴顺序。

http

HTTP相关选项。

安全HTTP连接(HTTPS)

maproxy支持访问HTTPS服务器。只使用 https 而不是 http 定义源的URL时。

maproxy根据系统“证书颁发机构”(CA)证书验证SSL/TLS连接。您可以使用 ssl_ca_certs 选择权。见 Python SSL documentation 有关格式的详细信息。

http:
  ssl_ca_certs: /etc/ssl/certs/ca-certificates.crt

1.11.0 新版功能: 如果使用python>=2.7.9或>=3.4,则maproxy默认使用系统CA文件。

注解

如果使用旧的maproxy或旧的python版本,则需要提供包含根证书的CA文件。否则,maproxy将无法建立连接。您可以设置 http.ssl_no_cert_checks 选项到 true 禁用此验证。

ssl_no_cert_checks

如果要使用SSL/TLS,但不需要证书验证,则可以使用 ssl_no_cert_checks 选择权。您还可以在源级别上禁用此检查。

http:
  ssl_no_cert_checks: true

client_timeout

这定义了maproxy从源服务器等待数据的时间。如果源服务器速度较慢,请增加此值。

method

配置用于HTTP请求的HTTP方法。默认情况下(auto)maproxy将对大多数请求使用get,具有长查询字符串的请求除外(例如具有 sld_body )用柱子代替。您可以使用以下任一项禁用此行为 GETPOST .

http:
  method: GET

headers

向源的所有请求添加其他HTTP头。::

http:
  headers:
    My-Header: header value

access_control_allow_origin

1.8.0 新版功能.

设置 Access-control-allow-origin 的HTTP响应的头 Cross-origin resource sharing . WebGL或Canvas Web客户端需要此标题。默认为 * . 留空以禁用标题。此选项仅在 globals .

hide_error_details

1.13.0 新版功能.

启用后,MapProxy将仅在获取源服务时发生任何错误时向客户端报告一般错误消息。完整的错误消息可能包含机密信息,如内部URL。无论此选项如何,您都会在日志中找到完整的错误消息。默认情况下该选项处于启用状态,即隐藏详细信息。

tiles

TMS/Tile服务的配置选项。

expires_hours

切片有效的小时数。像Web浏览器这样的TMS客户端将缓存这一次的磁贴。之后客户端将尝试刷新磁贴。maproxy支持etag和最后修改的头,并将使用适当的http响应 '304 Not modified' 如果未更改磁贴,则响应。

mapserver

选项 Mapserver source .

binary

到的完整路径 mapserv 可执行的。如果您使用 mapserver 来源。

working_dir

执行映射服务器的路径。它应该是映射文件中任何相对路径所基于的目录。默认为目录 binary .

图像格式选项

1.1.0 新版功能.

有几个选项会影响maproxy编码和转换图像的方式。您可以在 globals 为每个源或缓存单独或分段。

选项

可用选项包括:

format

此图像格式的mime类型。格式默认为图像配置的名称。

mode

什么之中的一个 RGB 对于24位图像, RGBA 带alpha的32位图像, P 对于调色板图像或 I 对于整数图像。

colors

在编码前减少图像的颜色数。使用 0 禁用此格式的颜色还原(量化),以及 256 对于调色板图像。也见 globals.image.paletted .

transparent

true 如果图像应该有一个alpha通道。

resampling_method

用于缩放或重投影的重采样方法。什么之中的一个 nearestbilinearbicubic .

encoding_options

修改maproxy编码(保存)图像方式的选项。这些选项取决于格式。见下文。

opacity

配置层或缓存的不透明度。当源或缓存放置在其他层上时使用此值,它可以用于覆盖非透明图像。它不会改变图像本身,只有当多个图层合并到一个图像时才会产生效果。该值应介于0.0(完全透明)和1.0(不透明,即下面的层不会呈现)之间。

encoding_options

以下编码选项可用:

jpeg_quality

从0到100的整数值,用于定义jpeg图像的图像质量。值越大,性能越慢,文件大小越大,但图像质量越好。您应该尝试75到90之间的值,以便在性能和质量之间进行良好的折衷。

quantizer

用于量化(减少)图像颜色的算法。量化用于GIF和调色板PNG图像。可用量化器为 mediancutfastoctree . fastoctree 速度快得多,还支持8位PNG和全字母支持,但图像质量可以更好地 mediancut 在某些情况下。量化是由Python图像库(PIL)完成的。 fastoctree 是一个 new quantizer 仅在枕头中提供>=2.0。见 installation of PIL .

tiff_compression

为TIFF图像启用压缩。可用的压缩方法有 tiff_lzw 对于无损LZW压缩, jpeg 用于JPEG压缩和 raw 无压缩(默认)。你可以用 jpeg_quality 为JPEG压缩TIFF调整图像质量的选项。需要枕头>=6.1.0。

1.12.0 新版功能.

全球的

您可以使用 image.formats 选择权。每个格式都有一个名称和上面列表中的一个或多个选项。可以选择任何名称,但需要指定 format 如果名称不是有效的mime类型(例如 myformat 而不是 image/png

以下是定义自定义格式的示例:

globals:
  image:
    formats:
      my_format:
        format: image/png
        mode: P
        transparent: true

您还可以修改现有图像格式:

globals:
  image:
    formats:
      image/png:
        encoding_options:
          quantizer: fastoctree

当您将格式名用作 format 任何源或缓存。

例如::

caches:
  mycache:
    format: my_format
    sources: [source1, source2]
    grids: [my_grid]

局部的

您可以为每个缓存或源分别更改所有选项。您可以通过选择基本格式并更改以下选项来完成此操作:

caches:
  mycache:
    format: image/jpeg
    image:
      encoding_options:
        jpeg_quality: 80
    sources: [source1, source2]
    grids: [my_grid]

您还可以从头开始配置格式:

caches:
  mycache:
    image:
      format: image/jpeg
      resampling_method: nearest
    sources: [source1, source2]
    grids: [my_grid]

笔记

比例与分辨率

比例是地图上的距离与地面上相应距离的比率。这意味着地图距离和地面距离的测量单位相同。给MapProxy A map 只是像素的集合,像素没有任何大小/维度。它们确实与地面大小相对应,但是 map 取决于物理输出格式。因此,maproxy只能使用分辨率(每地面单位像素)而不能使用比例。

这同样适用于所有服务器和OGC WMS标准。有些人忽略了这一事实,并假定像素尺寸固定(如72dpi),OCG WMS 1.3.0标准使用0.28 mm/px(约91dpi)的像素尺寸。但你必须明白 scale 如果打印地图(200、300或更多dpi)或在计算机显示器上显示地图(通常为90-120 dpi,但有超过300 dpi的移动设备),则会有所不同。

您可以使用 mapproxy-util scales tool .

如果需要使用比例值(例如WMS 1.3.0功能中的MinscaleDenominator),Maproxy将使用OCG值(0.28mm/px),但应始终使用Maproxy中的分辨率。

WMS缩略语

WMS的scaleHint有点误导人。参数不是比例,而是对角线像素分辨率。它还定义了 min 作为最小值而不是最小分辨率(例如,10M/px是低于5m/px的分辨率,但5m/px是最小值)。maproxy总是使用术语resolutions作为每像素地面单位的边长,最小分辨率总是更高的数字(100米/像素<10米/像素)。使用这些值时请记住这一点。