MapProxy 2.1.1__tar.gz → 2.2.1__tar.gz
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.1 → mapproxy-2.2.1}/CHANGES.txt +31 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/PKG-INFO +49 -37
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/SOURCES.txt +1 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/entry_points.txt +0 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/requires.txt +5 -3
- {MapProxy-2.1.1 → mapproxy-2.2.1}/PKG-INFO +49 -37
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/configuration.rst +24 -9
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/deployment.rst +2 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/development.rst +1 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/install.rst +2 -2
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/install_windows.rst +4 -6
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/plugins.rst +27 -3
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/services.rst +1 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/sources.rst +1 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/geopackage.py +4 -4
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/config-schema.json +8 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/loader.py +18 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/spec.py +2 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/message.py +4 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/multiapp.py +2 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/demo.py +66 -55
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/kml.py +2 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/capabilities_demo.html +1 -3
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wmts100capabilities.xml +7 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/tile.py +2 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/wmts.py +32 -3
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/source/mapnik.py +4 -9
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/template.py +4 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/legendgraphic.yaml +16 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util_grids.yaml +2 -1
- mapproxy-2.2.1/mapproxy/test/system/test_demo.py +123 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_legendgraphic.py +38 -2
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_mapserver.py +0 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_client.py +0 -2
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_client_cgi.py +0 -2
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_featureinfo.py +0 -3
- mapproxy-2.2.1/mapproxy/util/escape.py +10 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/odict.py +2 -2
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/wsgiapp.py +12 -1
- {MapProxy-2.1.1 → mapproxy-2.2.1}/setup.py +2 -2
- MapProxy-2.1.1/mapproxy/test/system/test_demo.py +0 -56
- {MapProxy-2.1.1 → mapproxy-2.2.1}/AUTHORS.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/COPYING.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/LICENSE.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MANIFEST.in +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/dependency_links.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/not-zip-safe +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/MapProxy.egg-info/top_level.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/README.md +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/GM.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/_static/logo.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/_static/logo_title.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/_static/mapproxy.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/_templates/versions.html +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/auth.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/caches.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/caching_layer_dimensions.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/conf.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/configuration_examples.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/coverages.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/decorate_img.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/bicubic.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/bilinear.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-dynamic.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-meta-buffer.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-metatiling-buffer.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-metatiling.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-no-clip.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-no-placement.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-partial-false.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/labeling-repeated.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/mapnik-webmerc-hq.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/mapnik-webmerc.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/mapproxy-demo.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/imgs/nearest.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/index.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/inspire.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/install_docker.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/install_osgeo4w.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/labeling.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/mapproxy_util.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/mapproxy_util_autoconfig.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/seed.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/tutorial.rst +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/tutorial.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/yaml/cache_conf.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/yaml/grid_conf.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/yaml/merged_conf.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/yaml/meta_conf.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/yaml/seed.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/doc/yaml/simple_conf.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/azureblob.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/base.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/compact.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/couchdb.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/dummy.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/file.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/legend.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/mbtiles.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/meta.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/path.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/redis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/renderd.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/riak.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/s3.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/cache/tile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/arcgis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/cgi.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/http.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/log.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/tile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/client/wms.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/compat/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/compat/image.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/config.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/coverage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/defaults.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config/validator.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/base_config/config.wsgi +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/base_config/full_example.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/base_config/full_seed_example.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/base_config/log.ini +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/base_config/mapproxy.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/config_template/base_config/seed.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/exception.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/featureinfo.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/grid.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/fonts/DejaVuSans.ttf +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/fonts/LICENSE +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/fonts/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/mask.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/merge.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/opts.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/tile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/image/transform.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/layer.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/proj.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/arcgis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/base.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/tile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/wms/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/wms/exception.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/request/wmts.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/response.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/app.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/caches.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/geopackage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/layers.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/seeds.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/sources.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/conf/utils.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/defrag.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/export.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/grids.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/scales.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/util.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/script/wms_capabilities.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/cachelock.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/cleanup.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/config.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/script.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/seeder.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/spec.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/seed/util.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/base.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/ows.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/template_helper.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/demo.html +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/openlayers-demo.cfg +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/blank.gif +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/logo.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/ol.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/ol.js +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/proj4.min.js +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/proj4defs.js +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/site.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/theme/default/google.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/theme/default/ie6-style.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static/theme/default/style.css +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/static.html +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/tms_demo.html +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/wms_demo.html +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/demo/wmts_demo.html +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/tms_capabilities.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/tms_exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/tms_root_resource.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/tms_tilemap_capabilities.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms100capabilities.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms100exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms110capabilities.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms110exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms111capabilities.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms111exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms130capabilities.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wms130exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/templates/wmts100exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/service/wms.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/source/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/source/arcgis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/source/error.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/source/tile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/source/wms.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/srs.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/conftest.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/helper.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/http.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/image.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/mocker.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/common.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/common/1.0/network.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/kml/2.2.0/xAL.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/ReadMe.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmts.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/schemas/xml.xsd +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/arcgis.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/auth.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache.mbtiles +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_azureblob.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_band_merge.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_coverage.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_geopackage.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_grid_names.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_mbtiles.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_s3.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/cache_source.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/combined_sources.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/coverage.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/demo.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/dimension.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/disable_storage.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/empty_ogrdata.geojson +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/formats.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/inspire.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/inspire_full.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/kml_layer.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/layer.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/layergroups.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/layergroups_root.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/mapnik_source.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/mapproxy_export.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/mapserver.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/minimal_cgi.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/mixed_mode.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/multi_cache_layers.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/multiapp1.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/multiapp2.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/renderd_client.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/scalehints.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/seed.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/seed_mapproxy.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/seed_old.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/seed_timeouts.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/seedonly.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/sld.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/source_errors.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/source_errors_raise.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/tileservice_origin.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/tileservice_refresh.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/tilesource_minmax_res.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util-conf-base-grids.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util-conf-overwrite.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util_wms_capabilities111.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util_wms_capabilities130.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/watermark.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/wms_srs_extent.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/wms_versions.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/wmts.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/wmts_dimensions.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/xslt_featureinfo.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_arcgis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_auth.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_behind_proxy.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_bulk_meta_tiles.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_azureblob.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_band_merge.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_coverage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_geopackage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_grid_names.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_mbtiles.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_s3.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_cache_source.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_combined_sources.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_coverage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_decorate_img.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_demo_with_extra_service.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_dimensions.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_disable_storage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_formats.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_inspire_vs.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_kml.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_layergroups.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_mapnik.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_mixed_mode_format.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_multi_cache_layers.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_multiapp.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_refresh.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_renderd_client.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_response_headers.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_scalehints.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_seed.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_seed_only.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_sld.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_source_errors.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_tilesource_minmax_res.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_tms.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_tms_origin.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_util_conf.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_util_export.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_util_grids.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_util_wms_capabilities.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_watermark.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wms.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wms_srs_extent.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wms_version.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wmsc.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wmts.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wmts_dimensions.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_wmts_restful.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/system/test_xslt_featureinfo.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/test_http_helper.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/epsg +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/polygons/polygons.dbf +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/polygons/polygons.shp +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/polygons/polygons.shx +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_async.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_auth.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_azureblob.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_compact.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_couchdb.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_geopackage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_redis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_riak.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_s3.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_cache_tile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_client_arcgis.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_collections.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_concat_legends.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_conf_loader.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_conf_validator.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_config.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_decorate_img.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_exceptions.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_file_lock_load.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_geom.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_grid.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_image.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_image_mask.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_image_messages.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_image_options.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_isodate.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_multiapp.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_ogr_reader.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_request.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_request_wmts.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_response.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_seed.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_seed_cachelock.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_srs.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_tiled_source.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_tilefilter.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_times.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_timeutils.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_util_conf_utils.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_utils.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_wms_capabilities.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_wms_layer.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/test/unit/test_yaml.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/tilefilter.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/async_.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/collections.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/coverage.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/dictspec/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/dictspec/spec.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/dictspec/test/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/dictspec/test/test_validator.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/dictspec/validator.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/local.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/lockfile.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/serving.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/tempita/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/tempita/_looper.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/tempita/string_utils.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/duration.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/parse.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/test_parse.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/test_util.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/wms-example-111.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/wms-example-130.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/wms-large-111.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ext/wmsparse/util.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/fs.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/geom.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/lib.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/lock.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/ogr.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/py.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/times.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/util/yaml.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/mapproxy/version.py +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/requirements-tests.txt +0 -0
- {MapProxy-2.1.1 → mapproxy-2.2.1}/setup.cfg +0 -0
|
@@ -1,3 +1,34 @@
|
|
|
1
|
+
2.2.1 2025-04-10
|
|
2
|
+
~~~~~~~~~~~~~~~~
|
|
3
|
+
|
|
4
|
+
Fixes:
|
|
5
|
+
|
|
6
|
+
- Security fix to prevent XSS injections in demo pages
|
|
7
|
+
- Security fix to prevent reading file urls
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
2.2.0 2024-07-24
|
|
11
|
+
~~~~~~~~~~~~~~~~
|
|
12
|
+
|
|
13
|
+
Improvements:
|
|
14
|
+
|
|
15
|
+
- Add timeout to SQLite connect for geopackages. This helps against locking exceptions
|
|
16
|
+
- Improvement of documentation, typos, wrong cli commands, old python2 stuff
|
|
17
|
+
- The WMTS capabilites will now advertise the WMS GetLegendGraphic as a LegendURL if both services are active
|
|
18
|
+
- It is possible now to configure LegendURLs that should be shown in the WMTS capabilities
|
|
19
|
+
- A new method for plugins to intercept and modify requests made to MapProxy was added.
|
|
20
|
+
|
|
21
|
+
Maintenance:
|
|
22
|
+
|
|
23
|
+
- Removal of debian package information
|
|
24
|
+
- Fix docs workflow
|
|
25
|
+
|
|
26
|
+
Fixes:
|
|
27
|
+
|
|
28
|
+
- Remove import of the packaging library that does not appear in the `install_requires`
|
|
29
|
+
- Only install and use `importlib_resources` in python 3.8
|
|
30
|
+
|
|
31
|
+
|
|
1
32
|
2.1.1 2024-07-16
|
|
2
33
|
~~~~~~~~~~~~~~~~
|
|
3
34
|
Fixes:
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: MapProxy
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: An accelerating proxy for tile and web map services
|
|
5
5
|
Home-page: https://mapproxy.org
|
|
6
6
|
Author: Oliver Tonnhofer
|
|
7
7
|
Author-email: olt@omniscale.de
|
|
8
8
|
License: Apache Software License 2.0
|
|
9
|
-
Platform: UNKNOWN
|
|
10
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
11
|
Classifier: Operating System :: OS Independent
|
|
@@ -21,6 +20,22 @@ Classifier: Topic :: Scientific/Engineering :: GIS
|
|
|
21
20
|
License-File: LICENSE.txt
|
|
22
21
|
License-File: COPYING.txt
|
|
23
22
|
License-File: AUTHORS.txt
|
|
23
|
+
Requires-Dist: PyYAML>=3.0
|
|
24
|
+
Requires-Dist: future
|
|
25
|
+
Requires-Dist: pyproj>=2
|
|
26
|
+
Requires-Dist: jsonschema>=4
|
|
27
|
+
Requires-Dist: importlib_resources; python_version <= "3.8"
|
|
28
|
+
Requires-Dist: werkzeug==1.0.1
|
|
29
|
+
Requires-Dist: Pillow!=2.4.0,!=8.3.0,!=8.3.1
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: home-page
|
|
35
|
+
Dynamic: license
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
Dynamic: requires-dist
|
|
38
|
+
Dynamic: summary
|
|
24
39
|
|
|
25
40
|
MapProxy is an open source proxy for geospatial data. It caches, accelerates and transforms data from existing map services and serves any desktop or web GIS client.
|
|
26
41
|
|
|
@@ -34,6 +49,37 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
|
|
|
34
49
|
|
|
35
50
|
Changes
|
|
36
51
|
-------
|
|
52
|
+
2.2.1 2025-04-10
|
|
53
|
+
~~~~~~~~~~~~~~~~
|
|
54
|
+
|
|
55
|
+
Fixes:
|
|
56
|
+
|
|
57
|
+
- Security fix to prevent XSS injections in demo pages
|
|
58
|
+
- Security fix to prevent reading file urls
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
2.2.0 2024-07-24
|
|
62
|
+
~~~~~~~~~~~~~~~~
|
|
63
|
+
|
|
64
|
+
Improvements:
|
|
65
|
+
|
|
66
|
+
- Add timeout to SQLite connect for geopackages. This helps against locking exceptions
|
|
67
|
+
- Improvement of documentation, typos, wrong cli commands, old python2 stuff
|
|
68
|
+
- The WMTS capabilites will now advertise the WMS GetLegendGraphic as a LegendURL if both services are active
|
|
69
|
+
- It is possible now to configure LegendURLs that should be shown in the WMTS capabilities
|
|
70
|
+
- A new method for plugins to intercept and modify requests made to MapProxy was added.
|
|
71
|
+
|
|
72
|
+
Maintenance:
|
|
73
|
+
|
|
74
|
+
- Removal of debian package information
|
|
75
|
+
- Fix docs workflow
|
|
76
|
+
|
|
77
|
+
Fixes:
|
|
78
|
+
|
|
79
|
+
- Remove import of the packaging library that does not appear in the `install_requires`
|
|
80
|
+
- Only install and use `importlib_resources` in python 3.8
|
|
81
|
+
|
|
82
|
+
|
|
37
83
|
2.1.1 2024-07-16
|
|
38
84
|
~~~~~~~~~~~~~~~~
|
|
39
85
|
Fixes:
|
|
@@ -114,41 +160,7 @@ Fixes:
|
|
|
114
160
|
- Some more minor fixups
|
|
115
161
|
|
|
116
162
|
|
|
117
|
-
1.16.0 2023-04-13
|
|
118
|
-
~~~~~~~~~~~~~~~~~
|
|
119
|
-
Breaking:
|
|
120
|
-
|
|
121
|
-
- Removal of old unsupported python versions 2.7 and 3.6
|
|
122
|
-
- Tested python version range is now 3.7 to 3.11
|
|
123
|
-
- Lots of dependency updates
|
|
124
|
-
|
|
125
|
-
Improvements:
|
|
126
|
-
|
|
127
|
-
- New cache: Azure Blob storage
|
|
128
|
-
- Lots of dependency updates
|
|
129
|
-
- Support for JSON legends
|
|
130
|
-
- Updated layer preview to use latest openlayers
|
|
131
|
-
- Official docker images released, documentation updated
|
|
132
|
-
|
|
133
|
-
Fixes:
|
|
134
|
-
|
|
135
|
-
- Fixed issues with sqlite cache (#629 and #625)
|
|
136
|
-
- Dependency correction
|
|
137
|
-
- library detection difficulties on some operating systems
|
|
138
|
-
- encoding issues with umlauts in featureinfo
|
|
139
|
-
- Several minor bugfixes
|
|
140
|
-
- mapproxy-util export - derive image format from cache config
|
|
141
|
-
|
|
142
|
-
1.15.1 2022-06-14
|
|
143
|
-
~~~~~~~~~~~~~~~~~
|
|
144
|
-
|
|
145
|
-
Fixes:
|
|
146
|
-
|
|
147
|
-
- Fixup release on PyPI
|
|
148
|
-
|
|
149
163
|
|
|
150
164
|
Older changes
|
|
151
165
|
-------------
|
|
152
166
|
See https://raw.github.com/mapproxy/mapproxy/master/CHANGES.txt
|
|
153
|
-
|
|
154
|
-
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: MapProxy
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: An accelerating proxy for tile and web map services
|
|
5
5
|
Home-page: https://mapproxy.org
|
|
6
6
|
Author: Oliver Tonnhofer
|
|
7
7
|
Author-email: olt@omniscale.de
|
|
8
8
|
License: Apache Software License 2.0
|
|
9
|
-
Platform: UNKNOWN
|
|
10
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
11
|
Classifier: Operating System :: OS Independent
|
|
@@ -21,6 +20,22 @@ Classifier: Topic :: Scientific/Engineering :: GIS
|
|
|
21
20
|
License-File: LICENSE.txt
|
|
22
21
|
License-File: COPYING.txt
|
|
23
22
|
License-File: AUTHORS.txt
|
|
23
|
+
Requires-Dist: PyYAML>=3.0
|
|
24
|
+
Requires-Dist: future
|
|
25
|
+
Requires-Dist: pyproj>=2
|
|
26
|
+
Requires-Dist: jsonschema>=4
|
|
27
|
+
Requires-Dist: importlib_resources; python_version <= "3.8"
|
|
28
|
+
Requires-Dist: werkzeug==1.0.1
|
|
29
|
+
Requires-Dist: Pillow!=2.4.0,!=8.3.0,!=8.3.1
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: home-page
|
|
35
|
+
Dynamic: license
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
Dynamic: requires-dist
|
|
38
|
+
Dynamic: summary
|
|
24
39
|
|
|
25
40
|
MapProxy is an open source proxy for geospatial data. It caches, accelerates and transforms data from existing map services and serves any desktop or web GIS client.
|
|
26
41
|
|
|
@@ -34,6 +49,37 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
|
|
|
34
49
|
|
|
35
50
|
Changes
|
|
36
51
|
-------
|
|
52
|
+
2.2.1 2025-04-10
|
|
53
|
+
~~~~~~~~~~~~~~~~
|
|
54
|
+
|
|
55
|
+
Fixes:
|
|
56
|
+
|
|
57
|
+
- Security fix to prevent XSS injections in demo pages
|
|
58
|
+
- Security fix to prevent reading file urls
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
2.2.0 2024-07-24
|
|
62
|
+
~~~~~~~~~~~~~~~~
|
|
63
|
+
|
|
64
|
+
Improvements:
|
|
65
|
+
|
|
66
|
+
- Add timeout to SQLite connect for geopackages. This helps against locking exceptions
|
|
67
|
+
- Improvement of documentation, typos, wrong cli commands, old python2 stuff
|
|
68
|
+
- The WMTS capabilites will now advertise the WMS GetLegendGraphic as a LegendURL if both services are active
|
|
69
|
+
- It is possible now to configure LegendURLs that should be shown in the WMTS capabilities
|
|
70
|
+
- A new method for plugins to intercept and modify requests made to MapProxy was added.
|
|
71
|
+
|
|
72
|
+
Maintenance:
|
|
73
|
+
|
|
74
|
+
- Removal of debian package information
|
|
75
|
+
- Fix docs workflow
|
|
76
|
+
|
|
77
|
+
Fixes:
|
|
78
|
+
|
|
79
|
+
- Remove import of the packaging library that does not appear in the `install_requires`
|
|
80
|
+
- Only install and use `importlib_resources` in python 3.8
|
|
81
|
+
|
|
82
|
+
|
|
37
83
|
2.1.1 2024-07-16
|
|
38
84
|
~~~~~~~~~~~~~~~~
|
|
39
85
|
Fixes:
|
|
@@ -114,41 +160,7 @@ Fixes:
|
|
|
114
160
|
- Some more minor fixups
|
|
115
161
|
|
|
116
162
|
|
|
117
|
-
1.16.0 2023-04-13
|
|
118
|
-
~~~~~~~~~~~~~~~~~
|
|
119
|
-
Breaking:
|
|
120
|
-
|
|
121
|
-
- Removal of old unsupported python versions 2.7 and 3.6
|
|
122
|
-
- Tested python version range is now 3.7 to 3.11
|
|
123
|
-
- Lots of dependency updates
|
|
124
|
-
|
|
125
|
-
Improvements:
|
|
126
|
-
|
|
127
|
-
- New cache: Azure Blob storage
|
|
128
|
-
- Lots of dependency updates
|
|
129
|
-
- Support for JSON legends
|
|
130
|
-
- Updated layer preview to use latest openlayers
|
|
131
|
-
- Official docker images released, documentation updated
|
|
132
|
-
|
|
133
|
-
Fixes:
|
|
134
|
-
|
|
135
|
-
- Fixed issues with sqlite cache (#629 and #625)
|
|
136
|
-
- Dependency correction
|
|
137
|
-
- library detection difficulties on some operating systems
|
|
138
|
-
- encoding issues with umlauts in featureinfo
|
|
139
|
-
- Several minor bugfixes
|
|
140
|
-
- mapproxy-util export - derive image format from cache config
|
|
141
|
-
|
|
142
|
-
1.15.1 2022-06-14
|
|
143
|
-
~~~~~~~~~~~~~~~~~
|
|
144
|
-
|
|
145
|
-
Fixes:
|
|
146
|
-
|
|
147
|
-
- Fixup release on PyPI
|
|
148
|
-
|
|
149
163
|
|
|
150
164
|
Older changes
|
|
151
165
|
-------------
|
|
152
166
|
See https://raw.github.com/mapproxy/mapproxy/master/CHANGES.txt
|
|
153
|
-
|
|
154
|
-
|
|
@@ -3,9 +3,9 @@ Configuration
|
|
|
3
3
|
|
|
4
4
|
There are two configuration files used by MapProxy.
|
|
5
5
|
|
|
6
|
-
``
|
|
6
|
+
``mapproxy.yaml``
|
|
7
7
|
This is the main configuration of MapProxy. It configures all aspects of the server:
|
|
8
|
-
|
|
8
|
+
which servers should be started, where comes the data from, what should be cached,
|
|
9
9
|
etc..
|
|
10
10
|
|
|
11
11
|
``seed.yaml``
|
|
@@ -31,7 +31,7 @@ The MapProxy configuration is grouped into sections, each configures a different
|
|
|
31
31
|
|
|
32
32
|
- ``layers``: Configure the layers that MapProxy offers. Each layer can consist of multiple sources and caches.
|
|
33
33
|
|
|
34
|
-
- ``grids``: Define the grids that MapProxy uses to
|
|
34
|
+
- ``grids``: Define the grids that MapProxy uses to align cached images.
|
|
35
35
|
|
|
36
36
|
The order of the sections is not important, so you can organize it your way.
|
|
37
37
|
|
|
@@ -69,7 +69,7 @@ There are other optional sections:
|
|
|
69
69
|
|
|
70
70
|
The ``base`` option loads the other files and merges the loaded configuration dictionaries together – it is not a literal include of the other files.
|
|
71
71
|
|
|
72
|
-
For example, to externalize ``grids`` and ``caches``sections, we will have in ``
|
|
72
|
+
For example, to externalize ``grids`` and ``caches`` sections, we will have in ``mapproxy.yaml``:
|
|
73
73
|
|
|
74
74
|
.. code-block:: YAML
|
|
75
75
|
|
|
@@ -77,7 +77,7 @@ There are other optional sections:
|
|
|
77
77
|
service: ...
|
|
78
78
|
layers: ...
|
|
79
79
|
|
|
80
|
-
Also in more complex configurations (with many layers, caches, sources, etc.), the ``
|
|
80
|
+
Also in more complex configurations (with many layers, caches, sources, etc.), the ``mapproxy.yaml`` can become too big to be easily modified. One solution could be to split layers, caches, sources, etc. by themes: for example, nature (with layers for lakes, rivers, forests), artificial building (with roads, buildings, power plants layers), topography, etc. We could have in ``mapproxy.yaml``:
|
|
81
81
|
|
|
82
82
|
.. code-block:: YAML
|
|
83
83
|
|
|
@@ -304,7 +304,7 @@ Please read :ref:`scale vs. resolution <scale_resolution>` for some notes on `sc
|
|
|
304
304
|
``legendurl``
|
|
305
305
|
"""""""""""""
|
|
306
306
|
|
|
307
|
-
Configure a URL to an image that should be returned as the legend for this layer. Local URLs (``file://``) are also supported. MapProxy ignores the legends from the sources of this layer if you configure a ``legendurl`` here.
|
|
307
|
+
Configure a URL to an image that should be returned as the legend for this layer. Local URLs (``file://``) are also supported. MapProxy ignores the legends from the sources of this layer if you configure a ``legendurl`` here. If WMS and WMTS are enabled the address to the WMS `GetLegendGraphic` endpoint will be included in the WMTS capabilities as the legend url.
|
|
308
308
|
|
|
309
309
|
.. _layer_metadata:
|
|
310
310
|
|
|
@@ -392,6 +392,21 @@ Each dimension is another dictionary with a list of ``values`` and an optional `
|
|
|
392
392
|
- 1000
|
|
393
393
|
- 3000
|
|
394
394
|
|
|
395
|
+
``wmts_kvp_legendurl`` and ``wmts_rest_legendurl``
|
|
396
|
+
""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
397
|
+
|
|
398
|
+
It is possible to configure which URLS the WMTS will advertise as LegendURLs through its capabilities. These will be
|
|
399
|
+
inserted as a ``LegendURL`` tag into the capabilities document. These URLs support two template variables ``{base_url}``
|
|
400
|
+
which is the base url of MapProxy and ``{layer_name}`` which is the name of the layer.
|
|
401
|
+
|
|
402
|
+
.. code-block:: yaml
|
|
403
|
+
|
|
404
|
+
layers:
|
|
405
|
+
- name: legend_layer
|
|
406
|
+
tile_sources: [cache]
|
|
407
|
+
wmts_rest_legendurl: "{base_url}/legend/{layer_name}.png" # would become "http://127.0.0.1/legend/legend_layer.png" on localhost
|
|
408
|
+
wmts_kvp_legendurl: "http://external-service/fixed-name.png" # would be used as a fixed URL
|
|
409
|
+
|
|
395
410
|
|
|
396
411
|
.. ``attribution``
|
|
397
412
|
.. """"""""""""""""
|
|
@@ -499,7 +514,7 @@ You need to set the ``request_format`` to ``image/png`` when using ``mixed``-mod
|
|
|
499
514
|
``request_format``
|
|
500
515
|
""""""""""""""""""
|
|
501
516
|
|
|
502
|
-
MapProxy will try to use this format to request new tiles, if it is not set ``format`` is used. This option has no effect if the source does not support that format or the format of the
|
|
517
|
+
MapProxy will try to use this format to request new tiles, if it is not set ``format`` is used. This option has no effect if the source does not support that format or the format of the cache is set explicitly (see ``format`` for caches or ``supported_formats`` for sources).
|
|
503
518
|
|
|
504
519
|
|
|
505
520
|
.. _link_single_color_images:
|
|
@@ -989,7 +1004,7 @@ The following options define how tiles are created and stored. Most options can
|
|
|
989
1004
|
.. _meta_size:
|
|
990
1005
|
|
|
991
1006
|
``meta_size``
|
|
992
|
-
MapProxy does not make a single request for every tile it needs, but it will request a large meta-tile that consist of multiple tiles. ``meta_size`` defines how large a meta-tile is. A ``meta_size`` of ``[4, 4]`` will request 16 tiles in one pass. With a tile size of 256x256 this will result in 1024x1024 requests to the source. Tiled sources are still requested tile by tile, but you can configure MapProxy to load multiple tiles in bulk with
|
|
1007
|
+
MapProxy does not make a single request for every tile it needs, but it will request a large meta-tile that consist of multiple tiles. ``meta_size`` defines how large a meta-tile is. A ``meta_size`` of ``[4, 4]`` will request 16 tiles in one pass. With a tile size of 256x256 this will result in 1024x1024 requests to the source. Tiled sources are still requested tile by tile, but you can configure MapProxy to load multiple tiles in bulk with ``bulk_meta_tiles``.
|
|
993
1008
|
|
|
994
1009
|
|
|
995
1010
|
.. _bulk_meta_tiles:
|
|
@@ -1135,7 +1150,7 @@ See the `Python SSL documentation <http://docs.python.org/dev/library/ssl.html#s
|
|
|
1135
1150
|
|
|
1136
1151
|
.. versionadded:: 1.11.0
|
|
1137
1152
|
|
|
1138
|
-
MapProxy uses the systems CA files by default
|
|
1153
|
+
MapProxy uses the systems CA files by default.
|
|
1139
1154
|
|
|
1140
1155
|
|
|
1141
1156
|
.. note::
|
|
@@ -49,6 +49,8 @@ Behind an HTTP server or proxy
|
|
|
49
49
|
|
|
50
50
|
Both approaches require a configuration that maps your MapProxy configuration with the MapProxy application. You can write a small script file for that.
|
|
51
51
|
|
|
52
|
+
.. note:: In production mode it is recommended to disable the demo service.
|
|
53
|
+
|
|
52
54
|
.. _server_script:
|
|
53
55
|
|
|
54
56
|
Server script
|
|
@@ -28,7 +28,7 @@ __ fork_
|
|
|
28
28
|
Documentation
|
|
29
29
|
-------------
|
|
30
30
|
|
|
31
|
-
This is the documentation you are reading right now. The raw files can be found in ``doc/``. The HTML version user documentation is build with `Sphinx`_. To rebuild this documentation install Sphinx with ``pip install sphinx sphinx-bootstrap-theme`` and call ``
|
|
31
|
+
This is the documentation you are reading right now. The raw files can be found in ``doc/``. The HTML version user documentation is build with `Sphinx`_. To rebuild this documentation install Sphinx with ``pip install sphinx sphinx-bootstrap-theme`` and call ``sphinx-build doc/ docs``. The output appears in ``docs``. The latest documentation can be found at ``https://mapproxy.github.io/mapproxy/latest/``.
|
|
32
32
|
|
|
33
33
|
.. _`Epydoc`: http://epydoc.sourceforge.net/
|
|
34
34
|
.. _`Sphinx`: http://sphinx.pocoo.org/
|
|
@@ -5,9 +5,9 @@ This tutorial guides you to the MapProxy installation process on Unix systems. F
|
|
|
5
5
|
|
|
6
6
|
This tutorial was created and tested with Debian and Ubuntu, if you're installing MapProxy on a different system you might need to change some package names.
|
|
7
7
|
|
|
8
|
-
MapProxy is `registered at the Python Package Index <https://pypi.org/project/MapProxy/>`_ (PyPI). If you have Python
|
|
8
|
+
MapProxy is `registered at the Python Package Index <https://pypi.org/project/MapProxy/>`_ (PyPI). If you have Python 3.8 or higher, you can install MapProxy with::
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
python -m pip install MapProxy
|
|
11
11
|
|
|
12
12
|
This is really, easy `but` we recommend to install MapProxy into a `virtual Python environment`_. A ``virtualenv`` is a self-contained Python installation where you can install arbitrary Python packages without affecting the system installation. You also don't need root permissions for the installation.
|
|
13
13
|
|
|
@@ -11,7 +11,7 @@ Virtualenv
|
|
|
11
11
|
|
|
12
12
|
To create a new virtual environment for your MapProxy installation and to activate it go to the command line and call::
|
|
13
13
|
|
|
14
|
-
C:\
|
|
14
|
+
C:\Python38\python path\to\virtualenv.py c:\mapproxy_venv
|
|
15
15
|
C:\mapproxy_venv\Scripts\activate.bat
|
|
16
16
|
|
|
17
17
|
.. note::
|
|
@@ -30,11 +30,9 @@ This might take a minute. You can skip the next step.
|
|
|
30
30
|
PIP
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
MapProxy and most dependencies can be installed with the ``pip`` command.
|
|
33
|
+
MapProxy and most dependencies can be installed with the ``pip`` command. `Read the pip documentation for more information <https://pip.pypa.io/en/stable/installing/>`_.
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
c:\Python27\Scripts\pip install MapProxy
|
|
35
|
+
c:\Python38\Scripts\pip install MapProxy
|
|
38
36
|
|
|
39
37
|
This might take a minute.
|
|
40
38
|
|
|
@@ -90,7 +88,7 @@ Platform dependent packages
|
|
|
90
88
|
|
|
91
89
|
``pip`` downloads all packages from https://pypi.org/, but not all platform combinations might be available as a binary package, especially if you run a 64bit version of Python.
|
|
92
90
|
|
|
93
|
-
If you run into trouble during installation, because it is trying to compile something (e.g. complaining about ``vcvarsall.bat``), you should look at Christoph Gohlke's `Unofficial Windows Binaries for Python Extension Packages <http://www.lfd.uci.edu/~gohlke/pythonlibs/>`_. This is a reliable site for binary packages for Python. You need to download the right package: The ``cpxx`` code refers to the Python version (e.g. ``
|
|
91
|
+
If you run into trouble during installation, because it is trying to compile something (e.g. complaining about ``vcvarsall.bat``), you should look at Christoph Gohlke's `Unofficial Windows Binaries for Python Extension Packages <http://www.lfd.uci.edu/~gohlke/pythonlibs/>`_. This is a reliable site for binary packages for Python. You need to download the right package: The ``cpxx`` code refers to the Python version (e.g. ``cp38`` for Python 3.8); ``win32`` for 32bit Python installations and ``amd64`` for 64bit.
|
|
94
92
|
|
|
95
93
|
You can install the ``.whl``, ``.zip`` or ``.exe`` packages with ``pip``::
|
|
96
94
|
|
|
@@ -292,9 +292,33 @@ This can for example be used like in the following snippet:
|
|
|
292
292
|
})
|
|
293
293
|
|
|
294
294
|
|
|
295
|
-
A real-world example can be found at
|
|
296
|
-
|
|
297
|
-
|
|
295
|
+
A real-world example can be found at https://github.com/rouault/mapproxy_hips/blob/master/mapproxy_hips/script/hipsallsky.py
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
Intercepting request
|
|
299
|
+
--------------------
|
|
300
|
+
|
|
301
|
+
It is possible to intercept any request in a plugin with `register_request_interceptor`. The provided function will be called on any request and should
|
|
302
|
+
always return a request, either the original one or a new one.
|
|
303
|
+
|
|
304
|
+
Example:
|
|
305
|
+
|
|
306
|
+
.. code-block:: python
|
|
307
|
+
|
|
308
|
+
from mapproxy.wsgiapp import register_request_interceptor
|
|
309
|
+
|
|
310
|
+
def interceptor(req):
|
|
311
|
+
if req.path.startswith('service'):
|
|
312
|
+
environ = req.environ.copy()
|
|
313
|
+
environ['QUERY_STRING'] = environ['QUERY_STRING'].replace('foo', 'bar')
|
|
314
|
+
return Request(environ)
|
|
315
|
+
return req
|
|
316
|
+
|
|
317
|
+
register_request_interceptor(interceptor)
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
A real world example can be found at https://github.com/mapproxy/wmts-rest-legend-plugin
|
|
321
|
+
|
|
298
322
|
|
|
299
323
|
Credits
|
|
300
324
|
-------
|
|
@@ -137,7 +137,7 @@ You can define XSLT scripts to transform outgoing feature information. You can d
|
|
|
137
137
|
``xml``
|
|
138
138
|
Define a script for ``INFO_FORMAT=application/vnd.ogc.gml`` and ``INFO_FORMAT=text/xml`` requests.
|
|
139
139
|
|
|
140
|
-
See :ref:`FeatureInformation for more
|
|
140
|
+
See :ref:`FeatureInformation for more information <fi_xslt>`.
|
|
141
141
|
|
|
142
142
|
``strict``
|
|
143
143
|
""""""""""
|
|
@@ -133,7 +133,7 @@ A list with SRSs that the WMS source supports. MapProxy will only query the sour
|
|
|
133
133
|
|
|
134
134
|
You don't need to configure this if you only use this WMS as a cache source and the WMS supports all SRS of the cache.
|
|
135
135
|
|
|
136
|
-
If MapProxy needs to reproject and the source has multiple ``supported_srs``, then it will use the first projected SRS for requests in a projected SRS, or the first geographic SRS for requests in a geographic SRS. E.g when
|
|
136
|
+
If MapProxy needs to reproject and the source has multiple ``supported_srs``, then it will use the first projected SRS for requests in a projected SRS, or the first geographic SRS for requests in a geographic SRS. E.g when ``supported_srs`` is ``['EPSG:4326', 'EPSG:31467']`` caches with EPSG:3857 (projected, meter) will use EPSG:31467 (projected, meter) and not EPSG:4326 (geographic, lat/long).
|
|
137
137
|
|
|
138
138
|
.. .. note:: For the configuration of SRS for MapProxy see `srs_configuration`_.
|
|
139
139
|
|
|
@@ -125,7 +125,7 @@ class GeopackageCache(TileCacheBase):
|
|
|
125
125
|
return True
|
|
126
126
|
|
|
127
127
|
def _verify_table(self):
|
|
128
|
-
with sqlite3.connect(self.geopackage_file) as db:
|
|
128
|
+
with sqlite3.connect(self.geopackage_file, timeout=self.timeout) as db:
|
|
129
129
|
cur = db.execute("""SELECT name FROM sqlite_master WHERE type='table' AND name=?""",
|
|
130
130
|
(self.table_name,))
|
|
131
131
|
content = cur.fetchone()
|
|
@@ -135,7 +135,7 @@ class GeopackageCache(TileCacheBase):
|
|
|
135
135
|
return True
|
|
136
136
|
|
|
137
137
|
def _verify_gpkg_contents(self):
|
|
138
|
-
with sqlite3.connect(self.geopackage_file) as db:
|
|
138
|
+
with sqlite3.connect(self.geopackage_file, timeout=self.timeout) as db:
|
|
139
139
|
cur = db.execute("""SELECT * FROM gpkg_contents WHERE table_name = ?""", (self.table_name,))
|
|
140
140
|
|
|
141
141
|
results = cur.fetchone()
|
|
@@ -159,7 +159,7 @@ class GeopackageCache(TileCacheBase):
|
|
|
159
159
|
return True
|
|
160
160
|
|
|
161
161
|
def _verify_tile_size(self):
|
|
162
|
-
with sqlite3.connect(self.geopackage_file) as db:
|
|
162
|
+
with sqlite3.connect(self.geopackage_file, timeout=self.timeout) as db:
|
|
163
163
|
cur = db.execute(
|
|
164
164
|
"""SELECT * FROM gpkg_tile_matrix WHERE table_name = ?""",
|
|
165
165
|
(self.table_name,))
|
|
@@ -193,7 +193,7 @@ class GeopackageCache(TileCacheBase):
|
|
|
193
193
|
|
|
194
194
|
def _initialize_gpkg(self):
|
|
195
195
|
log.info('initializing Geopackage file %s', self.geopackage_file)
|
|
196
|
-
db = sqlite3.connect(self.geopackage_file)
|
|
196
|
+
db = sqlite3.connect(self.geopackage_file, timeout=self.timeout)
|
|
197
197
|
|
|
198
198
|
if self.wal:
|
|
199
199
|
db.execute('PRAGMA journal_mode=wal')
|
|
@@ -392,6 +392,14 @@
|
|
|
392
392
|
"description": "URL to an image used as a legend for this layer",
|
|
393
393
|
"type": "string"
|
|
394
394
|
},
|
|
395
|
+
"wmts_rest_legendurl": {
|
|
396
|
+
"description": "A static legendurl for the wmts rest capabilites",
|
|
397
|
+
"type": "string"
|
|
398
|
+
},
|
|
399
|
+
"wmts_kvp_legendurl": {
|
|
400
|
+
"description": "A static legendurl for the wmts kvp capabilites",
|
|
401
|
+
"type": "string"
|
|
402
|
+
},
|
|
395
403
|
"md": {
|
|
396
404
|
"title": "md",
|
|
397
405
|
"description": "Additional metadata for this layer",
|
|
@@ -1950,13 +1950,26 @@ class LayerConfiguration(ConfigurationBase):
|
|
|
1950
1950
|
md['format'] = self.context.caches[cache_name].image_opts().format
|
|
1951
1951
|
md['cache_name'] = cache_name
|
|
1952
1952
|
md['extent'] = extent
|
|
1953
|
+
md['wmts_kvp_legendurl'] = self.conf.get('wmts_kvp_legendurl')
|
|
1954
|
+
md['wmts_rest_legendurl'] = self.conf.get('wmts_rest_legendurl')
|
|
1955
|
+
if 'legendurl' in self.conf:
|
|
1956
|
+
wms_conf = self.context.services.conf.get('wms')
|
|
1957
|
+
if wms_conf is not None:
|
|
1958
|
+
versions = wms_conf.get('versions', ['1.3.0'])
|
|
1959
|
+
versions.sort(key=lambda s: [int(u) for u in s.split('.')])
|
|
1960
|
+
legendurl = (f'{{base_url}}/service?service=WMS&request=GetLegendGraphic&'
|
|
1961
|
+
f'version={versions[-1]}&format=image%2Fpng&layer={{layer_name}}')
|
|
1962
|
+
if md['wmts_kvp_legendurl'] is None:
|
|
1963
|
+
md['wmts_kvp_legendurl'] = legendurl
|
|
1964
|
+
if md['wmts_rest_legendurl'] is None:
|
|
1965
|
+
md['wmts_rest_legendurl'] = legendurl
|
|
1953
1966
|
tile_layers.append(
|
|
1954
1967
|
TileLayer(
|
|
1955
1968
|
self.conf['name'], self.conf['title'],
|
|
1956
1969
|
info_sources=fi_sources,
|
|
1957
1970
|
md=md,
|
|
1958
1971
|
tile_manager=cache_source,
|
|
1959
|
-
dimensions=dimensions
|
|
1972
|
+
dimensions=dimensions
|
|
1960
1973
|
)
|
|
1961
1974
|
)
|
|
1962
1975
|
|
|
@@ -2287,6 +2300,10 @@ def load_configuration(mapproxy_conf, seed=False, ignore_warnings=True, renderd=
|
|
|
2287
2300
|
for error in errors:
|
|
2288
2301
|
log.warning(error)
|
|
2289
2302
|
|
|
2303
|
+
services = conf_dict.get('services')
|
|
2304
|
+
if services is not None and 'demo' in services:
|
|
2305
|
+
log.warning('Application has demo page enabled. It is recommended to disable this in production.')
|
|
2306
|
+
|
|
2290
2307
|
return ProxyConfiguration(conf_dict, conf_base_dir=conf_base_dir, seed=seed,
|
|
2291
2308
|
renderd=renderd)
|
|
2292
2309
|
|
|
@@ -17,7 +17,10 @@ from __future__ import division
|
|
|
17
17
|
|
|
18
18
|
import logging
|
|
19
19
|
import os
|
|
20
|
-
|
|
20
|
+
try:
|
|
21
|
+
import importlib_resources
|
|
22
|
+
except ImportError:
|
|
23
|
+
from importlib import resources as importlib_resources
|
|
21
24
|
|
|
22
25
|
from mapproxy.config import base_config, abspath
|
|
23
26
|
from mapproxy.compat.image import Image, ImageColor, ImageDraw, ImageFont
|
|
@@ -20,6 +20,7 @@ from mapproxy.request import Request
|
|
|
20
20
|
from mapproxy.response import Response
|
|
21
21
|
from mapproxy.util.collections import LRU
|
|
22
22
|
from mapproxy.wsgiapp import make_wsgi_app as make_mapproxy_wsgi_app
|
|
23
|
+
from mapproxy.util.escape import escape_html
|
|
23
24
|
|
|
24
25
|
from threading import Lock
|
|
25
26
|
|
|
@@ -95,7 +96,7 @@ class MultiMapProxy(object):
|
|
|
95
96
|
import mapproxy.version
|
|
96
97
|
html = "<html><body><h1>Welcome to MapProxy %s</h1>" % mapproxy.version.version
|
|
97
98
|
|
|
98
|
-
url = req.script_url
|
|
99
|
+
url = escape_html(req.script_url)
|
|
99
100
|
if self.list_apps:
|
|
100
101
|
html += "<h2>available instances:</h2><ul>"
|
|
101
102
|
html += '\n'.join('<li><a href="%(url)s/%(name)s/">%(name)s</a></li>' % {'url': url, 'name': app}
|