mapproxy-util

命令行工具 mapproxy-util 提供在使用maproxy时有用的子命令。

要获取所有子命令的列表,请调用:

mapproxy-util

调用子命令:

mapproxy-util subcommand

每个子命令提供附加信息:

mapproxy-util subcommand --help

当前的子命令是:

create

此子命令为您创建示例配置。每个配置文件都有模板。

-l, --list-templates

列出所有可用配置模板的名称。

-t <name>, --template <name>

使用命名模板创建配置。

-f <mapproxy.yaml>, --mapproxy-conf <mapproxy.yaml>

映射代理配置的路径。对于某些模板是必需的。

--force

用相同的输出文件名覆盖任何现有配置。

配置模板

可用模板包括:

基本配置:

创建一个示例 mapproxy.yamlseed.yaml 文件。您需要将目标目录传递给命令。

日志Iini:

创建日志配置示例。您需要将目标文件名传递给命令。

WSGI应用程序:

为给定的maproxy配置创建示例服务器脚本 (--f/--mapproxy-conf )您需要将目标文件名传递给命令。

例子

mapproxy-util create -t base-config ./

serve-develop

此子命令将配置的maproxy实例作为独立服务器启动。

您需要将maproxy配置作为参数传递。如果更改配置或任何maproxy源代码,服务器将自动重新加载。

-b <address>, --bind <address>

HTTP服务器应在其中侦听传入连接的服务器地址。可以是一个港口 (:8080 (主持人) (localhost )或两者兼而有之 (localhost:8081 )默认值为 localhost:8080 . 你需要使用 0.0.0.0 以便能够从外部客户端连接到服务器。

例子

mapproxy-util serve-develop ./mapproxy.yaml

serve-multiapp-develop

1.3.0 新版功能.

此子命令类似于 serve-develop 但它开始了 MultiMapProxy 实例。

您需要将maproxy配置的目录作为参数传递。如果更改任何配置或任何maproxy源代码,服务器将自动重新加载。

-b <address>, --bind <address>

HTTP服务器应在其中侦听传入连接的服务器地址。可以是一个港口 (:8080 (主持人) (localhost )或两者兼而有之 (localhost:8081 )默认值为 localhost:8080 . 你需要使用 0.0.0.0 以便能够从外部客户端连接到服务器。

例子

mapproxy-util serve-multiapp-develop my_projects/

scales

1.2.0 新版功能.

此子命令有助于在刻度和分辨率之间进行转换。

当输出设备(LCD、打印机、移动设备等)的分辨率未知时,比例不明确,因此Maproxy仅使用分辨率进行配置(请参见 比例与分辨率 )你可以使用 scales 用于在已知比例值和分辨率之间进行计算的子命令。

该命令获取具有一个或多个比例值的列表,并返回相应的分辨率值。

--unit <m|d>

以每像素为单位返回分辨率(默认为每像素米)。

-l <n>, --levels <n>

计算分辨率 n 水平。如果 n 大于提供的刻度数。

-d <dpi>, --dpi <dpi>

用于计算的输出显示的分辨率。您需要将其设置为正在使用的客户机/服务器软件的相同值。常用值为72和96。默认值相当于0.28mm的像素大小,大约为91 dpi。这是OGC自WMS 1.3.0规范以来使用的值。

--as-res-config

格式化输出,以便将其粘贴到maproxy网格配置中。

--res-to-scale

从分辨率到刻度进行计算。

例子

对于作为maproxy配置片段的多个级别:::

mapproxy-util scales -l 4 --as-res-config 100000
res: [
     #  res            level        scale
       28.0000000000, #  0      100000.00000000
       14.0000000000, #  1       50000.00000000
        7.0000000000, #  2       25000.00000000
        3.5000000000, #  3       12500.00000000
]

具有多个比例值和自定义dpi:::

mapproxy-util scales --dpi 96 --as-res-config \
    100000 50000 25000 10000
res: [
     #  res            level        scale
       26.4583333333, #  0      100000.00000000
       13.2291666667, #  1       50000.00000000
        6.6145833333, #  2       25000.00000000
        2.6458333333, #  3       10000.00000000
]

wms-capabilities

1.5.0 新版功能.

此子命令解析URL中的有效功能文档,并显示所有可用层。

此工具不创建maproxy配置,但输出应帮助您设置或修改maproxy配置。

该命令采用有效的url getcapabilities url。

--host <URL>

显示此服务的所有可用层。每个新层都将用连字符标记,并且所有子层都缩进。

--version <versionnumber>

分析给定版本的功能文档。仅支持版本1.1.1和1.3.0。默认值为1.1.1

例子

使用以下映射代理层配置:::

layers:
  - name: osm
    title: Omniscale OSM WMS - osm.omniscale.net
    sources: [osm_cache]
  - name: foo
    title: Group Layer
    layers:
      - name: layer1a
        title: Title of Layer 1a
        sources: [osm_cache]
      - name: layer1b
        title: Title of Layer 1b
        sources: [osm_cache]

已分析的功能文档:::

mapproxy-util wms-capabilities http://127.0.0.1:8080/service?REQUEST=GetCapabilities
Capabilities Document Version 1.1.1
Root-Layer:
  - title: MapProxy WMS Proxy
    url: http://127.0.0.1:8080/service?
    opaque: False
    srs: ['EPSG:31467', 'EPSG:31466', 'EPSG:4326', 'EPSG:25831', 'EPSG:25833',
          'EPSG:25832', 'EPSG:31468', 'EPSG:900913', 'CRS:84', 'EPSG:4258']
    bbox:
        EPSG:900913: [-20037508.3428, -20037508.3428, 20037508.3428, 20037508.3428]
        EPSG:4326: [-180.0, -85.0511287798, 180.0, 85.0511287798]
    queryable: False
    llbbox: [-180.0, -85.0511287798, 180.0, 85.0511287798]
    layers:
      - name: osm
        title: Omniscale OSM WMS - osm.omniscale.net
        url: http://127.0.0.1:8080/service?
        opaque: False
        srs: ['EPSG:31467', 'EPSG:31466', 'EPSG:25832', 'EPSG:25831', 'EPSG:25833',
              'EPSG:4326', 'EPSG:31468', 'EPSG:900913', 'CRS:84', 'EPSG:4258']
        bbox:
            EPSG:900913: [-20037508.3428, -20037508.3428, 20037508.3428, 20037508.3428]
            EPSG:4326: [-180.0, -85.0511287798, 180.0, 85.0511287798]
        queryable: False
        llbbox: [-180.0, -85.0511287798, 180.0, 85.0511287798]
      - name: foobar
        title: Group Layer
        url: http://127.0.0.1:8080/service?
        opaque: False
        srs: ['EPSG:31467', 'EPSG:31466', 'EPSG:25832', 'EPSG:25831', 'EPSG:25833',
              'EPSG:4326', 'EPSG:31468', 'EPSG:900913', 'CRS:84', 'EPSG:4258']
        bbox:
            EPSG:900913: [-20037508.3428, -20037508.3428, 20037508.3428, 20037508.3428]
            EPSG:4326: [-180.0, -85.0511287798, 180.0, 85.0511287798]
        queryable: False
        llbbox: [-180.0, -85.0511287798, 180.0, 85.0511287798]
        layers:
          - name: layer1a
            title: Title of Layer 1a
            url: http://127.0.0.1:8080/service?
            opaque: False
            srs: ['EPSG:31467', 'EPSG:31466', 'EPSG:25832', 'EPSG:25831', 'EPSG:25833',
                  'EPSG:4326', 'EPSG:31468', 'EPSG:900913', 'CRS:84', 'EPSG:4258']
            bbox:
                EPSG:900913: [-20037508.3428, -20037508.3428, 20037508.3428, 20037508.3428]
                EPSG:4326: [-180.0, -85.0511287798, 180.0, 85.0511287798]
            queryable: False
            llbbox: [-180.0, -85.0511287798, 180.0, 85.0511287798]
          - name: layer1b
            title: Title of Layer 1b
            url: http://127.0.0.1:8080/service?
            opaque: False
            srs: ['EPSG:31467', 'EPSG:31466', 'EPSG:25832', 'EPSG:25831', 'EPSG:25833',
                  'EPSG:4326', 'EPSG:31468', 'EPSG:900913', 'CRS:84', 'EPSG:4258']
            bbox:
                EPSG:900913: [-20037508.3428, -20037508.3428, 20037508.3428, 20037508.3428]
                EPSG:4326: [-180.0, -85.0511287798, 180.0, 85.0511287798]
            queryable: False
            llbbox: [-180.0, -85.0511287798, 180.0, 85.0511287798]

grids

1.5.0 新版功能.

此子命令显示有关已配置网格的信息。

该命令获取一个mapproxy配置文件并返回所有配置的网格。

此外,如果未明确定义每个网格的默认值,则会显示这些值。所有默认值在输出中都用星号标记。

-f <path/to/config>, --mapproxy-config <path/to/config>

显示此maproxy配置的所有配置网格以及详细信息。如果未设置此选项,子命令将尝试使用最后一个参数作为maproxy配置。

-l, --list

仅显示给定配置的网格名称,任何网格都使用这些名称。

--all

同时显示未被任何缓存引用的网格。

-g <grid_name>, --grid <grid_name>

仅显示单个网格的信息。如果找不到网格名称,工具将退出。

-c <coverage name>, --coverage <coverage name>

显示此覆盖范围内每个级别的切片数量的近似值。必须在种子配置中定义覆盖率。

-s <seed.yaml>, --seed-conf <seed.yaml>

此选项加载种子配置,如果使用 --coverage 选择权。

例子

使用以下maproxy网格配置:::

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

列出所有配置的网格:::

mapproxy-util grids --list --mapproxy-config /path/to/mapproxy.yaml
GLOBAL_GEODETIC
GLOBAL_MERCATOR
localgrid
localgrid2

显示一个特定网格的详细信息:::

mapproxy-util grids --grid localgrid --mapproxy-conf /path/to/mapproxy.yaml
localgrid:
    Configuration:
        bbox: [5, 50, 10, 55]
        bbox_srs: 'EPSG:4326'
        min_res: 10000
        origin*: 'sw'
        srs: 'EPSG:31467'
        tile_size*: [256, 256]
    Levels: Resolutions, # x * y = total tiles
        00:  10000,             #      1 * 1      =        1
        01:  5000.0,            #      1 * 1      =        1
        02:  2500.0,            #      1 * 1      =        1
        03:  1250.0,            #      2 * 2      =        4
        04:  625.0,             #      3 * 4      =       12
        05:  312.5,             #      5 * 8      =       40
        06:  156.25,            #      9 * 15     =      135
        07:  78.125,            #     18 * 29     =      522
        08:  39.0625,           #     36 * 57     =   2.052K
        09:  19.53125,          #     72 * 113    =   8.136K
        10:  9.765625,          #    144 * 226    =  32.544K
        11:  4.8828125,         #    287 * 451    = 129.437K
        12:  2.44140625,        #    574 * 902    = 517.748K
        13:  1.220703125,       #   1148 * 1804   =   2.071M
        14:  0.6103515625,      #   2295 * 3607   =   8.278M
        15:  0.30517578125,     #   4589 * 7213   =  33.100M
        16:  0.152587890625,    #   9178 * 14426  = 132.402M
        17:  0.0762939453125,   #  18355 * 28851  = 529.560M
        18:  0.03814697265625,  #  36709 * 57701  =   2.118G
        19:  0.019073486328125, #  73417 * 115402 =   8.472G

export

此子命令将块从一个缓存导出到另一个缓存。这类似于种子工具,但您不需要编辑配置。可以在命令行上定义目标缓存、网格和覆盖范围。

必需参数:

-f, --mapproxy-conf

源缓存的maproxy配置的路径。

--source

要导出的源或缓存的名称。

--levels

要导出的级别的逗号分隔列表。您还可以定义一个级别范围。例如 '1,2,3,4,5''1..10''1,3,4,6..8' .

--grid

用于导出的平铺网格。选项可以是在MapProxy配置中定义的网格名称,也可以是网格定义本身。您可以将网格定义为一个键值对的字符串。网格定义 supports all grid parameters . 示例见下文。

--dest

出口目的地。可以是文件名、目录或URL,具体取决于导出 --type .

--type

选择导出类型。有关所有选项的列表,请参见下文。

其他选项:

--fetch-missing-tiles

如果maproxy应该从源请求丢失的图块。默认情况下,导出工具将仅限于现有的平铺。

--coverage, --srs, --where

将出口限制在此范围内。您可以使用bbox、wkt文件或ogr数据源。见 覆盖范围 .

-c N, --concurrency N

并发导出进程的数目。

出口类型

tms

在类似tms的目录结构中导出tiles。

mapproxytc

导出类似内部缓存目录结构的图块。这与Tilecache兼容。

mbtile

将磁贴导出到mbtile文件中。

sqlite

将图块导出到sqlite级别的文件中。

geopackage

将图块导出到地理包文件中。

arcgis

导出Arcgis分解缓存目录结构中的图块。

compact-v1

将tiles导出为arcgis compact cache bundle文件(版本1)。

实例

将tiles导出到下的tms目录结构中 ./cache/ . 限制导出到bbox和级别0到6。

mapproxy-util export -f mapproxy.yaml --grid osm_grid \
    --source osm_cache --dest ./cache/ \
    --levels 1..6 --coverage 5,50,10,60 --srs 4326

将图块导出到mbtiles文件中。限制导出到形状覆盖范围。

mapproxy-util export -f mapproxy.yaml --grid osm_grid \
    --source osm_cache --dest osm.mbtiles --type mbtile \
    --levels 1..6 --coverage boundaries.shp \
    --where 'CNTRY_NAME = "Germany"' --srs 3857

使用自定义网格定义将图块导出到mbtiles文件中。

mapproxy-util export -f mapproxy.yaml --levels 1..6 \
    --grid "srs='EPSG:4326' bbox=[5,50,10,60] tile_size=[512,512]" \
    --source osm_cache --dest osm.mbtiles --type mbtile \

defrag-compact-cache

Arcgis Compact缓存格式版本1和2仅为追加。更新现有的平铺将增加文件大小。捆绑文件会随着时间的推移变得更大和碎片化。这个 defrag-compact-cache 子命令通过重写和重新组织每个bundle文件来压缩现有的bundle文件。

必需参数:

-f, --mapproxy-conf

已配置压缩缓存的maproxy配置的路径。

可选参数:

--caches

要进行碎片整理的缓存的逗号分隔列表。默认情况下,所有配置的压缩缓存都将进行碎片整理。

--min-percent, --min-mb

只跳过碎片最小的捆绑文件。您可以使用定义此阈值 --min-percent 作为所需的未使用空间的最小百分比 --min-mb 作为所需的最小未使用空间(兆字节)。必须超过两个阈值。默认为10%和1MB。

-n, --dry-run

这将模拟碎片整理过程。

实例

整理捆绑文件的碎片 map1_cachemap2_cache 当它们有超过20%和5MB的未使用空间时。例如,一个20MB的bundle文件只有在碎片整理后小于15MB时才会被重写;一个500MB的bundle文件只有在碎片整理后小于400MB时才会被重写。

mapproxy-util defrag-compact-cache -f mapproxy.yaml \
  --min-percent 20 \
  --min-mb 5 \
  --caches map1_cache,map2_cache