MapProxy 1.16.1__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.
Files changed (458) hide show
  1. mapproxy/__init__.py +0 -0
  2. mapproxy/cache/__init__.py +36 -0
  3. mapproxy/cache/azureblob.py +145 -0
  4. mapproxy/cache/base.py +111 -0
  5. mapproxy/cache/compact.py +664 -0
  6. mapproxy/cache/couchdb.py +295 -0
  7. mapproxy/cache/dummy.py +34 -0
  8. mapproxy/cache/file.py +185 -0
  9. mapproxy/cache/geopackage.py +609 -0
  10. mapproxy/cache/legend.py +83 -0
  11. mapproxy/cache/mbtiles.py +392 -0
  12. mapproxy/cache/meta.py +78 -0
  13. mapproxy/cache/path.py +250 -0
  14. mapproxy/cache/redis.py +88 -0
  15. mapproxy/cache/renderd.py +95 -0
  16. mapproxy/cache/riak.py +202 -0
  17. mapproxy/cache/s3.py +177 -0
  18. mapproxy/cache/tile.py +699 -0
  19. mapproxy/client/__init__.py +0 -0
  20. mapproxy/client/arcgis.py +79 -0
  21. mapproxy/client/cgi.py +139 -0
  22. mapproxy/client/http.py +315 -0
  23. mapproxy/client/log.py +33 -0
  24. mapproxy/client/tile.py +150 -0
  25. mapproxy/client/wms.py +254 -0
  26. mapproxy/compat/__init__.py +46 -0
  27. mapproxy/compat/image.py +79 -0
  28. mapproxy/compat/itertools.py +29 -0
  29. mapproxy/compat/modules.py +13 -0
  30. mapproxy/config/__init__.py +22 -0
  31. mapproxy/config/config.py +201 -0
  32. mapproxy/config/coverage.py +107 -0
  33. mapproxy/config/defaults.py +98 -0
  34. mapproxy/config/loader.py +2286 -0
  35. mapproxy/config/spec.py +644 -0
  36. mapproxy/config/validator.py +239 -0
  37. mapproxy/config_template/__init__.py +0 -0
  38. mapproxy/config_template/base_config/config.wsgi +10 -0
  39. mapproxy/config_template/base_config/full_example.yaml +593 -0
  40. mapproxy/config_template/base_config/full_seed_example.yaml +79 -0
  41. mapproxy/config_template/base_config/log.ini +35 -0
  42. mapproxy/config_template/base_config/mapproxy.yaml +60 -0
  43. mapproxy/config_template/base_config/seed.yaml +27 -0
  44. mapproxy/exception.py +142 -0
  45. mapproxy/featureinfo.py +252 -0
  46. mapproxy/grid.py +1170 -0
  47. mapproxy/image/__init__.py +536 -0
  48. mapproxy/image/fonts/DejaVuSans.ttf +0 -0
  49. mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
  50. mapproxy/image/fonts/LICENSE +99 -0
  51. mapproxy/image/fonts/__init__.py +0 -0
  52. mapproxy/image/mask.py +75 -0
  53. mapproxy/image/merge.py +316 -0
  54. mapproxy/image/message.py +347 -0
  55. mapproxy/image/opts.py +182 -0
  56. mapproxy/image/tile.py +167 -0
  57. mapproxy/image/transform.py +350 -0
  58. mapproxy/layer.py +470 -0
  59. mapproxy/multiapp.py +231 -0
  60. mapproxy/proj.py +302 -0
  61. mapproxy/request/__init__.py +18 -0
  62. mapproxy/request/arcgis.py +259 -0
  63. mapproxy/request/base.py +476 -0
  64. mapproxy/request/tile.py +128 -0
  65. mapproxy/request/wms/__init__.py +793 -0
  66. mapproxy/request/wms/exception.py +99 -0
  67. mapproxy/request/wmts.py +436 -0
  68. mapproxy/response.py +237 -0
  69. mapproxy/script/__init__.py +0 -0
  70. mapproxy/script/conf/__init__.py +0 -0
  71. mapproxy/script/conf/app.py +195 -0
  72. mapproxy/script/conf/caches.py +45 -0
  73. mapproxy/script/conf/layers.py +54 -0
  74. mapproxy/script/conf/seeds.py +37 -0
  75. mapproxy/script/conf/sources.py +86 -0
  76. mapproxy/script/conf/utils.py +143 -0
  77. mapproxy/script/defrag.py +184 -0
  78. mapproxy/script/export.py +333 -0
  79. mapproxy/script/grids.py +188 -0
  80. mapproxy/script/scales.py +126 -0
  81. mapproxy/script/util.py +406 -0
  82. mapproxy/script/wms_capabilities.py +152 -0
  83. mapproxy/seed/__init__.py +0 -0
  84. mapproxy/seed/cachelock.py +121 -0
  85. mapproxy/seed/cleanup.py +187 -0
  86. mapproxy/seed/config.py +469 -0
  87. mapproxy/seed/script.py +388 -0
  88. mapproxy/seed/seeder.py +538 -0
  89. mapproxy/seed/spec.py +64 -0
  90. mapproxy/seed/util.py +254 -0
  91. mapproxy/service/__init__.py +14 -0
  92. mapproxy/service/base.py +46 -0
  93. mapproxy/service/demo.py +356 -0
  94. mapproxy/service/kml.py +331 -0
  95. mapproxy/service/ows.py +38 -0
  96. mapproxy/service/template_helper.py +53 -0
  97. mapproxy/service/templates/demo/capabilities_demo.html +16 -0
  98. mapproxy/service/templates/demo/demo.html +181 -0
  99. mapproxy/service/templates/demo/openlayers-demo.cfg +16 -0
  100. mapproxy/service/templates/demo/static/img/blank.gif +0 -0
  101. mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
  102. mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
  103. mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
  104. mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
  105. mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
  106. mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
  107. mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
  108. mapproxy/service/templates/demo/static/logo.png +0 -0
  109. mapproxy/service/templates/demo/static/ol.css +345 -0
  110. mapproxy/service/templates/demo/static/ol.js +4 -0
  111. mapproxy/service/templates/demo/static/proj4.min.js +1 -0
  112. mapproxy/service/templates/demo/static/proj4defs.js +1 -0
  113. mapproxy/service/templates/demo/static/site.css +137 -0
  114. mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
  115. mapproxy/service/templates/demo/static/theme/default/google.css +17 -0
  116. mapproxy/service/templates/demo/static/theme/default/ie6-style.css +10 -0
  117. mapproxy/service/templates/demo/static/theme/default/style.css +482 -0
  118. mapproxy/service/templates/demo/static.html +34 -0
  119. mapproxy/service/templates/demo/tms_demo.html +103 -0
  120. mapproxy/service/templates/demo/wms_demo.html +140 -0
  121. mapproxy/service/templates/demo/wmts_demo.html +110 -0
  122. mapproxy/service/templates/tms_capabilities.xml +13 -0
  123. mapproxy/service/templates/tms_exception.xml +4 -0
  124. mapproxy/service/templates/tms_root_resource.xml +7 -0
  125. mapproxy/service/templates/tms_tilemap_capabilities.xml +14 -0
  126. mapproxy/service/templates/wms100capabilities.xml +112 -0
  127. mapproxy/service/templates/wms100exception.xml +4 -0
  128. mapproxy/service/templates/wms110capabilities.xml +152 -0
  129. mapproxy/service/templates/wms110exception.xml +5 -0
  130. mapproxy/service/templates/wms111capabilities.xml +183 -0
  131. mapproxy/service/templates/wms111exception.xml +5 -0
  132. mapproxy/service/templates/wms130capabilities.xml +326 -0
  133. mapproxy/service/templates/wms130exception.xml +8 -0
  134. mapproxy/service/templates/wmts100capabilities.xml +155 -0
  135. mapproxy/service/templates/wmts100exception.xml +9 -0
  136. mapproxy/service/tile.py +536 -0
  137. mapproxy/service/wms.py +851 -0
  138. mapproxy/service/wmts.py +381 -0
  139. mapproxy/source/__init__.py +75 -0
  140. mapproxy/source/arcgis.py +39 -0
  141. mapproxy/source/error.py +39 -0
  142. mapproxy/source/mapnik.py +259 -0
  143. mapproxy/source/tile.py +96 -0
  144. mapproxy/source/wms.py +270 -0
  145. mapproxy/srs.py +726 -0
  146. mapproxy/template.py +54 -0
  147. mapproxy/test/__init__.py +0 -0
  148. mapproxy/test/conftest.py +7 -0
  149. mapproxy/test/helper.py +247 -0
  150. mapproxy/test/http.py +494 -0
  151. mapproxy/test/image.py +210 -0
  152. mapproxy/test/mocker.py +2268 -0
  153. mapproxy/test/schemas/inspire/common/1.0/common.xsd +1461 -0
  154. mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +108 -0
  155. mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +108 -0
  156. mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +108 -0
  157. mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +108 -0
  158. mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +155 -0
  159. mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +108 -0
  160. mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +108 -0
  161. mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +108 -0
  162. mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +108 -0
  163. mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +109 -0
  164. mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +108 -0
  165. mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +108 -0
  166. mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +108 -0
  167. mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +108 -0
  168. mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +108 -0
  169. mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +108 -0
  170. mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +108 -0
  171. mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +108 -0
  172. mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +108 -0
  173. mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +108 -0
  174. mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +108 -0
  175. mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +108 -0
  176. mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +108 -0
  177. mapproxy/test/schemas/inspire/common/1.0/network.xsd +521 -0
  178. mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +19 -0
  179. mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +14 -0
  180. mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +66 -0
  181. mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +1646 -0
  182. mapproxy/test/schemas/kml/2.2.0/xAL.xsd +1680 -0
  183. mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +87 -0
  184. mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +235 -0
  185. mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +23 -0
  186. mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +157 -0
  187. mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +86 -0
  188. mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +127 -0
  189. mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +279 -0
  190. mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +76 -0
  191. mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +112 -0
  192. mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +51 -0
  193. mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +59 -0
  194. mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +125 -0
  195. mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +140 -0
  196. mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +60 -0
  197. mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +47 -0
  198. mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +27 -0
  199. mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +353 -0
  200. mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +188 -0
  201. mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +524 -0
  202. mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +260 -0
  203. mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +273 -0
  204. mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +303 -0
  205. mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +6 -0
  206. mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +33 -0
  207. mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +68 -0
  208. mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
  209. mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +274 -0
  210. mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +5 -0
  211. mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +276 -0
  212. mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +303 -0
  213. mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +6 -0
  214. mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +33 -0
  215. mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +8 -0
  216. mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +277 -0
  217. mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +611 -0
  218. mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +34 -0
  219. mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +28 -0
  220. mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +68 -0
  221. mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
  222. mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +283 -0
  223. mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +5 -0
  224. mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +276 -0
  225. mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +303 -0
  226. mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +6 -0
  227. mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +33 -0
  228. mapproxy/test/schemas/wmts/1.0/ReadMe.txt +32 -0
  229. mapproxy/test/schemas/wmts/1.0/wmts.xsd +28 -0
  230. mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +151 -0
  231. mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +38 -0
  232. mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +564 -0
  233. mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +57 -0
  234. mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +72 -0
  235. mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +91 -0
  236. mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +76 -0
  237. mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +70 -0
  238. mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +6 -0
  239. mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +122 -0
  240. mapproxy/test/schemas/xml.xsd +287 -0
  241. mapproxy/test/system/__init__.py +98 -0
  242. mapproxy/test/system/fixture/arcgis.yaml +57 -0
  243. mapproxy/test/system/fixture/auth.yaml +70 -0
  244. mapproxy/test/system/fixture/cache.mbtiles +0 -0
  245. mapproxy/test/system/fixture/cache_azureblob.yaml +59 -0
  246. mapproxy/test/system/fixture/cache_band_merge.yaml +73 -0
  247. mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +24 -0
  248. mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
  249. mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
  250. mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
  251. mapproxy/test/system/fixture/cache_geopackage.yaml +56 -0
  252. mapproxy/test/system/fixture/cache_grid_names.yaml +50 -0
  253. mapproxy/test/system/fixture/cache_mbtiles.yaml +28 -0
  254. mapproxy/test/system/fixture/cache_s3.yaml +58 -0
  255. mapproxy/test/system/fixture/cache_source.yaml +81 -0
  256. mapproxy/test/system/fixture/combined_sources.yaml +130 -0
  257. mapproxy/test/system/fixture/coverage.yaml +77 -0
  258. mapproxy/test/system/fixture/demo.yaml +135 -0
  259. mapproxy/test/system/fixture/dimension.yaml +59 -0
  260. mapproxy/test/system/fixture/disable_storage.yaml +25 -0
  261. mapproxy/test/system/fixture/empty_ogrdata.geojson +1 -0
  262. mapproxy/test/system/fixture/formats.yaml +72 -0
  263. mapproxy/test/system/fixture/inspire.yaml +101 -0
  264. mapproxy/test/system/fixture/inspire_full.yaml +124 -0
  265. mapproxy/test/system/fixture/kml_layer.yaml +66 -0
  266. mapproxy/test/system/fixture/layer.yaml +260 -0
  267. mapproxy/test/system/fixture/layergroups.yaml +57 -0
  268. mapproxy/test/system/fixture/layergroups_root.yaml +106 -0
  269. mapproxy/test/system/fixture/legendgraphic.yaml +93 -0
  270. mapproxy/test/system/fixture/mapnik_source.yaml +66 -0
  271. mapproxy/test/system/fixture/mapproxy_export.yaml +12 -0
  272. mapproxy/test/system/fixture/mapserver.yaml +23 -0
  273. mapproxy/test/system/fixture/minimal_cgi.py +16 -0
  274. mapproxy/test/system/fixture/mixed_mode.yaml +49 -0
  275. mapproxy/test/system/fixture/multi_cache_layers.yaml +100 -0
  276. mapproxy/test/system/fixture/multiapp1.yaml +20 -0
  277. mapproxy/test/system/fixture/multiapp2.yaml +19 -0
  278. mapproxy/test/system/fixture/renderd_client.yaml +55 -0
  279. mapproxy/test/system/fixture/scalehints.yaml +70 -0
  280. mapproxy/test/system/fixture/seed.yaml +94 -0
  281. mapproxy/test/system/fixture/seed_mapproxy.yaml +39 -0
  282. mapproxy/test/system/fixture/seed_old.yaml +12 -0
  283. mapproxy/test/system/fixture/seed_timeouts.yaml +12 -0
  284. mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +27 -0
  285. mapproxy/test/system/fixture/seedonly.yaml +51 -0
  286. mapproxy/test/system/fixture/sld.yaml +35 -0
  287. mapproxy/test/system/fixture/source_errors.yaml +84 -0
  288. mapproxy/test/system/fixture/source_errors_raise.yaml +82 -0
  289. mapproxy/test/system/fixture/tileservice_origin.yaml +26 -0
  290. mapproxy/test/system/fixture/tileservice_refresh.yaml +59 -0
  291. mapproxy/test/system/fixture/tilesource_minmax_res.yaml +22 -0
  292. mapproxy/test/system/fixture/util-conf-base-grids.yaml +5 -0
  293. mapproxy/test/system/fixture/util-conf-overwrite.yaml +13 -0
  294. mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +90 -0
  295. mapproxy/test/system/fixture/util_grids.yaml +30 -0
  296. mapproxy/test/system/fixture/util_wms_capabilities111.xml +130 -0
  297. mapproxy/test/system/fixture/util_wms_capabilities130.xml +100 -0
  298. mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +5 -0
  299. mapproxy/test/system/fixture/watermark.yaml +50 -0
  300. mapproxy/test/system/fixture/wms_srs_extent.yaml +39 -0
  301. mapproxy/test/system/fixture/wms_versions.yaml +38 -0
  302. mapproxy/test/system/fixture/wmts.yaml +134 -0
  303. mapproxy/test/system/fixture/wmts_dimensions.yaml +57 -0
  304. mapproxy/test/system/fixture/xslt_featureinfo.yaml +54 -0
  305. mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +51 -0
  306. mapproxy/test/system/test_arcgis.py +156 -0
  307. mapproxy/test/system/test_auth.py +1134 -0
  308. mapproxy/test/system/test_behind_proxy.py +75 -0
  309. mapproxy/test/system/test_bulk_meta_tiles.py +106 -0
  310. mapproxy/test/system/test_cache_azureblob.py +127 -0
  311. mapproxy/test/system/test_cache_band_merge.py +103 -0
  312. mapproxy/test/system/test_cache_geopackage.py +144 -0
  313. mapproxy/test/system/test_cache_grid_names.py +89 -0
  314. mapproxy/test/system/test_cache_mbtiles.py +85 -0
  315. mapproxy/test/system/test_cache_s3.py +115 -0
  316. mapproxy/test/system/test_cache_source.py +146 -0
  317. mapproxy/test/system/test_combined_sources.py +335 -0
  318. mapproxy/test/system/test_coverage.py +140 -0
  319. mapproxy/test/system/test_decorate_img.py +214 -0
  320. mapproxy/test/system/test_demo.py +106 -0
  321. mapproxy/test/system/test_demo_with_extra_service.py +53 -0
  322. mapproxy/test/system/test_dimensions.py +278 -0
  323. mapproxy/test/system/test_disable_storage.py +42 -0
  324. mapproxy/test/system/test_formats.py +219 -0
  325. mapproxy/test/system/test_inspire_vs.py +173 -0
  326. mapproxy/test/system/test_kml.py +262 -0
  327. mapproxy/test/system/test_layergroups.py +160 -0
  328. mapproxy/test/system/test_legendgraphic.py +308 -0
  329. mapproxy/test/system/test_mapnik.py +161 -0
  330. mapproxy/test/system/test_mapserver.py +81 -0
  331. mapproxy/test/system/test_mixed_mode_format.py +195 -0
  332. mapproxy/test/system/test_multi_cache_layers.py +167 -0
  333. mapproxy/test/system/test_multiapp.py +92 -0
  334. mapproxy/test/system/test_refresh.py +207 -0
  335. mapproxy/test/system/test_renderd_client.py +304 -0
  336. mapproxy/test/system/test_response_headers.py +54 -0
  337. mapproxy/test/system/test_scalehints.py +140 -0
  338. mapproxy/test/system/test_seed.py +422 -0
  339. mapproxy/test/system/test_seed_only.py +93 -0
  340. mapproxy/test/system/test_sld.py +120 -0
  341. mapproxy/test/system/test_source_errors.py +377 -0
  342. mapproxy/test/system/test_tilesource_minmax_res.py +54 -0
  343. mapproxy/test/system/test_tms.py +276 -0
  344. mapproxy/test/system/test_tms_origin.py +46 -0
  345. mapproxy/test/system/test_util_conf.py +304 -0
  346. mapproxy/test/system/test_util_export.py +210 -0
  347. mapproxy/test/system/test_util_grids.py +88 -0
  348. mapproxy/test/system/test_util_wms_capabilities.py +182 -0
  349. mapproxy/test/system/test_watermark.py +91 -0
  350. mapproxy/test/system/test_wms.py +1611 -0
  351. mapproxy/test/system/test_wms_srs_extent.py +165 -0
  352. mapproxy/test/system/test_wms_version.py +85 -0
  353. mapproxy/test/system/test_wmsc.py +116 -0
  354. mapproxy/test/system/test_wmts.py +334 -0
  355. mapproxy/test/system/test_wmts_dimensions.py +206 -0
  356. mapproxy/test/system/test_wmts_restful.py +198 -0
  357. mapproxy/test/system/test_xslt_featureinfo.py +425 -0
  358. mapproxy/test/test_http_helper.py +219 -0
  359. mapproxy/test/unit/__init__.py +0 -0
  360. mapproxy/test/unit/epsg +2 -0
  361. mapproxy/test/unit/polygons/polygons.dbf +0 -0
  362. mapproxy/test/unit/polygons/polygons.shp +0 -0
  363. mapproxy/test/unit/polygons/polygons.shx +0 -0
  364. mapproxy/test/unit/test_async.py +245 -0
  365. mapproxy/test/unit/test_auth.py +419 -0
  366. mapproxy/test/unit/test_cache.py +1193 -0
  367. mapproxy/test/unit/test_cache_azureblob.py +94 -0
  368. mapproxy/test/unit/test_cache_compact.py +319 -0
  369. mapproxy/test/unit/test_cache_couchdb.py +114 -0
  370. mapproxy/test/unit/test_cache_geopackage.py +221 -0
  371. mapproxy/test/unit/test_cache_redis.py +67 -0
  372. mapproxy/test/unit/test_cache_riak.py +76 -0
  373. mapproxy/test/unit/test_cache_s3.py +84 -0
  374. mapproxy/test/unit/test_cache_tile.py +427 -0
  375. mapproxy/test/unit/test_client.py +479 -0
  376. mapproxy/test/unit/test_client_arcgis.py +73 -0
  377. mapproxy/test/unit/test_client_cgi.py +136 -0
  378. mapproxy/test/unit/test_collections.py +116 -0
  379. mapproxy/test/unit/test_concat_legends.py +37 -0
  380. mapproxy/test/unit/test_conf_loader.py +1061 -0
  381. mapproxy/test/unit/test_conf_validator.py +416 -0
  382. mapproxy/test/unit/test_config.py +117 -0
  383. mapproxy/test/unit/test_decorate_img.py +185 -0
  384. mapproxy/test/unit/test_exceptions.py +258 -0
  385. mapproxy/test/unit/test_featureinfo.py +291 -0
  386. mapproxy/test/unit/test_file_lock_load.py +49 -0
  387. mapproxy/test/unit/test_geom.py +503 -0
  388. mapproxy/test/unit/test_grid.py +1258 -0
  389. mapproxy/test/unit/test_image.py +1053 -0
  390. mapproxy/test/unit/test_image_mask.py +181 -0
  391. mapproxy/test/unit/test_image_messages.py +197 -0
  392. mapproxy/test/unit/test_image_options.py +160 -0
  393. mapproxy/test/unit/test_isodate.py +122 -0
  394. mapproxy/test/unit/test_multiapp.py +163 -0
  395. mapproxy/test/unit/test_ogr_reader.py +50 -0
  396. mapproxy/test/unit/test_request.py +745 -0
  397. mapproxy/test/unit/test_request_wmts.py +178 -0
  398. mapproxy/test/unit/test_response.py +79 -0
  399. mapproxy/test/unit/test_seed.py +365 -0
  400. mapproxy/test/unit/test_seed_cachelock.py +90 -0
  401. mapproxy/test/unit/test_srs.py +215 -0
  402. mapproxy/test/unit/test_tiled_source.py +122 -0
  403. mapproxy/test/unit/test_tilefilter.py +31 -0
  404. mapproxy/test/unit/test_times.py +25 -0
  405. mapproxy/test/unit/test_timeutils.py +50 -0
  406. mapproxy/test/unit/test_util_conf_utils.py +75 -0
  407. mapproxy/test/unit/test_utils.py +476 -0
  408. mapproxy/test/unit/test_wms_capabilities.py +44 -0
  409. mapproxy/test/unit/test_wms_layer.py +113 -0
  410. mapproxy/test/unit/test_yaml.py +69 -0
  411. mapproxy/tilefilter.py +59 -0
  412. mapproxy/util/__init__.py +0 -0
  413. mapproxy/util/async_.py +227 -0
  414. mapproxy/util/collections.py +132 -0
  415. mapproxy/util/coverage.py +329 -0
  416. mapproxy/util/escape.py +10 -0
  417. mapproxy/util/ext/__init__.py +14 -0
  418. mapproxy/util/ext/dictspec/__init__.py +1 -0
  419. mapproxy/util/ext/dictspec/spec.py +124 -0
  420. mapproxy/util/ext/dictspec/test/__init__.py +0 -0
  421. mapproxy/util/ext/dictspec/test/test_validator.py +274 -0
  422. mapproxy/util/ext/dictspec/validator.py +189 -0
  423. mapproxy/util/ext/local.py +196 -0
  424. mapproxy/util/ext/lockfile.py +138 -0
  425. mapproxy/util/ext/odict.py +330 -0
  426. mapproxy/util/ext/serving.py +508 -0
  427. mapproxy/util/ext/tempita/__init__.py +1174 -0
  428. mapproxy/util/ext/tempita/_looper.py +163 -0
  429. mapproxy/util/ext/tempita/compat3.py +46 -0
  430. mapproxy/util/ext/wmsparse/__init__.py +3 -0
  431. mapproxy/util/ext/wmsparse/duration.py +597 -0
  432. mapproxy/util/ext/wmsparse/parse.py +305 -0
  433. mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
  434. mapproxy/util/ext/wmsparse/test/test_parse.py +162 -0
  435. mapproxy/util/ext/wmsparse/test/test_util.py +23 -0
  436. mapproxy/util/ext/wmsparse/test/wms-large-111.xml +2114 -0
  437. mapproxy/util/ext/wmsparse/test/wms-omniscale-111.xml +90 -0
  438. mapproxy/util/ext/wmsparse/test/wms-omniscale-130.xml +120 -0
  439. mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +386 -0
  440. mapproxy/util/ext/wmsparse/util.py +187 -0
  441. mapproxy/util/fs.py +156 -0
  442. mapproxy/util/geom.py +295 -0
  443. mapproxy/util/lib.py +115 -0
  444. mapproxy/util/lock.py +163 -0
  445. mapproxy/util/ogr.py +231 -0
  446. mapproxy/util/py.py +81 -0
  447. mapproxy/util/times.py +75 -0
  448. mapproxy/util/yaml.py +56 -0
  449. mapproxy/version.py +31 -0
  450. mapproxy/wsgiapp.py +164 -0
  451. mapproxy-1.16.1.dist-info/METADATA +151 -0
  452. mapproxy-1.16.1.dist-info/RECORD +458 -0
  453. mapproxy-1.16.1.dist-info/WHEEL +5 -0
  454. mapproxy-1.16.1.dist-info/entry_points.txt +3 -0
  455. mapproxy-1.16.1.dist-info/licenses/AUTHORS.txt +33 -0
  456. mapproxy-1.16.1.dist-info/licenses/COPYING.txt +60 -0
  457. mapproxy-1.16.1.dist-info/licenses/LICENSE.txt +202 -0
  458. mapproxy-1.16.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,524 @@
1
+ <!-- NOTE: comments in this Document Type Definition impose additional
2
+ constraints beyond those codified in the DTD syntax. A conformant Web Map
3
+ Server must provide Capabilities XML that (1) validates against the DTD and
4
+ (2) does not violate the constraints stated in comments herein. -->
5
+
6
+ <!-- The parent element of the Capabilities document includes as children a
7
+ Service element with general information about the server and a Capability
8
+ element with specific information about the kinds of functionality offered by
9
+ the server. -->
10
+ <!ELEMENT WMT_MS_Capabilities (Service, Capability) >
11
+
12
+ <!-- The version attribute specifies the specification revision to which this
13
+ DTD applies. Its format is one, two or three integers separated by periods:
14
+ "x", or "x.y", or "x.y.z", with the most significant number appearing first.
15
+ Future revisions are guaranteed to be numbered in monotonically increasing
16
+ fashion, though gaps may appear in the sequence. All known versions may
17
+ be found at http://www.digitalearth.gov/wmt/xml/ -->
18
+ <!-- The updateSequence attribute is a sequence number for managing
19
+ propagation of the contents of this document. For example, if a Map Server
20
+ adds some data layers it can increment the update sequence to inform catalog
21
+ servers that their previously cached versions are now stale. The format is a
22
+ positive integer. -->
23
+ <!ATTLIST WMT_MS_Capabilities
24
+ version CDATA #FIXED "1.0.7"
25
+ updateSequence CDATA "0">
26
+
27
+ <!-- This WMT-wide list of possible output formats can be redefined by
28
+ individual servers; see the sample XML. -->
29
+ <!ENTITY % KnownFormats " GIF | JPEG | PNG | WebCGM | SVG | HDF-EOS
30
+ | GML.1 | GML.2 | GML.3 | WBMP
31
+ | WMS_XML | MIME | INIMAGE | TIFF | GeoTIFF | PPM | BLANK " >
32
+
33
+ <!-- The Service element provides metadata for the service as a whole. -->
34
+ <!ELEMENT Service (Name, Title, Abstract?, KeywordList?, OnlineResource,
35
+ ContactInformation, Fees?, AccessConstraints?) >
36
+
37
+ <!-- A service name defined within the Web Mapping Specification namespace.
38
+ Currently only the name "GetMap" is defined. -->
39
+ <!ELEMENT Name (#PCDATA) >
40
+
41
+ <!-- A human-readable title to briefly identify this server in menus. -->
42
+ <!ELEMENT Title (#PCDATA) >
43
+
44
+ <!-- A descriptive narrative for more information about this server. -->
45
+ <!ELEMENT Abstract (#PCDATA) >
46
+
47
+ <!-- List of keywords or keyword phrases to help catalog searching.
48
+ Currently, no controlled vocabulary has been defined. -->
49
+ <!ELEMENT KeywordList (Keyword*) >
50
+
51
+ <!-- A single keyword or phrase. -->
52
+ <!ELEMENT Keyword (#PCDATA) >
53
+
54
+ <!-- An HTTP URL of a service. This may appear in several places:
55
+ - The Service element describing the service as a whole (in which case the
56
+ OnlineResource may be, for example, the top-level "home page" of the service
57
+ provider).
58
+ - The URLs for HTTP GET and POST requests of the specific interfaces offered
59
+ by the service (e.g., the URL to use for a GetMap request).
60
+ - The Attribution information for Layer(s).
61
+ The use of an xlink:href attribute implies the HTTP Distributed Computing Platform;
62
+ currently, no non-HTTP platforms have been specified. -->
63
+ <!ELEMENT OnlineResource EMPTY>
64
+ <!ATTLIST OnlineResource xlink:href CDATA #REQUIRED
65
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink" >
66
+
67
+ <!ELEMENT ContactInformation (ContactPersonPrimary?, ContactPosition?,
68
+ ContactAddress?, ContactVoiceTelephone?,
69
+ ContactFacsimileTelephone?,
70
+ ContactElectronicMailAddress?) >
71
+
72
+ <!--The primary contact person.-->
73
+ <!ELEMENT ContactPersonPrimary (ContactPerson, ContactOrganization) >
74
+
75
+ <!--The person to contact.-->
76
+ <!ELEMENT ContactPerson (#PCDATA) >
77
+
78
+ <!--The organization supplying the service.-->
79
+ <!ELEMENT ContactOrganization (#PCDATA) >
80
+
81
+ <!ELEMENT ContactPosition (#PCDATA) >
82
+
83
+ <!--The address for the contact supplying the service.-->
84
+ <!ELEMENT ContactAddress (AddressType,Address,City,StateOrProvince,PostCode,
85
+ Country) >
86
+
87
+ <!--The type of address.-->
88
+ <!ELEMENT AddressType (#PCDATA) >
89
+
90
+ <!--The street address.-->
91
+ <!ELEMENT Address (#PCDATA) >
92
+
93
+ <!--The address city.-->
94
+ <!ELEMENT City (#PCDATA) >
95
+
96
+ <!--The state or province.-->
97
+ <!ELEMENT StateOrProvince (#PCDATA) >
98
+
99
+ <!--The zip or postal code.-->
100
+ <!ELEMENT PostCode (#PCDATA) >
101
+
102
+ <!--The address country.-->
103
+ <!ELEMENT Country (#PCDATA) >
104
+
105
+ <!--Contact telephone number.-->
106
+ <!ELEMENT ContactVoiceTelephone (#PCDATA) >
107
+
108
+ <!--The contact fax number.-->
109
+ <!ELEMENT ContactFacsimileTelephone (#PCDATA) >
110
+
111
+ <!--The e-mail address for the contact.-->
112
+ <!ELEMENT ContactElectronicMailAddress (#PCDATA) >
113
+
114
+
115
+
116
+ <!-- Elements indicating what fees or access constraints are imposed.
117
+ The reserved word "none" indicates no constraint exists. -->
118
+ <!ELEMENT Fees (#PCDATA)>
119
+ <!ELEMENT AccessConstraints (#PCDATA)>
120
+
121
+ <!-- A Capability lists available request types, how exceptions
122
+ may be reported, and whether any vendor-specific capabilities are defined. It
123
+ also includes an optional list of map layers available from this server. -->
124
+
125
+ <!-- The optional VendorSpecificCapabilities element lists any capabilities
126
+ unique to a particular Map Server. Because the information is not known a
127
+ priori, it cannot be constrained by this particular DTD. A vendor-specific
128
+ DTD fragment must be supplied at the start of the XML Capabilities document,
129
+ after the reference to the general WMT_MS_Capabilities DTD. See the sample
130
+ XML for further information. -->
131
+
132
+ <!ELEMENT Capability
133
+ (Request, Exception?, VendorSpecificCapabilities?,
134
+ UserDefinedSymbolization?, Layer?) >
135
+
136
+ <!-- Available WMT-defined request types are listed here.
137
+ At least one of the values is required, but more than one
138
+ may be given. -->
139
+ <!ELEMENT Request (Map | Coverage | Capabilities | FeatureInfo | DescribeLayer)+ >
140
+
141
+ <!-- For each request method offered by the server, list the
142
+ available output formats and the supported distributed
143
+ computing platforms (DCPs). (The xmlns:xlink attribute is a
144
+ required XML namespace declaration; leave it as-is.) Example:
145
+ <Map>
146
+ <Format><PNG /><JPEG /><GML.1 /></Format>
147
+ <DCPType><HTTP><Get>
148
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
149
+ xlink:href="URL" />
150
+ </Get></HTTP></DCPType>
151
+ </Map>
152
+ -->
153
+
154
+ <!-- GetMap interface: Presence of the Map element means this server can
155
+ generate a map of a specified area, either as a picture or a feature
156
+ collection -->
157
+ <!ELEMENT Map (Format, DCPType+)>
158
+
159
+ <!-- GetCoverage interface: Presence of the Coverage element means this server can
160
+ serve numeric values representing gridded coverage data over a specified area -->
161
+ <!ELEMENT Coverage (Format, DCPType+)>
162
+
163
+ <!-- GetCapabilities interface: Presence of the Capabilities element means
164
+ this server can generate a description of its abilities and holdings formatted
165
+ in XML that complies with this DTD. -->
166
+ <!ELEMENT Capabilities (Format, DCPType+)>
167
+
168
+ <!-- GetFeatureInfo interface: Presence of the FeatureInfo element means this
169
+ server can return information about a specific feature given a valid map
170
+ request and a location on that map. -->
171
+ <!ELEMENT FeatureInfo (Format, DCPType+)>
172
+
173
+ <!-- DescribeLayer interface: Presence of the DescribeLayer
174
+ element means this server can return describe a layer
175
+ according to the SLD spec [help me out with the right
176
+ verbiage here - no chance to plumb SLD just now] -->
177
+ <!ELEMENT DescribeLayer (Format, DCPType+)>
178
+
179
+ <!-- Available Distributed Computing Platforms (DCPs) are
180
+ listed here. At present, only HTTP is defined. -->
181
+ <!ELEMENT DCPType (HTTP) >
182
+
183
+ <!-- Available HTTP request methods. -->
184
+ <!ELEMENT HTTP (Get | Post)+ >
185
+
186
+ <!-- HTTP request methods. The onlineResource attribute indicates the URL
187
+ prefix for HTTP GET requests (everything before the question mark and query
188
+ string: http://hostname[:port]/path/scriptname); for HTTP POST requests,
189
+ onlineResource is the complete URL. The HTTP GET syntax for Map, Capabilities
190
+ and FeatureInfo requests has been well defined and is described in the OGC
191
+ Web Map Server Interface Specification. The POST formalism, wherein GetMap
192
+ arguments are encoded in XML and POSTed to the server, has not yet been fully
193
+ developed. -->
194
+ <!ELEMENT Get (OnlineResource) >
195
+ <!ELEMENT Post (OnlineResource) >
196
+
197
+ <!-- Available formats. Not all formats are relevant to all requests.
198
+ Individual servers MAY add new formats as shown in the sample XML accompanying
199
+ this DTD. -->
200
+ <!ELEMENT Format ( %KnownFormats; )+ >
201
+ <!ELEMENT GIF EMPTY> <!-- Graphics Interchange Format -->
202
+ <!ELEMENT JPEG EMPTY> <!-- Joint Photographics Expert Group -->
203
+ <!ELEMENT PNG EMPTY> <!-- Portable Network Graphics -->
204
+ <!ELEMENT PPM EMPTY> <!-- Portable PixMap -->
205
+ <!ELEMENT TIFF EMPTY> <!-- Tagged Image File Format -->
206
+ <!ELEMENT GeoTIFF EMPTY> <!-- Geographic TIFF -->
207
+ <!ELEMENT HDF-EOS EMPTY> <!-- Hierarchical Data Format for Earth Observing System -->
208
+ <!ELEMENT WebCGM EMPTY> <!-- Web Computer Graphics Metafile -->
209
+ <!ELEMENT SVG EMPTY> <!-- Scalable Vector Graphics -->
210
+ <!ELEMENT WMS_XML EMPTY> <!-- eXtensible Markup Language -->
211
+ <!ELEMENT GML.1 EMPTY> <!-- Geography Markup Language, profile 1 -->
212
+ <!ELEMENT GML.2 EMPTY> <!-- Geography Markup Language, profile 2 -->
213
+ <!ELEMENT GML.3 EMPTY> <!-- Geography Markup Language, profile 3 -->
214
+ <!ELEMENT WBMP EMPTY> <!-- Wireless Access Protocol (WAP) Bitmap -->
215
+ <!ELEMENT MIME EMPTY> <!-- Multipurpose Internet Mail Extensions -->
216
+ <!ELEMENT INIMAGE EMPTY> <!-- display text in the returned image -->
217
+ <!ELEMENT BLANK EMPTY> <!-- return an image with all pixels transparent if
218
+ supported by the image format, otherwise all
219
+ pixels set to the BGCOLOR if present, otherwise
220
+ all pixels set to the same (arbitrary) value -->
221
+
222
+ <!-- An Exception element indicates which output formats are supported
223
+ for reporting problems encountered when executing a request. Available
224
+ Exception formats MUST include one or more of WMS_XML, INIMAGE, or BLANK.
225
+ Example: <Exception><Format><INIMAGE /><WMS_XML /></Format></Exception>. -->
226
+ <!ELEMENT Exception (Format)>
227
+
228
+ <!-- Optional user-defined symbolization -->
229
+ <!ELEMENT UserDefinedSymbolization EMPTY >
230
+ <!ATTLIST UserDefinedSymbolization
231
+ SupportSLD (0 | 1) "1"
232
+ UserLayer (0 | 1) "1"
233
+ UserStyle (0 | 1) "1"
234
+ RemoteWFS (0 | 1) "1" >
235
+
236
+ <!-- Nested list of zero or more map Layers offered by this server. The Layer
237
+ element can be omitted if the server has no layers (for example, if it offers
238
+ only geoprocessing services but no actual data). -->
239
+
240
+ <!-- A Layer element has two functions: it either refers to a map layer which
241
+ can be requested by Name in the LAYERS parameter of a GetMap request, or it is
242
+ a category Title for all the layers nested within. In the latter case, the
243
+ category itself MAY include a Name by which all of the nested layers can be
244
+ requested at once. For example, a parent layer "Roads" may have children
245
+ "Interstates" and "County Roads" and allow the user to request either child
246
+ individually or both together. -->
247
+
248
+ <!-- A Map Server which advertises a Layer containing a Name element MUST be
249
+ able to accept that Name as the value of LAYERS argument in a GetMap request
250
+ and return the corresponding map. A Viewer Client MUST NOT attempt to request
251
+ a Layer that has a Title but no Name. -->
252
+
253
+ <!-- A Map Server MUST include at least one <Layer> element for each map layer
254
+ offered. If desired, data layers MAY be repeated in different categories when
255
+ relevant. A Layer element MAY state the Name by which a map of the layer is
256
+ requested, MUST give a Title to be used in human-readable menus, and MAY
257
+ include: a human-readable Abstract containing further description, available
258
+ Spatial Reference Systems (SRS), bounding boxes in Lat/Lon and SRS-specific
259
+ coordinates indicating the available geographic coverage, styles in which the
260
+ layer is available, a URL for more information about the data, and a hint
261
+ concerning appropriate map scales for displaying this layer. Use of the
262
+ nesting hierarchy is optional. -->
263
+
264
+ <!-- The following table specifies the number and source of the various
265
+ elements (and one attribute) describing a Layer that has a Name. Without a
266
+ Name, the Layer is merely a category title and all other elements are
267
+ optional; if present, some of those elements may be inherited by children as
268
+ described in the table.
269
+
270
+ inherit
271
+ from
272
+ element number parent? comments
273
+ ======= ====== ======= ========
274
+ Name 1 - this table only applies to Named Layers
275
+ (those which can be requested in a GetMap call)
276
+ no default
277
+
278
+ Title 1 - required in each Layer; no default
279
+
280
+ Abstract 0/1 - optional; no default
281
+
282
+ KeywordList 0/1 - optional; no default
283
+
284
+ SRS 1 add one list is required; default from parent;
285
+ list may include multiple whitespace-separated
286
+ values
287
+
288
+ LatLonBoundingBox 1 replace exactly one is required; default from parent
289
+
290
+ BoundingBox 0+ replace one is required per SRS other than EPSG:4326;
291
+ default from parent
292
+
293
+ Dimension 0+ add optional; default from parent
294
+
295
+ Extent 0+ replace optional; default from parent; no more than one per
296
+ declared Dimension
297
+
298
+ Attribution 0/1 replace optional; default from parent
299
+
300
+ MetadataURL 0+ - optional; no default
301
+
302
+ DataURL 0/1 - optional; no default
303
+
304
+ FeatureListURL 0/1 - optional; no default
305
+
306
+ Style 0+ add optional; default from parent
307
+
308
+ ScaleHint 0/1 replace optional; default from parent
309
+
310
+ Layer 0+ - optional; no default;
311
+ if present, each is a "child" of the enclosing
312
+ Layer and inherits some default values as
313
+ described in this table
314
+
315
+ queryable 1 replace optional; default is "0" (not queryable)
316
+ (attribute) or parent value if present
317
+
318
+
319
+ -->
320
+
321
+ <!ELEMENT Layer ( Name?, Title, Abstract?, KeywordList?, SRS?,
322
+ LatLonBoundingBox?, BoundingBox*, Dimension*, Extent*,
323
+ Attribution?, MetadataURL*, DataURL?, FeatureListURL?,
324
+ Style*, ScaleHint?, Layer* ) >
325
+
326
+ <!-- Layer attributes (default=0):
327
+ * If queryable=1, then WMS implements the GetFeatureInfo
328
+ operation on this Layer.
329
+ * If opaque=1, then this layer is an area-filling coverage
330
+ with significant areas that cannot be made transparent.
331
+ * If noSubsets=1, then this layer cannot be displayed using a
332
+ bounding box values different than the ones declared in this XML.
333
+ * If fixedWidth and fixedHeight are nonzero, then the Layer is
334
+ only available in a single size.
335
+ -->
336
+ <!ATTLIST Layer queryable (0 | 1) "0"
337
+ opaque (0 | 1) "0"
338
+ noSubsets (0 | 1) "0"
339
+ fixedWidth CDATA #IMPLIED
340
+ fixedHeight CDATA #IMPLIED >
341
+
342
+ <!-- Listing of available Spatial Reference Systems (SRS).
343
+ * The root Layer element must include a list of all SRSes which
344
+ are common to *all* subsidiary layers. This allows clients
345
+ to quickly determine that a server cannot possibly satisfy a
346
+ request for a particular SRS. Use an empty element if there
347
+ is no common SRS.
348
+ * Layer-specific SRS: Optionally, layers may add to the global SRS list, or to
349
+ the list inherited from a parent layer as described above.
350
+ Any duplication should be ignored by clients. That is, a particular
351
+ layer may list all of its SRSes, even if it repeats
352
+ information in the top-level SRS.
353
+
354
+ The content of the SRS element is a free-text list of SRS names separated by
355
+ whitespace. A name includes a namespace prefix, a colon, and one or more
356
+ parameter values. Currently defined namespaces are:
357
+
358
+ prefix parameters comment
359
+ ====== ========== =======
360
+ EPSG EPSG code European Petroleum Survey Group geodesy parameters
361
+ http://www.petroconsultants.com/products/geodetic.html
362
+ Examples: 'EPSG:4326' is WGS84 lat/lon,
363
+ 'EPSG:26986' is NAD83 / Massachusetts Mainland.
364
+
365
+ AUTO WMT code, WMT list of "automatic" projections. WMT code:
366
+ EPSG units, an integer identifier assigned by WMT (see
367
+ Longitude, http://www.digitalearth.gov/wmt/auto.html). EPSG units:
368
+ Latitude one of the EPSG codes for identifying units,
369
+ indicating what units are to be used in Bounding Boxes.
370
+ Longitude: central meridian of the projection (degrees).
371
+ Latitude: central latitude of the projection (degrees).
372
+ Example: 'AUTO:42003,9001,-100,45' is auto orthographic
373
+ projection, bbox units in meters, center at 100W 45N.
374
+ The bounding box is measured in a plane perpendicular to
375
+ the line of sight, *not* directly on the Earth.
376
+ -->
377
+
378
+ <!ELEMENT SRS (#PCDATA) >
379
+
380
+ <!-- The LatLonBoundingBox attributes indicate the edges of the enclosing
381
+ rectangle in latitude/longitude decimal degrees (as in SRS EPSG:4326 [WGS1984
382
+ lat/lon]). LatLonBoundingBox MUST be supplied regardless of what SRS the map
383
+ server may support, but it MAY be approximate if EPSG:4326 is not supported.
384
+ Its purpose is to facilitate geographic searches without requiring coordinate
385
+ transformations by the search engine. -->
386
+ <!ELEMENT LatLonBoundingBox EMPTY>
387
+ <!ATTLIST LatLonBoundingBox
388
+ minx CDATA #REQUIRED
389
+ miny CDATA #REQUIRED
390
+ maxx CDATA #REQUIRED
391
+ maxy CDATA #REQUIRED>
392
+
393
+ <!-- The BoundingBox attributes indicate the edges of the bounding box
394
+ in units of the specified spatial reference system. -->
395
+ <!ELEMENT BoundingBox EMPTY>
396
+ <!ATTLIST BoundingBox
397
+ SRS CDATA #REQUIRED
398
+ minx CDATA #REQUIRED
399
+ miny CDATA #REQUIRED
400
+ maxx CDATA #REQUIRED
401
+ maxy CDATA #REQUIRED>
402
+
403
+ <!-- The Dimension element declares the _existence_ of a dimension in an
404
+ abstract sense for the enclosed Layer(s). See
405
+ http://www.digitalearth.gov/wmt/md/ for details. -->
406
+ <!ELEMENT Dimension EMPTY >
407
+ <!ATTLIST Dimension
408
+ name CDATA #REQUIRED
409
+ units CDATA #REQUIRED
410
+ unitSymbol CDATA #IMPLIED>
411
+
412
+ <!-- The Extent element indicates what _values_ along a dimension are
413
+ appropriate for the enclosed Layer(s). See
414
+ http://www.digitalearth.gov/wmt/md/ for details. The 'name' attribute must
415
+ have been defined within a Dimension element. The 'name' can be used
416
+ case-insensitively in a GetMap request so that Clients can request a specific
417
+ value. The 'default' attribute indicates what value will be used if none is
418
+ specified by the Client. A 'default' is strongly recommended but optional.
419
+ If there is no declared default the Server MUST NOT send a default map;
420
+ instead, the Server MUST raise an Exception to indicate that a value was
421
+ required. -->
422
+ <!ELEMENT Extent (#PCDATA) >
423
+ <!ATTLIST Extent
424
+ name CDATA #REQUIRED
425
+ default CDATA #IMPLIED>
426
+
427
+ <!-- A Map Server MAY use Attribution to indicate and give credit to the
428
+ provider of a Layer or collection of Layers. The provider's URL, descriptive
429
+ title string, and/or logo image URL may be supplied. Client applications may
430
+ choose to display one or more of these items. The LogoURL width and height
431
+ assist client applications in laying out space to display the logo. -->
432
+ <!ELEMENT Attribution ( Title?, OnlineResource?, LogoURL? )>
433
+ <!ELEMENT LogoURL (#PCDATA) >
434
+ <!ATTLIST LogoURL
435
+ width NMTOKEN #REQUIRED
436
+ height NMTOKEN #REQUIRED>
437
+
438
+ <!-- A Map Server MAY use zero or more MetadataURL elements to offer detailed,
439
+ standardized metadata about the data underneath a particular layer. The type
440
+ attribute indicates the standard to which the metadata complies; the format
441
+ attribute indicates how the metadata is structured. Two types are defined at
442
+ present: 'TC211' = ISO TC211 19115; 'FGDC' = FGDC CSDGM. -->
443
+ <!ELEMENT MetadataURL (#PCDATA) >
444
+ <!ATTLIST MetadataURL
445
+ type ( TC211 | FGDC ) #REQUIRED
446
+ format ( XML | SGML | TXT ) #REQUIRED>
447
+
448
+ <!-- A Map Server MAY use DataURL to offer more information about the data
449
+ underneath a particular layer. While the semantics are not well-defined, as
450
+ long as the results of an HTTP GET request against the DataURL are properly
451
+ MIME-typed, Viewer Clients and Cascading Map Servers can make use of this. -->
452
+ <!ELEMENT DataURL (#PCDATA) >
453
+
454
+ <!-- A Map Server MAY use FeatureListURL to point to a GML-encoded enumeration
455
+ of the features represented in a Layer. An attribute indicates the format
456
+ of the feature list. -->
457
+ <!ELEMENT FeatureListURL (#PCDATA) >
458
+ <!ATTLIST FeatureListURL
459
+ format ( %KnownFormats; ) #REQUIRED>
460
+
461
+ <!-- A Style element lists the name by which a style is requested and a
462
+ human-readable title for pick lists, optionally (and ideally) provides a
463
+ human-readable description, and optionally gives a style URL. If a Layer is
464
+ offered in only a single Style, the Map Server MAY choose not to give it a
465
+ name. Nevertheless, when handling a GetMap request a server MUST accept ''
466
+ (null) and 'default' in the STYLES parameter as synonyms for the default (or
467
+ only) style. -->
468
+ <!ELEMENT Style ( Name, Title, Abstract?,
469
+ LegendURL*, StyleSheetURL?, StyleURL? ) >
470
+
471
+ <!-- A Map Server MAY use zero or more LegendURL elements to provide an
472
+ image(s) of a legend, or a legend encoded as GML, relevant to each Style of a
473
+ Layer. An attribute indicates the media type of the legend; optional width
474
+ and height are encouraged for image types to assist client applications in
475
+ laying out space to display the legend. -->
476
+ <!ELEMENT LegendURL (#PCDATA) >
477
+ <!ATTLIST LegendURL
478
+ format ( %KnownFormats; ) #REQUIRED
479
+ width NMTOKEN #IMPLIED
480
+ height NMTOKEN #IMPLIED>
481
+
482
+ <!-- A Map Server MAY use StyleSheeetURL to provide symbology information for
483
+ each Style of a Layer encoded as XML (e.g., in GML format). An attribute
484
+ indicates the type of stylesheet at the specified URL; only XSL is presently
485
+ defined. -->
486
+ <!ELEMENT StyleSheetURL (#PCDATA) >
487
+ <!ATTLIST StyleSheetURL
488
+ format ( XSL ) #REQUIRED>
489
+
490
+ <!-- A Map Server MAY use StyleURL to offer more information about the data or
491
+ symbology underlying a particular Style. While the semantics are not
492
+ well-defined, as long as the results of an HTTP GET request against the
493
+ StyleURL are properly MIME-typed, Viewer Clients and Cascading Map Servers can
494
+ make use of this. A possible use could be to allow a Map Server to provide
495
+ legend information. -->
496
+ <!ELEMENT StyleURL (#PCDATA) >
497
+
498
+ <!-- Minimum and maximum scale hints for which it is appropriate to
499
+ display this layer. It is STRONGLY RECOMMENDED that for Picture Case
500
+ return formats the min and max values be expressed as ground distance
501
+ in meters of a southwest to northeast diagonal of the pixel whose X
502
+ coordinate is floor(width/2) and whose Y coordinate is floor(height/2).
503
+
504
+ In the figure below, the X is in the pixel whose diagonal measurement
505
+ is used.
506
+
507
+ +===+===+===+ +===+===+===+===+
508
+ | | | | | | | | |
509
+ +===+===+===+ +===+===+===+===+
510
+ | | X | | | | X | | |
511
+ +===+===+===+ +===+===+===+===+
512
+ | | | | | | | | |
513
+ +===+===+===+ +===+===+===+===+
514
+ | | | | |
515
+ +===+===+===+===+
516
+
517
+ It is understood that this definition is not geodetically precise, but
518
+ at the same time the hope is that by including it, conventions will
519
+ develop around its use which can be later specified more clearly. -->
520
+ <!ELEMENT ScaleHint EMPTY>
521
+ <!ATTLIST ScaleHint min CDATA #REQUIRED max CDATA #REQUIRED>
522
+
523
+
524
+