MapProxy 2.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- MapProxy-2.1.0.dist-info/AUTHORS.txt +33 -0
- MapProxy-2.1.0.dist-info/COPYING.txt +60 -0
- MapProxy-2.1.0.dist-info/LICENSE.txt +202 -0
- MapProxy-2.1.0.dist-info/METADATA +165 -0
- MapProxy-2.1.0.dist-info/RECORD +459 -0
- MapProxy-2.1.0.dist-info/WHEEL +5 -0
- MapProxy-2.1.0.dist-info/entry_points.txt +4 -0
- MapProxy-2.1.0.dist-info/top_level.txt +1 -0
- mapproxy/__init__.py +0 -0
- mapproxy/cache/__init__.py +36 -0
- mapproxy/cache/azureblob.py +145 -0
- mapproxy/cache/base.py +120 -0
- mapproxy/cache/compact.py +665 -0
- mapproxy/cache/couchdb.py +301 -0
- mapproxy/cache/dummy.py +36 -0
- mapproxy/cache/file.py +200 -0
- mapproxy/cache/geopackage.py +647 -0
- mapproxy/cache/legend.py +87 -0
- mapproxy/cache/mbtiles.py +411 -0
- mapproxy/cache/meta.py +80 -0
- mapproxy/cache/path.py +261 -0
- mapproxy/cache/redis.py +152 -0
- mapproxy/cache/renderd.py +100 -0
- mapproxy/cache/riak.py +206 -0
- mapproxy/cache/s3.py +209 -0
- mapproxy/cache/tile.py +736 -0
- mapproxy/client/__init__.py +0 -0
- mapproxy/client/arcgis.py +82 -0
- mapproxy/client/cgi.py +141 -0
- mapproxy/client/http.py +295 -0
- mapproxy/client/log.py +33 -0
- mapproxy/client/tile.py +158 -0
- mapproxy/client/wms.py +255 -0
- mapproxy/compat/__init__.py +0 -0
- mapproxy/compat/image.py +86 -0
- mapproxy/config/__init__.py +22 -0
- mapproxy/config/config-schema.json +813 -0
- mapproxy/config/config.py +213 -0
- mapproxy/config/coverage.py +108 -0
- mapproxy/config/defaults.py +102 -0
- mapproxy/config/loader.py +2399 -0
- mapproxy/config/spec.py +657 -0
- mapproxy/config/validator.py +242 -0
- mapproxy/config_template/__init__.py +0 -0
- mapproxy/config_template/base_config/config.wsgi +10 -0
- mapproxy/config_template/base_config/full_example.yaml +598 -0
- mapproxy/config_template/base_config/full_seed_example.yaml +79 -0
- mapproxy/config_template/base_config/log.ini +35 -0
- mapproxy/config_template/base_config/mapproxy.yaml +60 -0
- mapproxy/config_template/base_config/seed.yaml +27 -0
- mapproxy/exception.py +149 -0
- mapproxy/featureinfo.py +251 -0
- mapproxy/grid.py +1199 -0
- mapproxy/image/__init__.py +549 -0
- mapproxy/image/fonts/DejaVuSans.ttf +0 -0
- mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
- mapproxy/image/fonts/LICENSE +99 -0
- mapproxy/image/fonts/__init__.py +0 -0
- mapproxy/image/mask.py +79 -0
- mapproxy/image/merge.py +323 -0
- mapproxy/image/message.py +357 -0
- mapproxy/image/opts.py +185 -0
- mapproxy/image/tile.py +171 -0
- mapproxy/image/transform.py +350 -0
- mapproxy/layer.py +489 -0
- mapproxy/multiapp.py +230 -0
- mapproxy/proj.py +309 -0
- mapproxy/request/__init__.py +18 -0
- mapproxy/request/arcgis.py +268 -0
- mapproxy/request/base.py +466 -0
- mapproxy/request/tile.py +131 -0
- mapproxy/request/wms/__init__.py +829 -0
- mapproxy/request/wms/exception.py +107 -0
- mapproxy/request/wmts.py +442 -0
- mapproxy/response.py +237 -0
- mapproxy/script/__init__.py +0 -0
- mapproxy/script/conf/__init__.py +0 -0
- mapproxy/script/conf/app.py +222 -0
- mapproxy/script/conf/caches.py +44 -0
- mapproxy/script/conf/geopackage.py +136 -0
- mapproxy/script/conf/layers.py +54 -0
- mapproxy/script/conf/seeds.py +36 -0
- mapproxy/script/conf/sources.py +88 -0
- mapproxy/script/conf/utils.py +148 -0
- mapproxy/script/defrag.py +187 -0
- mapproxy/script/export.py +337 -0
- mapproxy/script/grids.py +198 -0
- mapproxy/script/scales.py +134 -0
- mapproxy/script/util.py +410 -0
- mapproxy/script/wms_capabilities.py +160 -0
- mapproxy/seed/__init__.py +0 -0
- mapproxy/seed/cachelock.py +127 -0
- mapproxy/seed/cleanup.py +191 -0
- mapproxy/seed/config.py +481 -0
- mapproxy/seed/script.py +391 -0
- mapproxy/seed/seeder.py +551 -0
- mapproxy/seed/spec.py +66 -0
- mapproxy/seed/util.py +266 -0
- mapproxy/service/__init__.py +14 -0
- mapproxy/service/base.py +45 -0
- mapproxy/service/demo.py +364 -0
- mapproxy/service/kml.py +333 -0
- mapproxy/service/ows.py +39 -0
- mapproxy/service/template_helper.py +55 -0
- mapproxy/service/templates/demo/capabilities_demo.html +18 -0
- mapproxy/service/templates/demo/demo.html +181 -0
- mapproxy/service/templates/demo/openlayers-demo.cfg +16 -0
- mapproxy/service/templates/demo/static/img/blank.gif +0 -0
- mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
- mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
- mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
- mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
- mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
- mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
- mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
- mapproxy/service/templates/demo/static/logo.png +0 -0
- mapproxy/service/templates/demo/static/ol.css +345 -0
- mapproxy/service/templates/demo/static/ol.js +4 -0
- mapproxy/service/templates/demo/static/proj4.min.js +1 -0
- mapproxy/service/templates/demo/static/proj4defs.js +1 -0
- mapproxy/service/templates/demo/static/site.css +137 -0
- mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
- mapproxy/service/templates/demo/static/theme/default/google.css +17 -0
- mapproxy/service/templates/demo/static/theme/default/ie6-style.css +10 -0
- mapproxy/service/templates/demo/static/theme/default/style.css +482 -0
- mapproxy/service/templates/demo/static.html +34 -0
- mapproxy/service/templates/demo/tms_demo.html +117 -0
- mapproxy/service/templates/demo/wms_demo.html +144 -0
- mapproxy/service/templates/demo/wmts_demo.html +118 -0
- mapproxy/service/templates/tms_capabilities.xml +13 -0
- mapproxy/service/templates/tms_exception.xml +4 -0
- mapproxy/service/templates/tms_root_resource.xml +7 -0
- mapproxy/service/templates/tms_tilemap_capabilities.xml +14 -0
- mapproxy/service/templates/wms100capabilities.xml +112 -0
- mapproxy/service/templates/wms100exception.xml +4 -0
- mapproxy/service/templates/wms110capabilities.xml +152 -0
- mapproxy/service/templates/wms110exception.xml +5 -0
- mapproxy/service/templates/wms111capabilities.xml +183 -0
- mapproxy/service/templates/wms111exception.xml +5 -0
- mapproxy/service/templates/wms130capabilities.xml +326 -0
- mapproxy/service/templates/wms130exception.xml +8 -0
- mapproxy/service/templates/wmts100capabilities.xml +155 -0
- mapproxy/service/templates/wmts100exception.xml +9 -0
- mapproxy/service/tile.py +540 -0
- mapproxy/service/wms.py +868 -0
- mapproxy/service/wmts.py +387 -0
- mapproxy/source/__init__.py +83 -0
- mapproxy/source/arcgis.py +39 -0
- mapproxy/source/error.py +40 -0
- mapproxy/source/mapnik.py +262 -0
- mapproxy/source/tile.py +97 -0
- mapproxy/source/wms.py +273 -0
- mapproxy/srs.py +734 -0
- mapproxy/template.py +54 -0
- mapproxy/test/__init__.py +0 -0
- mapproxy/test/conftest.py +8 -0
- mapproxy/test/helper.py +255 -0
- mapproxy/test/http.py +511 -0
- mapproxy/test/image.py +219 -0
- mapproxy/test/mocker.py +2291 -0
- mapproxy/test/schemas/inspire/common/1.0/common.xsd +1461 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +155 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +109 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +108 -0
- mapproxy/test/schemas/inspire/common/1.0/network.xsd +521 -0
- mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +19 -0
- mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +14 -0
- mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +66 -0
- mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +1646 -0
- mapproxy/test/schemas/kml/2.2.0/xAL.xsd +1680 -0
- mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +87 -0
- mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +235 -0
- mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +23 -0
- mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +157 -0
- mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +86 -0
- mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +127 -0
- mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +279 -0
- mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +76 -0
- mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +112 -0
- mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +51 -0
- mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +59 -0
- mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +125 -0
- mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +140 -0
- mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +60 -0
- mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +47 -0
- mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +27 -0
- mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +353 -0
- mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +188 -0
- mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +524 -0
- mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +260 -0
- mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +273 -0
- mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +303 -0
- mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +6 -0
- mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +33 -0
- mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +68 -0
- mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
- mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +274 -0
- mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +5 -0
- mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +276 -0
- mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +303 -0
- mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +6 -0
- mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +33 -0
- mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +8 -0
- mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +277 -0
- mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +611 -0
- mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +34 -0
- mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +28 -0
- mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +68 -0
- mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
- mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +283 -0
- mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +5 -0
- mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +276 -0
- mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +303 -0
- mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +6 -0
- mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +33 -0
- mapproxy/test/schemas/wmts/1.0/ReadMe.txt +32 -0
- mapproxy/test/schemas/wmts/1.0/wmts.xsd +28 -0
- mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +151 -0
- mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +38 -0
- mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +564 -0
- mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +57 -0
- mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +72 -0
- mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +91 -0
- mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +76 -0
- mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +70 -0
- mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +6 -0
- mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +122 -0
- mapproxy/test/schemas/xml.xsd +287 -0
- mapproxy/test/system/__init__.py +98 -0
- mapproxy/test/system/fixture/arcgis.yaml +57 -0
- mapproxy/test/system/fixture/auth.yaml +70 -0
- mapproxy/test/system/fixture/cache.mbtiles +0 -0
- mapproxy/test/system/fixture/cache_azureblob.yaml +59 -0
- mapproxy/test/system/fixture/cache_band_merge.yaml +73 -0
- mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +24 -0
- mapproxy/test/system/fixture/cache_coverage.yaml +84 -0
- mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
- mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
- mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
- mapproxy/test/system/fixture/cache_geopackage.yaml +56 -0
- mapproxy/test/system/fixture/cache_grid_names.yaml +50 -0
- mapproxy/test/system/fixture/cache_mbtiles.yaml +28 -0
- mapproxy/test/system/fixture/cache_s3.yaml +58 -0
- mapproxy/test/system/fixture/cache_source.yaml +81 -0
- mapproxy/test/system/fixture/combined_sources.yaml +130 -0
- mapproxy/test/system/fixture/coverage.yaml +77 -0
- mapproxy/test/system/fixture/demo.yaml +135 -0
- mapproxy/test/system/fixture/dimension.yaml +59 -0
- mapproxy/test/system/fixture/disable_storage.yaml +25 -0
- mapproxy/test/system/fixture/empty_ogrdata.geojson +1 -0
- mapproxy/test/system/fixture/formats.yaml +72 -0
- mapproxy/test/system/fixture/inspire.yaml +101 -0
- mapproxy/test/system/fixture/inspire_full.yaml +124 -0
- mapproxy/test/system/fixture/kml_layer.yaml +66 -0
- mapproxy/test/system/fixture/layer.yaml +260 -0
- mapproxy/test/system/fixture/layergroups.yaml +57 -0
- mapproxy/test/system/fixture/layergroups_root.yaml +106 -0
- mapproxy/test/system/fixture/legendgraphic.yaml +93 -0
- mapproxy/test/system/fixture/mapnik_source.yaml +66 -0
- mapproxy/test/system/fixture/mapproxy_export.yaml +12 -0
- mapproxy/test/system/fixture/mapserver.yaml +23 -0
- mapproxy/test/system/fixture/minimal_cgi.py +16 -0
- mapproxy/test/system/fixture/mixed_mode.yaml +49 -0
- mapproxy/test/system/fixture/multi_cache_layers.yaml +111 -0
- mapproxy/test/system/fixture/multiapp1.yaml +20 -0
- mapproxy/test/system/fixture/multiapp2.yaml +19 -0
- mapproxy/test/system/fixture/renderd_client.yaml +55 -0
- mapproxy/test/system/fixture/scalehints.yaml +70 -0
- mapproxy/test/system/fixture/seed.yaml +94 -0
- mapproxy/test/system/fixture/seed_mapproxy.yaml +39 -0
- mapproxy/test/system/fixture/seed_old.yaml +12 -0
- mapproxy/test/system/fixture/seed_timeouts.yaml +12 -0
- mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +27 -0
- mapproxy/test/system/fixture/seedonly.yaml +51 -0
- mapproxy/test/system/fixture/sld.yaml +35 -0
- mapproxy/test/system/fixture/source_errors.yaml +84 -0
- mapproxy/test/system/fixture/source_errors_raise.yaml +82 -0
- mapproxy/test/system/fixture/tileservice_origin.yaml +26 -0
- mapproxy/test/system/fixture/tileservice_refresh.yaml +59 -0
- mapproxy/test/system/fixture/tilesource_minmax_res.yaml +22 -0
- mapproxy/test/system/fixture/util-conf-base-grids.yaml +5 -0
- mapproxy/test/system/fixture/util-conf-overwrite.yaml +13 -0
- mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +90 -0
- mapproxy/test/system/fixture/util_grids.yaml +29 -0
- mapproxy/test/system/fixture/util_wms_capabilities111.xml +130 -0
- mapproxy/test/system/fixture/util_wms_capabilities130.xml +100 -0
- mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +5 -0
- mapproxy/test/system/fixture/watermark.yaml +50 -0
- mapproxy/test/system/fixture/wms_srs_extent.yaml +39 -0
- mapproxy/test/system/fixture/wms_versions.yaml +38 -0
- mapproxy/test/system/fixture/wmts.yaml +134 -0
- mapproxy/test/system/fixture/wmts_dimensions.yaml +57 -0
- mapproxy/test/system/fixture/xslt_featureinfo.yaml +54 -0
- mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +51 -0
- mapproxy/test/system/test_arcgis.py +156 -0
- mapproxy/test/system/test_auth.py +1133 -0
- mapproxy/test/system/test_behind_proxy.py +75 -0
- mapproxy/test/system/test_bulk_meta_tiles.py +106 -0
- mapproxy/test/system/test_cache_azureblob.py +127 -0
- mapproxy/test/system/test_cache_band_merge.py +103 -0
- mapproxy/test/system/test_cache_coverage.py +168 -0
- mapproxy/test/system/test_cache_geopackage.py +144 -0
- mapproxy/test/system/test_cache_grid_names.py +89 -0
- mapproxy/test/system/test_cache_mbtiles.py +85 -0
- mapproxy/test/system/test_cache_s3.py +115 -0
- mapproxy/test/system/test_cache_source.py +146 -0
- mapproxy/test/system/test_combined_sources.py +335 -0
- mapproxy/test/system/test_coverage.py +140 -0
- mapproxy/test/system/test_decorate_img.py +214 -0
- mapproxy/test/system/test_demo.py +56 -0
- mapproxy/test/system/test_demo_with_extra_service.py +57 -0
- mapproxy/test/system/test_dimensions.py +279 -0
- mapproxy/test/system/test_disable_storage.py +42 -0
- mapproxy/test/system/test_formats.py +219 -0
- mapproxy/test/system/test_inspire_vs.py +173 -0
- mapproxy/test/system/test_kml.py +264 -0
- mapproxy/test/system/test_layergroups.py +160 -0
- mapproxy/test/system/test_legendgraphic.py +308 -0
- mapproxy/test/system/test_mapnik.py +162 -0
- mapproxy/test/system/test_mapserver.py +83 -0
- mapproxy/test/system/test_mixed_mode_format.py +201 -0
- mapproxy/test/system/test_multi_cache_layers.py +169 -0
- mapproxy/test/system/test_multiapp.py +92 -0
- mapproxy/test/system/test_refresh.py +206 -0
- mapproxy/test/system/test_renderd_client.py +304 -0
- mapproxy/test/system/test_response_headers.py +54 -0
- mapproxy/test/system/test_scalehints.py +140 -0
- mapproxy/test/system/test_seed.py +425 -0
- mapproxy/test/system/test_seed_only.py +93 -0
- mapproxy/test/system/test_sld.py +120 -0
- mapproxy/test/system/test_source_errors.py +377 -0
- mapproxy/test/system/test_tilesource_minmax_res.py +54 -0
- mapproxy/test/system/test_tms.py +277 -0
- mapproxy/test/system/test_tms_origin.py +46 -0
- mapproxy/test/system/test_util_conf.py +434 -0
- mapproxy/test/system/test_util_export.py +210 -0
- mapproxy/test/system/test_util_grids.py +88 -0
- mapproxy/test/system/test_util_wms_capabilities.py +182 -0
- mapproxy/test/system/test_watermark.py +91 -0
- mapproxy/test/system/test_wms.py +1616 -0
- mapproxy/test/system/test_wms_srs_extent.py +165 -0
- mapproxy/test/system/test_wms_version.py +85 -0
- mapproxy/test/system/test_wmsc.py +116 -0
- mapproxy/test/system/test_wmts.py +334 -0
- mapproxy/test/system/test_wmts_dimensions.py +206 -0
- mapproxy/test/system/test_wmts_restful.py +198 -0
- mapproxy/test/system/test_xslt_featureinfo.py +423 -0
- mapproxy/test/test_http_helper.py +217 -0
- mapproxy/test/unit/__init__.py +0 -0
- mapproxy/test/unit/epsg +2 -0
- mapproxy/test/unit/polygons/polygons.dbf +0 -0
- mapproxy/test/unit/polygons/polygons.shp +0 -0
- mapproxy/test/unit/polygons/polygons.shx +0 -0
- mapproxy/test/unit/test_async.py +242 -0
- mapproxy/test/unit/test_auth.py +430 -0
- mapproxy/test/unit/test_cache.py +1356 -0
- mapproxy/test/unit/test_cache_azureblob.py +97 -0
- mapproxy/test/unit/test_cache_compact.py +324 -0
- mapproxy/test/unit/test_cache_couchdb.py +118 -0
- mapproxy/test/unit/test_cache_geopackage.py +256 -0
- mapproxy/test/unit/test_cache_redis.py +123 -0
- mapproxy/test/unit/test_cache_riak.py +80 -0
- mapproxy/test/unit/test_cache_s3.py +93 -0
- mapproxy/test/unit/test_cache_tile.py +477 -0
- mapproxy/test/unit/test_client.py +488 -0
- mapproxy/test/unit/test_client_arcgis.py +74 -0
- mapproxy/test/unit/test_client_cgi.py +140 -0
- mapproxy/test/unit/test_collections.py +116 -0
- mapproxy/test/unit/test_concat_legends.py +37 -0
- mapproxy/test/unit/test_conf_loader.py +1267 -0
- mapproxy/test/unit/test_conf_validator.py +427 -0
- mapproxy/test/unit/test_config.py +118 -0
- mapproxy/test/unit/test_decorate_img.py +185 -0
- mapproxy/test/unit/test_exceptions.py +270 -0
- mapproxy/test/unit/test_featureinfo.py +313 -0
- mapproxy/test/unit/test_file_lock_load.py +49 -0
- mapproxy/test/unit/test_geom.py +512 -0
- mapproxy/test/unit/test_grid.py +1279 -0
- mapproxy/test/unit/test_image.py +1051 -0
- mapproxy/test/unit/test_image_mask.py +181 -0
- mapproxy/test/unit/test_image_messages.py +209 -0
- mapproxy/test/unit/test_image_options.py +160 -0
- mapproxy/test/unit/test_isodate.py +118 -0
- mapproxy/test/unit/test_multiapp.py +163 -0
- mapproxy/test/unit/test_ogr_reader.py +51 -0
- mapproxy/test/unit/test_request.py +745 -0
- mapproxy/test/unit/test_request_wmts.py +178 -0
- mapproxy/test/unit/test_response.py +78 -0
- mapproxy/test/unit/test_seed.py +365 -0
- mapproxy/test/unit/test_seed_cachelock.py +91 -0
- mapproxy/test/unit/test_srs.py +215 -0
- mapproxy/test/unit/test_tiled_source.py +122 -0
- mapproxy/test/unit/test_tilefilter.py +31 -0
- mapproxy/test/unit/test_times.py +25 -0
- mapproxy/test/unit/test_timeutils.py +50 -0
- mapproxy/test/unit/test_util_conf_utils.py +75 -0
- mapproxy/test/unit/test_utils.py +476 -0
- mapproxy/test/unit/test_wms_capabilities.py +44 -0
- mapproxy/test/unit/test_wms_layer.py +113 -0
- mapproxy/test/unit/test_yaml.py +68 -0
- mapproxy/tilefilter.py +61 -0
- mapproxy/util/__init__.py +0 -0
- mapproxy/util/async_.py +229 -0
- mapproxy/util/collections.py +134 -0
- mapproxy/util/coverage.py +337 -0
- mapproxy/util/ext/__init__.py +14 -0
- mapproxy/util/ext/dictspec/__init__.py +1 -0
- mapproxy/util/ext/dictspec/spec.py +131 -0
- mapproxy/util/ext/dictspec/test/__init__.py +0 -0
- mapproxy/util/ext/dictspec/test/test_validator.py +278 -0
- mapproxy/util/ext/dictspec/validator.py +194 -0
- mapproxy/util/ext/local.py +198 -0
- mapproxy/util/ext/lockfile.py +140 -0
- mapproxy/util/ext/odict.py +321 -0
- mapproxy/util/ext/serving.py +491 -0
- mapproxy/util/ext/tempita/__init__.py +1093 -0
- mapproxy/util/ext/tempita/_looper.py +163 -0
- mapproxy/util/ext/tempita/string_utils.py +24 -0
- mapproxy/util/ext/wmsparse/__init__.py +3 -0
- mapproxy/util/ext/wmsparse/duration.py +600 -0
- mapproxy/util/ext/wmsparse/parse.py +307 -0
- mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
- mapproxy/util/ext/wmsparse/test/test_parse.py +111 -0
- mapproxy/util/ext/wmsparse/test/test_util.py +23 -0
- mapproxy/util/ext/wmsparse/test/wms-example-111.xml +90 -0
- mapproxy/util/ext/wmsparse/test/wms-example-130.xml +120 -0
- mapproxy/util/ext/wmsparse/test/wms-large-111.xml +2114 -0
- mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +386 -0
- mapproxy/util/ext/wmsparse/util.py +189 -0
- mapproxy/util/fs.py +164 -0
- mapproxy/util/geom.py +307 -0
- mapproxy/util/lib.py +117 -0
- mapproxy/util/lock.py +171 -0
- mapproxy/util/ogr.py +247 -0
- mapproxy/util/py.py +75 -0
- mapproxy/util/times.py +78 -0
- mapproxy/util/yaml.py +58 -0
- mapproxy/version.py +33 -0
- mapproxy/wsgiapp.py +167 -0
|
@@ -0,0 +1,598 @@
|
|
|
1
|
+
# #####################################################################
|
|
2
|
+
# MapProxy example configuration
|
|
3
|
+
# #####################################################################
|
|
4
|
+
#
|
|
5
|
+
# This is _not_ a runnable configuration, but it contains most
|
|
6
|
+
# available options in meaningful combinations.
|
|
7
|
+
#
|
|
8
|
+
# Use this file in addition to the documentation to see where and how
|
|
9
|
+
# things can be configured.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
services:
|
|
13
|
+
demo:
|
|
14
|
+
kml:
|
|
15
|
+
# use the actual name of the grid as the grid identifier
|
|
16
|
+
# instead of the SRS code, e.g. /kml/mylayer/mygrid/
|
|
17
|
+
use_grid_names: true
|
|
18
|
+
tms:
|
|
19
|
+
# use the actual name of the grid as the grid identifier
|
|
20
|
+
# instead of the SRS code, e.g. /tms/1.0.0/mylayer/mygrid/
|
|
21
|
+
use_grid_names: true
|
|
22
|
+
# sets the tile origin to the north west corner, only works for
|
|
23
|
+
# tileservice at /tiles. TMS at /tms/1.0.0/ will still use
|
|
24
|
+
# south west as defined by the standard
|
|
25
|
+
origin: 'nw'
|
|
26
|
+
|
|
27
|
+
wmts:
|
|
28
|
+
# use restful access to WMTS
|
|
29
|
+
restful: true
|
|
30
|
+
# this is the default template for MapProxy
|
|
31
|
+
restful_template: '/{Layer}/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.{Format}'
|
|
32
|
+
# and also allow KVP requests
|
|
33
|
+
kvp: true
|
|
34
|
+
md:
|
|
35
|
+
# metadata used in capabilities documents for WMTS
|
|
36
|
+
# if the md option is not set, the metadata of the WMS will be used
|
|
37
|
+
title: MapProxy WMS Proxy
|
|
38
|
+
abstract: This is the fantastic MapProxy.
|
|
39
|
+
online_resource: http://mapproxy.org/
|
|
40
|
+
contact:
|
|
41
|
+
person: Your Name Here
|
|
42
|
+
position: Technical Director
|
|
43
|
+
organization:
|
|
44
|
+
address: Fakestreet 123
|
|
45
|
+
city: Somewhere
|
|
46
|
+
postcode: 12345
|
|
47
|
+
country: Germany
|
|
48
|
+
phone: +49(0)000-000000-0
|
|
49
|
+
fax: +49(0)000-000000-0
|
|
50
|
+
email: info@example.org
|
|
51
|
+
# multiline strings are possible with the right indention
|
|
52
|
+
access_constraints:
|
|
53
|
+
Insert license and copyright information for this service.
|
|
54
|
+
fees: 'None'
|
|
55
|
+
|
|
56
|
+
wms:
|
|
57
|
+
# only offer WMS 1.1.1
|
|
58
|
+
versions: ['1.1.1']
|
|
59
|
+
|
|
60
|
+
# supported SRS for this WMS
|
|
61
|
+
srs: ['EPSG:4326', 'EPSG:900913', 'EPSG:25832']
|
|
62
|
+
|
|
63
|
+
# force the layer extents (BBOX) to be displayed in this SRS
|
|
64
|
+
bbox_srs: ['EPSG:4326']
|
|
65
|
+
|
|
66
|
+
# limit the supported image formats.
|
|
67
|
+
image_formats: ['image/jpeg', 'image/png', 'image/gif', 'image/GeoTIFF', 'image/tiff']
|
|
68
|
+
|
|
69
|
+
# add attribution text in the lower-right corner.
|
|
70
|
+
attribution:
|
|
71
|
+
text: '(c) Acme'
|
|
72
|
+
|
|
73
|
+
# return an OGC service exception when one or more sources return errors
|
|
74
|
+
# or no response at all (e.g. timeout)
|
|
75
|
+
on_source_errors: raise
|
|
76
|
+
|
|
77
|
+
# maximum output size for a WMS requests in pixel, default is 4000 x 4000
|
|
78
|
+
# compares the product, eg. 3000x1000 pixel < 2000x2000 pixel and is still
|
|
79
|
+
# permitted
|
|
80
|
+
max_output_pixels: [2000, 2000]
|
|
81
|
+
|
|
82
|
+
# some WMS clients do not send all required parameters in feature info
|
|
83
|
+
# requests, MapProxy ignores these errors unless you set strict to true.
|
|
84
|
+
strict: true
|
|
85
|
+
|
|
86
|
+
# list of feature info types the server should offer
|
|
87
|
+
featureinfo_types: ['text', 'html', 'xml']
|
|
88
|
+
|
|
89
|
+
md:
|
|
90
|
+
# metadata used in capabilities documents
|
|
91
|
+
title: MapProxy WMS Proxy
|
|
92
|
+
abstract: This is the fantastic MapProxy.
|
|
93
|
+
online_resource: http://mapproxy.org/
|
|
94
|
+
contact:
|
|
95
|
+
person: Your Name Here
|
|
96
|
+
position: Technical Director
|
|
97
|
+
organization:
|
|
98
|
+
address: Fakestreet 123
|
|
99
|
+
city: Somewhere
|
|
100
|
+
postcode: 12345
|
|
101
|
+
country: Germany
|
|
102
|
+
phone: +49(0)000-000000-0
|
|
103
|
+
fax: +49(0)000-000000-0
|
|
104
|
+
email: info@example.org
|
|
105
|
+
# multiline strings are possible with the right indention
|
|
106
|
+
access_constraints:
|
|
107
|
+
Insert license and copyright information for this service.
|
|
108
|
+
fees: 'None'
|
|
109
|
+
|
|
110
|
+
layers:
|
|
111
|
+
# layer with minimal options
|
|
112
|
+
- name: osm
|
|
113
|
+
title: OSM
|
|
114
|
+
sources: [osm_cache]
|
|
115
|
+
|
|
116
|
+
# layer with multiple sources
|
|
117
|
+
- name: merged_layer
|
|
118
|
+
title: OSM merged
|
|
119
|
+
sources: [osm_cache, osm_cache_full_example]
|
|
120
|
+
|
|
121
|
+
# these layers supports the GetLegendGraphicRequest
|
|
122
|
+
- name: wms_legend
|
|
123
|
+
title: Layer with legendgraphic support
|
|
124
|
+
# legend graphics will work for cache sources and direct sources
|
|
125
|
+
sources: [legend_wms]
|
|
126
|
+
- name: wms_legend_static
|
|
127
|
+
title: Layer with a static LegendURL
|
|
128
|
+
# MapProxy ignores the legends from the sources of this layer
|
|
129
|
+
# if you configure a legendurl here
|
|
130
|
+
legendurl: http://localhost:42423/staticlegend_layer.png
|
|
131
|
+
# local legend images are supported as well
|
|
132
|
+
# legendurl: file://relative/staticlegend_layer.png
|
|
133
|
+
# legendurl: file:///absulute/staticlegend_layer.png
|
|
134
|
+
sources: [legend_wms]
|
|
135
|
+
|
|
136
|
+
# this layer uses extended metadata
|
|
137
|
+
- name: md_layer
|
|
138
|
+
title: WMS layer with extended metadata
|
|
139
|
+
sources: [osm_cache]
|
|
140
|
+
md:
|
|
141
|
+
abstract: Some abstract
|
|
142
|
+
keyword_list:
|
|
143
|
+
- vocabulary: Name of the vocabulary
|
|
144
|
+
keywords: [keyword1, keyword2]
|
|
145
|
+
- vocabulary: Name of another vocabulary
|
|
146
|
+
keywords: [keyword1, keyword2]
|
|
147
|
+
- keywords: ["keywords without vocabulary"]
|
|
148
|
+
attribution:
|
|
149
|
+
title: My attribution title
|
|
150
|
+
url: http://example.org/
|
|
151
|
+
logo:
|
|
152
|
+
url: http://example.org/logo.jpg
|
|
153
|
+
width: 100
|
|
154
|
+
height: 100
|
|
155
|
+
format: image/jpeg
|
|
156
|
+
identifier:
|
|
157
|
+
- url: http://example.org/
|
|
158
|
+
name: HKU1234
|
|
159
|
+
value: Some value
|
|
160
|
+
metadata:
|
|
161
|
+
- url: http://example.org/metadata2.xml
|
|
162
|
+
type: INSPIRE
|
|
163
|
+
format: application/xml
|
|
164
|
+
- url: http://example.org/metadata2.xml
|
|
165
|
+
type: ISO19115:2003
|
|
166
|
+
format: application/xml
|
|
167
|
+
data:
|
|
168
|
+
- url: http://example.org/datasets/test.shp
|
|
169
|
+
format: application/octet-stream
|
|
170
|
+
- url: http://example.org/datasets/test.gml
|
|
171
|
+
format: text/xml; subtype=gml/3.2.1
|
|
172
|
+
feature_list:
|
|
173
|
+
- url: http://example.org/datasets/test.pdf
|
|
174
|
+
format: application/pdf
|
|
175
|
+
|
|
176
|
+
# defines a layer with a min and max resolution. requests outside of the
|
|
177
|
+
# resolution result in a blank image
|
|
178
|
+
- name: resolution
|
|
179
|
+
title: Cache Layer with min/max resolution
|
|
180
|
+
# xx_res in meter/pixel
|
|
181
|
+
min_res: 10000
|
|
182
|
+
max_res: 10
|
|
183
|
+
sources: [osm_cache]
|
|
184
|
+
|
|
185
|
+
# nested/grouped layers
|
|
186
|
+
# 'Group Layer' has no name and GIS clients should display all sub-layers
|
|
187
|
+
# in this group.
|
|
188
|
+
# layer2 combines both layer2a and layer2b
|
|
189
|
+
- title: Group Layer
|
|
190
|
+
layers:
|
|
191
|
+
- name: layer1
|
|
192
|
+
title: layer 1
|
|
193
|
+
sources: [osm_cache]
|
|
194
|
+
- name: layer2
|
|
195
|
+
title: layer 2
|
|
196
|
+
layers:
|
|
197
|
+
- name: layer2a
|
|
198
|
+
title: layer 2a
|
|
199
|
+
sources: [osm_cache]
|
|
200
|
+
- name: layer2b
|
|
201
|
+
title: layer 2b
|
|
202
|
+
sources: [osm_cache]
|
|
203
|
+
|
|
204
|
+
# the childs of this group layer all use the same WMS.
|
|
205
|
+
# reference the layer as tagged source
|
|
206
|
+
- title: Example with tagged sources
|
|
207
|
+
layers:
|
|
208
|
+
- name: landusage
|
|
209
|
+
title: Landusage
|
|
210
|
+
sources: ['wms_source:landusage']
|
|
211
|
+
- name: roads
|
|
212
|
+
title: Roads and railways
|
|
213
|
+
sources: ['wms_source:roads,railways']
|
|
214
|
+
- name: buildings
|
|
215
|
+
title: Buildings
|
|
216
|
+
sources: ['wms_source:buildings']
|
|
217
|
+
|
|
218
|
+
# this layer will be reprojected from the source
|
|
219
|
+
- name: osm_utm
|
|
220
|
+
title: OSM in UTM
|
|
221
|
+
sources: [osm_utm_cache]
|
|
222
|
+
|
|
223
|
+
# layer with a mixed_mode cache image-format
|
|
224
|
+
- name: mixed_mode
|
|
225
|
+
title: cache with PNG and JPEG
|
|
226
|
+
sources: [mixed_cache]
|
|
227
|
+
|
|
228
|
+
# feature information layer
|
|
229
|
+
- name: feature_layer
|
|
230
|
+
title: feature information from source layers
|
|
231
|
+
# map images from osm_cache, feature info from feature_info_source
|
|
232
|
+
sources: [osm_cache, feature_info_source]
|
|
233
|
+
|
|
234
|
+
caches:
|
|
235
|
+
osm_cache:
|
|
236
|
+
# cache the results in two grids/projections
|
|
237
|
+
grids: [GLOBAL_MERCATOR, global_geodetic_sqrt2]
|
|
238
|
+
sources: [osm_wms]
|
|
239
|
+
|
|
240
|
+
osm_cache_full_example:
|
|
241
|
+
# request a meta tile, that consists of m x n tiles
|
|
242
|
+
meta_size: [5, 5]
|
|
243
|
+
# increase the size of each meta-tile request by n pixel in each direction
|
|
244
|
+
# this can solve cases where labels are cut-off at the edge of tiles
|
|
245
|
+
meta_buffer: 20
|
|
246
|
+
# image format for the cache, default format is image/png
|
|
247
|
+
format: image/jpeg
|
|
248
|
+
# the source will be requested in this format
|
|
249
|
+
request_format: image/tiff
|
|
250
|
+
# if set to true, MapProxy will store tiles that only
|
|
251
|
+
# contain a single color once
|
|
252
|
+
# not available on Windows
|
|
253
|
+
link_single_color_images: true
|
|
254
|
+
# allow to make 2 parallel requests to the sources for missing tiles
|
|
255
|
+
concurrent_tile_creators: 2
|
|
256
|
+
# level 0 - 13 will be cached, others are served directly from the source
|
|
257
|
+
use_direct_from_level: 14
|
|
258
|
+
grids: [grid_full_example]
|
|
259
|
+
# a list with all sources for this cache, MapProxy will merge multiple
|
|
260
|
+
# sources from left (bottom) to right (top)
|
|
261
|
+
sources: [osm_wms, overlay_full_example]
|
|
262
|
+
# add a watermark to each tile
|
|
263
|
+
watermark:
|
|
264
|
+
text: 'my watermark'
|
|
265
|
+
opacity: 100
|
|
266
|
+
font_size: 30
|
|
267
|
+
|
|
268
|
+
# mixed image mode cache
|
|
269
|
+
mixed_mode_cache:
|
|
270
|
+
# images with transparency will be stored as PNG, fully opaque images as JPEG.
|
|
271
|
+
# you need to set the request_format to image/png when using mixed-mode
|
|
272
|
+
format: mixed
|
|
273
|
+
request_format: image/png
|
|
274
|
+
# the source images should have transparency to make use of this
|
|
275
|
+
# feature, but any source will do
|
|
276
|
+
sources: [legend_wms]
|
|
277
|
+
|
|
278
|
+
# cache for reprojecting tiles
|
|
279
|
+
osm_utm_cache:
|
|
280
|
+
grids: [utm32n]
|
|
281
|
+
meta_size: [4, 4]
|
|
282
|
+
sources: [osm_cache_in]
|
|
283
|
+
osm_cache_in:
|
|
284
|
+
grids: [osm_grid]
|
|
285
|
+
# cache will not be stored locally
|
|
286
|
+
disable_storage: true
|
|
287
|
+
# a tile source you want to reproject
|
|
288
|
+
sources: [osm_source]
|
|
289
|
+
|
|
290
|
+
# mbtile cache:
|
|
291
|
+
mbtile_cache:
|
|
292
|
+
# leave the source-list empty if you use an existing MBTiles file
|
|
293
|
+
# and don't have a source
|
|
294
|
+
sources: []
|
|
295
|
+
grids: [GLOBAL_MERCATOR]
|
|
296
|
+
cache:
|
|
297
|
+
type: mbtiles
|
|
298
|
+
filename: /path/to/bluemarble.mbtiles
|
|
299
|
+
|
|
300
|
+
# filecache with a directory option.
|
|
301
|
+
file_cache:
|
|
302
|
+
cache:
|
|
303
|
+
type: file
|
|
304
|
+
# Directory where MapProxy should directly store the tiles
|
|
305
|
+
# You can use this option to point MapProxy to an existing tile collection
|
|
306
|
+
# This option does not add the cache or grid name to the path
|
|
307
|
+
directory: /path/to/preferred_dir/
|
|
308
|
+
# use a custom image format defined below
|
|
309
|
+
format: custom_format
|
|
310
|
+
grids: [GLOBAL_MERCATOR]
|
|
311
|
+
# multiple sources, use the secure_source as overlay
|
|
312
|
+
sources: [osm_wms, secure_source]
|
|
313
|
+
|
|
314
|
+
# couchdb cache
|
|
315
|
+
couchdb_cache:
|
|
316
|
+
cache:
|
|
317
|
+
type: couchdb
|
|
318
|
+
url: http://localhost:5984
|
|
319
|
+
db_name: couchdb_cache
|
|
320
|
+
tile_id: "%(grid_name)s-%(z)d-%(x)d-%(y)d"
|
|
321
|
+
# additional metadata that will be stored with each tile
|
|
322
|
+
tile_metadata:
|
|
323
|
+
mydata: myvalue
|
|
324
|
+
tile_col: '{{x}}'
|
|
325
|
+
tile_row: '{{y}}'
|
|
326
|
+
tile_level: '{{z}}'
|
|
327
|
+
created_ts: '{{timestamp}}'
|
|
328
|
+
created: '{{utc_iso}}'
|
|
329
|
+
center: '{{wgs_tile_centroid}}'
|
|
330
|
+
grids: [GLOBAL_MERCATOR]
|
|
331
|
+
sources: [osm_wms]
|
|
332
|
+
riak_cache:
|
|
333
|
+
grid: [GLOBAL_MERCATOR]
|
|
334
|
+
sources: [osm_wms]
|
|
335
|
+
cache:
|
|
336
|
+
type: riak
|
|
337
|
+
bucket: tile_bucket
|
|
338
|
+
protocol: pbc
|
|
339
|
+
default_ports:
|
|
340
|
+
pb: 8087
|
|
341
|
+
http: 8098
|
|
342
|
+
nodes:
|
|
343
|
+
- host: 1.example.com
|
|
344
|
+
pb_port: 9999
|
|
345
|
+
- host: 2.example.com
|
|
346
|
+
- host: 3.example.com
|
|
347
|
+
http_port: 8888
|
|
348
|
+
|
|
349
|
+
sources:
|
|
350
|
+
# minimal WMS source
|
|
351
|
+
osm_wms:
|
|
352
|
+
type: wms
|
|
353
|
+
req:
|
|
354
|
+
url: http://example.org/service?
|
|
355
|
+
layers: osm
|
|
356
|
+
|
|
357
|
+
# WMS source for use with tagged sources
|
|
358
|
+
wms_source:
|
|
359
|
+
type: wms
|
|
360
|
+
req:
|
|
361
|
+
url: http://example.org/service?
|
|
362
|
+
# you can remove `layer` when using this source as
|
|
363
|
+
# tagged source, or you can list all available layers.
|
|
364
|
+
# in this case MapProxy will check the layernames when
|
|
365
|
+
# you reference this source.
|
|
366
|
+
layers: roads,railways,landusage,buildings
|
|
367
|
+
|
|
368
|
+
# source with GetLegendGraphic support
|
|
369
|
+
legend_wms:
|
|
370
|
+
type: wms
|
|
371
|
+
# requests for other SRS will be reprojected from these SRS
|
|
372
|
+
supported_srs: ['EPSG:3857', 'EPSG:4326']
|
|
373
|
+
wms_opts:
|
|
374
|
+
# request the source with the specific version
|
|
375
|
+
version: '1.3.0'
|
|
376
|
+
# enable legend graphic
|
|
377
|
+
legendgraphic: True
|
|
378
|
+
req:
|
|
379
|
+
url: http://localhost:42423/service?
|
|
380
|
+
layers: foo,bar
|
|
381
|
+
|
|
382
|
+
# tile-based source, use the type tile to request data from from existing
|
|
383
|
+
# tile servers like TileCache and GeoWebCache.
|
|
384
|
+
osm_source:
|
|
385
|
+
type: tile
|
|
386
|
+
grid: osm_grid
|
|
387
|
+
url: https://tile.openstreetmap.org/%(z)s/%(x)s/%(y)s.png
|
|
388
|
+
|
|
389
|
+
# limit the source to the given min and max resolution or scale.
|
|
390
|
+
# MapProxy will return a blank image for requests outside of these boundaries
|
|
391
|
+
wms_resolution:
|
|
392
|
+
type: wms
|
|
393
|
+
min_res: 10000
|
|
394
|
+
max_res: 10
|
|
395
|
+
req:
|
|
396
|
+
url: http://localhost:42423/service?
|
|
397
|
+
layers: scalelayer
|
|
398
|
+
|
|
399
|
+
# with coverages you can define areas where data is available
|
|
400
|
+
# or where data you are interested in is
|
|
401
|
+
coverage_source:
|
|
402
|
+
type: wms
|
|
403
|
+
req:
|
|
404
|
+
url: http://localhost:42423/service?
|
|
405
|
+
layers: base
|
|
406
|
+
coverage:
|
|
407
|
+
bbox: [5, 50, 10, 55]
|
|
408
|
+
srs: 'EPSG:4326'
|
|
409
|
+
# you can also use Shapefile/GeoJSON/PostGIS/etc.
|
|
410
|
+
# coverage:
|
|
411
|
+
# datasource: path/to/shapefile.shp
|
|
412
|
+
# where: "COUNTRY = 'Germany'"
|
|
413
|
+
# srs: 'EPSG:4326'
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
# WMS source that requires authentication, MapProxy has support for
|
|
417
|
+
# HTTP Basic Authentication and HTTP Digest Authentication
|
|
418
|
+
secure_source:
|
|
419
|
+
type: wms
|
|
420
|
+
http:
|
|
421
|
+
# You can either disable the certificate verification fro HTTPS
|
|
422
|
+
ssl_no_cert_checks: true
|
|
423
|
+
# or point MapProxy to the SSL certificate chain on your system
|
|
424
|
+
# ssl_ca_certs: /etc/ssl/certs/ca-certificates.crt
|
|
425
|
+
req:
|
|
426
|
+
# username and password are extracted from the URL and do not show
|
|
427
|
+
# up in log files
|
|
428
|
+
url: https://username:mypassword@example.org/service?
|
|
429
|
+
transparent: true
|
|
430
|
+
layers: securelayer
|
|
431
|
+
|
|
432
|
+
# WMS source that requires authentication and session management
|
|
433
|
+
# through HTTP cookies
|
|
434
|
+
session_source:
|
|
435
|
+
type: wms
|
|
436
|
+
http:
|
|
437
|
+
# Accept session cookies and forward on subsequent requests
|
|
438
|
+
manage_cookies: true
|
|
439
|
+
# Use basic auth header directly
|
|
440
|
+
headers:
|
|
441
|
+
Authorization: Basic YWRtaW46Z2Vvc2VydmVy
|
|
442
|
+
req:
|
|
443
|
+
url: https://my-service.com/service?
|
|
444
|
+
transparent: true
|
|
445
|
+
layers: securelayer
|
|
446
|
+
|
|
447
|
+
feature_info_source:
|
|
448
|
+
type: wms
|
|
449
|
+
wms_opts:
|
|
450
|
+
# just query feature informations and no map
|
|
451
|
+
map: false
|
|
452
|
+
featureinfo: true
|
|
453
|
+
req:
|
|
454
|
+
url: http://localhost:42423/service?
|
|
455
|
+
layers: foo,bar,baz
|
|
456
|
+
|
|
457
|
+
mapserver_source:
|
|
458
|
+
type: mapserver
|
|
459
|
+
req:
|
|
460
|
+
# path to Mapserver mapfile instead of URL
|
|
461
|
+
map: /path/to/my.map
|
|
462
|
+
layers: base
|
|
463
|
+
mapserver:
|
|
464
|
+
binary: /usr/cgi-bin/mapserv
|
|
465
|
+
working_dir: /path/to
|
|
466
|
+
|
|
467
|
+
mapnik_source:
|
|
468
|
+
type: mapnik
|
|
469
|
+
mapfile: /path/to/mapnik.xml
|
|
470
|
+
layers: foo, bar
|
|
471
|
+
transparent: true
|
|
472
|
+
|
|
473
|
+
# source used as overlay for different layers
|
|
474
|
+
overlay_full_example:
|
|
475
|
+
type: wms
|
|
476
|
+
# allow up to 4 concurrent requests to this source
|
|
477
|
+
concurrent_requests: 4
|
|
478
|
+
wms_opts:
|
|
479
|
+
version: 1.3.0
|
|
480
|
+
featureinfo: true
|
|
481
|
+
supported_srs: ['EPSG:4326', 'EPSG:31467']
|
|
482
|
+
supported_formats: ['image/tiff', 'image/jpeg']
|
|
483
|
+
http:
|
|
484
|
+
# defines how long MapProxy should wait for data from source servers
|
|
485
|
+
client_timeout: 600 # seconds
|
|
486
|
+
# add additional HTTP headers to all requests to your sources.
|
|
487
|
+
headers:
|
|
488
|
+
my-header: value
|
|
489
|
+
req:
|
|
490
|
+
url: https://user:password@example.org:81/service?
|
|
491
|
+
layers: roads,rails
|
|
492
|
+
transparent: true
|
|
493
|
+
# additional options passed to the WMS source
|
|
494
|
+
styles: base,base
|
|
495
|
+
map: /home/map/mapserver.map
|
|
496
|
+
|
|
497
|
+
grids:
|
|
498
|
+
global_geodetic_sqrt2:
|
|
499
|
+
# base the grid on the options of another grid you already defined
|
|
500
|
+
base: GLOBAL_GEODETIC
|
|
501
|
+
res_factor: 'sqrt2'
|
|
502
|
+
|
|
503
|
+
utm32n:
|
|
504
|
+
srs: 'EPSG:25832'
|
|
505
|
+
bbox: [4, 46, 16, 56]
|
|
506
|
+
# let MapProxy transform the bbox to the grid SRS
|
|
507
|
+
bbox_srs: 'EPSG:4326'
|
|
508
|
+
origin: 'nw'
|
|
509
|
+
# resolution of level 0
|
|
510
|
+
min_res: 5700
|
|
511
|
+
num_levels: 14
|
|
512
|
+
|
|
513
|
+
osm_grid:
|
|
514
|
+
base: GLOBAL_MERCATOR
|
|
515
|
+
srs: 'EPSG:3857'
|
|
516
|
+
origin: nw
|
|
517
|
+
|
|
518
|
+
grid_full_example:
|
|
519
|
+
# default tile size is 256 x 256 pixel
|
|
520
|
+
tile_size: [512, 512]
|
|
521
|
+
srs: 'EPSG:3857'
|
|
522
|
+
bbox: [5, 45, 15, 55]
|
|
523
|
+
bbox_srs: 'EPSG:4326'
|
|
524
|
+
# the resolution of the first and last level
|
|
525
|
+
min_res: 2000 #m/px
|
|
526
|
+
max_res: 50 #m/px
|
|
527
|
+
align_resolutions_with: GLOBAL_MERCATOR
|
|
528
|
+
|
|
529
|
+
res_grid:
|
|
530
|
+
srs: 'EPSG:4326'
|
|
531
|
+
bbox: [4, 46, 16, 56]
|
|
532
|
+
origin: nw
|
|
533
|
+
# resolutions created from scales with
|
|
534
|
+
# % mapproxy-util scales --unit d --as-res-config --dpi 72 100000 50000 25000 12500 8000 5000
|
|
535
|
+
res: [
|
|
536
|
+
# res level scale @72.0 DPI
|
|
537
|
+
0.0003169057, # 0 100000.00000000
|
|
538
|
+
0.0001584528, # 1 50000.00000000
|
|
539
|
+
0.0000792264, # 2 25000.00000000
|
|
540
|
+
0.0000396132, # 3 12500.00000000
|
|
541
|
+
0.0000253525, # 4 8000.00000000
|
|
542
|
+
0.0000158453, # 5 5000.00000000
|
|
543
|
+
]
|
|
544
|
+
|
|
545
|
+
globals:
|
|
546
|
+
srs:
|
|
547
|
+
# override system projection file
|
|
548
|
+
proj_data_dir: '/path to dir that contains epsg file'
|
|
549
|
+
|
|
550
|
+
# cache options
|
|
551
|
+
cache:
|
|
552
|
+
# where to store the cached images
|
|
553
|
+
base_dir: './cache_data'
|
|
554
|
+
# where to store lockfiles for concurrent_requests
|
|
555
|
+
lock_dir: './cache_data/locks'
|
|
556
|
+
# where to store lockfiles for tile creation
|
|
557
|
+
tile_lock_dir: './cache_data/tile_locks'
|
|
558
|
+
|
|
559
|
+
# request x*y tiles in one step
|
|
560
|
+
meta_size: [4, 4]
|
|
561
|
+
# add a buffer on all sides (in pixel) when requesting
|
|
562
|
+
# new images
|
|
563
|
+
meta_buffer: 80
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
# image/transformation options
|
|
567
|
+
image:
|
|
568
|
+
# use best resampling for vector data
|
|
569
|
+
resampling_method: bicubic # nearest/bilinear
|
|
570
|
+
# stretch cached images by this factor before
|
|
571
|
+
# using the next level
|
|
572
|
+
stretch_factor: 1.15
|
|
573
|
+
# shrink cached images up to this factor before
|
|
574
|
+
# returning an empty image (for the first level)
|
|
575
|
+
max_shrink_factor: 4.0
|
|
576
|
+
|
|
577
|
+
# Enable 24bit PNG images. Defaults to true (8bit PNG)
|
|
578
|
+
paletted: false
|
|
579
|
+
formats:
|
|
580
|
+
custom_format:
|
|
581
|
+
format: image/png
|
|
582
|
+
# the custom format will be stored as 8bit PNG
|
|
583
|
+
mode: P
|
|
584
|
+
colors: 32
|
|
585
|
+
transparent: true
|
|
586
|
+
encoding_options:
|
|
587
|
+
# The algorithm used to quantize (reduce) the image colors
|
|
588
|
+
quantizer: fastoctree
|
|
589
|
+
# edit an existing format
|
|
590
|
+
image/jpeg:
|
|
591
|
+
encoding_options:
|
|
592
|
+
# jpeg quality [0-100]
|
|
593
|
+
jpeg_quality: 60
|
|
594
|
+
|
|
595
|
+
# background map of the demo service
|
|
596
|
+
background:
|
|
597
|
+
# tile source in ZXY format
|
|
598
|
+
url: "https://tile.openstreetmap.org/{z}/{x}/{y}.png"
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# #####################################################################
|
|
2
|
+
# MapProxy example seed configuration
|
|
3
|
+
# #####################################################################
|
|
4
|
+
#
|
|
5
|
+
# This is _not_ a runnable configuration, but it contains most
|
|
6
|
+
# available options in meaningful combinations.
|
|
7
|
+
#
|
|
8
|
+
# Use this file in addition to the documentation to see where and how
|
|
9
|
+
# things can be configured.
|
|
10
|
+
|
|
11
|
+
seeds:
|
|
12
|
+
myseed1:
|
|
13
|
+
# seed all grids of this cache
|
|
14
|
+
caches: [osm_cache]
|
|
15
|
+
levels:
|
|
16
|
+
to: 10
|
|
17
|
+
refresh_before:
|
|
18
|
+
# re-generate tiles older than this date
|
|
19
|
+
time: 2013-10-10T12:35:00
|
|
20
|
+
|
|
21
|
+
myseed2:
|
|
22
|
+
# seed two caches, but only GLOBAL_GEODETIC grid
|
|
23
|
+
caches: [cache1, cache2]
|
|
24
|
+
grids: [GLOBAL_GEODETIC]
|
|
25
|
+
levels:
|
|
26
|
+
to: 14
|
|
27
|
+
refresh_before:
|
|
28
|
+
# re-generate tiles older than the modification time
|
|
29
|
+
# of this file. on linux/unix use `touch` to change the time.
|
|
30
|
+
mtime: ./reseed.time
|
|
31
|
+
|
|
32
|
+
cleanups:
|
|
33
|
+
cleanup_older_tiles:
|
|
34
|
+
caches: [osm_cache]
|
|
35
|
+
remove_before:
|
|
36
|
+
days: 30
|
|
37
|
+
levels:
|
|
38
|
+
from: 16
|
|
39
|
+
|
|
40
|
+
remove_complete_levels:
|
|
41
|
+
caches: [cache1]
|
|
42
|
+
# remove all tiles regardless of the timestamp.
|
|
43
|
+
# will remove the complete level directory for `file` caches
|
|
44
|
+
remove_all: true
|
|
45
|
+
levels: [14, 18, 19, 20]
|
|
46
|
+
|
|
47
|
+
remove_changes:
|
|
48
|
+
caches: [cache1]
|
|
49
|
+
# be careful when using cleanup with coverages, since it needs to check
|
|
50
|
+
# every possible tile in this coverage (as reported by
|
|
51
|
+
# `mapproxy-util grids --coverage`). only use small coverages and/or limit
|
|
52
|
+
# levels
|
|
53
|
+
coverages: [changed_area]
|
|
54
|
+
# without remove_before: remove all tiles created before you called
|
|
55
|
+
# mapproxy-seed. i.e. tiles created before with in this seed run
|
|
56
|
+
# are not removed
|
|
57
|
+
levels:
|
|
58
|
+
from: 14
|
|
59
|
+
to: 17
|
|
60
|
+
|
|
61
|
+
coverages:
|
|
62
|
+
germany:
|
|
63
|
+
# any source supported by OGR
|
|
64
|
+
datasource: 'shps/world_boundaries_m.shp'
|
|
65
|
+
where: 'CNTRY_NAME = "Germany"'
|
|
66
|
+
srs: 'EPSG:3857'
|
|
67
|
+
austria:
|
|
68
|
+
# simple bbox
|
|
69
|
+
bbox: [9.36, 46.33, 17.28, 49.09]
|
|
70
|
+
srs: "EPSG:4326"
|
|
71
|
+
switzerland:
|
|
72
|
+
# text file with WKT (Multi)Polygons
|
|
73
|
+
datasource: 'polygons/SZ.txt'
|
|
74
|
+
srs: "EPSG:3857"
|
|
75
|
+
changed_area:
|
|
76
|
+
# example with PostGIS query
|
|
77
|
+
datasource: "PG: dbname='db' host='host' user='user' password='password'"
|
|
78
|
+
where: "select * from last_changes"
|
|
79
|
+
srs: 'EPSG:3857'
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[loggers]
|
|
2
|
+
keys=root,source_requests
|
|
3
|
+
|
|
4
|
+
[handlers]
|
|
5
|
+
keys=mapproxy,source_requests
|
|
6
|
+
|
|
7
|
+
[formatters]
|
|
8
|
+
keys=default,requests
|
|
9
|
+
|
|
10
|
+
[logger_root]
|
|
11
|
+
level=INFO
|
|
12
|
+
handlers=mapproxy
|
|
13
|
+
|
|
14
|
+
[logger_source_requests]
|
|
15
|
+
level=INFO
|
|
16
|
+
qualname=mapproxy.source.request
|
|
17
|
+
# propagate=0 -> do not show up in logger_root
|
|
18
|
+
propagate=0
|
|
19
|
+
handlers=source_requests
|
|
20
|
+
|
|
21
|
+
[handler_mapproxy]
|
|
22
|
+
class=FileHandler
|
|
23
|
+
formatter=default
|
|
24
|
+
args=(r"%(here)s/mapproxy.log", "a")
|
|
25
|
+
|
|
26
|
+
[handler_source_requests]
|
|
27
|
+
class=FileHandler
|
|
28
|
+
formatter=requests
|
|
29
|
+
args=(r"%(here)s/source-requests.log", "a")
|
|
30
|
+
|
|
31
|
+
[formatter_default]
|
|
32
|
+
format=%(asctime)s - %(levelname)s - %(name)s - %(message)s
|
|
33
|
+
|
|
34
|
+
[formatter_requests]
|
|
35
|
+
format=[%(asctime)s] %(message)s
|