mapproxy使用两个配置文件。
mappproxy.yaml
这是maproxy的主要配置。它配置了服务器的所有方面:应该启动哪些服务器、数据来自何处、应该缓存什么等等。
seed.yaml
此文件是 mapproxy-seed
工具。见 seeding documentation 更多信息。
配置使用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]
root
和 layer1
在这种情况下是一个组层。WMS服务将提供 layer1a
和 layer1b
如果你要求 layer1
. 注意 sources
如果您提供 layers
. 您仍然可以配置 sources
用于组层。在这种情况下,小组 sources
将替换 sources
子层的。
如果在第一级定义多个层,maproxy将把所有层包装成一个未命名的根层。
注解
旧语法(参见 name
above )如果使用嵌套层配置格式,则不支持。
sources
¶此层的数据源列表。您可以使用中定义的源 sources
和 caches
部分。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
¶此缓存的数据源列表。您可以使用中定义的源 sources
和 caches
部分。这个参数是 required . 在将多个源存储到磁盘之前,maproxy将从左(下)到右(上)合并多个源。
caches:
my_cache:
sources: [background_wms, overlay_wms]
...
WMS和MapServer源还支持标记名称 (wms:lyr1,lyr2
)见 标记的源名称 .
1.9.0 新版功能.
您还可以为每个色带定义一个源列表。目标色带指定为 r
, g
, b
对于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},
]
format
¶缓存的内部图像格式。可用选项包括 image/png
, image/jpeg
等等 mixed
. 默认值为 image/png
.
1.5.0 新版功能.
与 mixed
格式,根据每个图块的透明度,maproxy将图块存储为png或jpeg。具有透明度的图像将存储为PNG,完全不透明的图像将存储为JPEG。你需要设置 request_format
到 image/png
使用时 mixed
-模式:
caches:
mixed_mode_cache:
format: mixed
request_format: image/png
...
request_format
¶如果没有设置,maproxy将尝试使用此格式请求新的磁贴。 format
使用。如果源不支持该格式或显式设置了源的格式,则此选项无效(请参见 suported_format
或 format
来源)。
link_single_color_images
¶如果设置为 true
,maproxy不会将只包含单一颜色的图块存储为单独的文件。maproxy只存储这些图块一次,每次出现时都使用指向此文件的符号链接。如果您有更大的没有数据的区域(例如水域、没有道路的区域等),这可以减小切片缓存的大小。
注解
此功能仅在Unix上可用,因为Windows不支持符号链接。
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_size
和 meta_buffer
这个缓存的。见 global cache options 了解更多详细信息。
bulk_meta_tiles
¶为平铺的源启用元平铺处理。见 global cache options 了解更多详细信息。
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_tiles
或 downscale_tiles
. 它将从最高缩放级别开始 downscale_tiles
,以便通过缩小已创建的分幅来创建下一个(较低)缩放级别中的分幅。它将从 upscale_tiles
,以便在下一个(更高)缩放级别中的分幅可以通过放大已创建的分幅来创建。
如果在配置的 upscale_tiles
或 downscale_tiles
范围。
要触发重缩放行为,缓存中需要缺少一个磁贴,MapProxy需要无法从源获取磁贴。如果缓存没有源,或者所有源都是源,则MapProxy无法获取磁贴 seed_only
or limited to a different resolution (min_res
/max_res
)
cache_rescaled_tiles
¶创建的平铺 upscale_tiles
或 downscale_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
.
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
为了那个服务。
支持以下值:
ll
或 sw
:如果x=0,y=0,则切片位于切片网格的左下/西南角。这是默认设置。
ul
或 nw
:如果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
¶使用此选项,可以基于已定义的其他网格的选项创建网格。
有多个选项会影响映射代理将用于缓存的分辨率: res
, res_factor
, min_res
, max_res
, num_levels
而且 bbox
和 tile_size
. 我们描述了maproxy用于构建所有缓存分辨率列表的过程。
如果在 res
然后,maproxy将使用此列表并忽略所有其他选项。
如果 min_res
如果设置了,则此值将用于第一级,否则maproxy将使用单个图块所需的分辨率。 (tile_size
)它包含了整个 bbox
.
如果你有 max_res
和 num_levels
:分辨率将在 min_res
和 max_res
包括两项决议。分辨率是对数的,所以在每个分辨率之间会有一个常数。使用1000到10和6级分辨率,您将获得1000、398、158、63、25、10(此处四舍五入以获得可读性)。
如果你有 max_res
和 res_factor
:分辨率将乘以 res_factor
直到更大 max_res
.
如果你有 num_levels
和 res_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
:
bilinear
:
bicubic
:
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相关选项。
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 )用柱子代替。您可以使用以下任一项禁用此行为 GET 或 POST .
http:
method: GET
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
用于缩放或重投影的重采样方法。什么之中的一个 nearest
, bilinear
或 bicubic
.
encoding_options
修改maproxy编码(保存)图像方式的选项。这些选项取决于格式。见下文。
opacity
配置层或缓存的不透明度。当源或缓存放置在其他层上时使用此值,它可以用于覆盖非透明图像。它不会改变图像本身,只有当多个图层合并到一个图像时才会产生效果。该值应介于0.0(完全透明)和1.0(不透明,即下面的层不会呈现)之间。
encoding_options
¶以下编码选项可用:
jpeg_quality
从0到100的整数值,用于定义jpeg图像的图像质量。值越大,性能越慢,文件大小越大,但图像质量越好。您应该尝试75到90之间的值,以便在性能和质量之间进行良好的折衷。
quantizer
用于量化(减少)图像颜色的算法。量化用于GIF和调色板PNG图像。可用量化器为 mediancut
和 fastoctree
. 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的scaleHint有点误导人。参数不是比例,而是对角线像素分辨率。它还定义了 min
作为最小值而不是最小分辨率(例如,10M/px是低于5m/px的分辨率,但5m/px是最小值)。maproxy总是使用术语resolutions作为每像素地面单位的边长,最小分辨率总是更高的数字(100米/像素<10米/像素)。使用这些值时请记住这一点。