MapProxy 2.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. MapProxy-2.1.0.dist-info/AUTHORS.txt +33 -0
  2. MapProxy-2.1.0.dist-info/COPYING.txt +60 -0
  3. MapProxy-2.1.0.dist-info/LICENSE.txt +202 -0
  4. MapProxy-2.1.0.dist-info/METADATA +165 -0
  5. MapProxy-2.1.0.dist-info/RECORD +459 -0
  6. MapProxy-2.1.0.dist-info/WHEEL +5 -0
  7. MapProxy-2.1.0.dist-info/entry_points.txt +4 -0
  8. MapProxy-2.1.0.dist-info/top_level.txt +1 -0
  9. mapproxy/__init__.py +0 -0
  10. mapproxy/cache/__init__.py +36 -0
  11. mapproxy/cache/azureblob.py +145 -0
  12. mapproxy/cache/base.py +120 -0
  13. mapproxy/cache/compact.py +665 -0
  14. mapproxy/cache/couchdb.py +301 -0
  15. mapproxy/cache/dummy.py +36 -0
  16. mapproxy/cache/file.py +200 -0
  17. mapproxy/cache/geopackage.py +647 -0
  18. mapproxy/cache/legend.py +87 -0
  19. mapproxy/cache/mbtiles.py +411 -0
  20. mapproxy/cache/meta.py +80 -0
  21. mapproxy/cache/path.py +261 -0
  22. mapproxy/cache/redis.py +152 -0
  23. mapproxy/cache/renderd.py +100 -0
  24. mapproxy/cache/riak.py +206 -0
  25. mapproxy/cache/s3.py +209 -0
  26. mapproxy/cache/tile.py +736 -0
  27. mapproxy/client/__init__.py +0 -0
  28. mapproxy/client/arcgis.py +82 -0
  29. mapproxy/client/cgi.py +141 -0
  30. mapproxy/client/http.py +295 -0
  31. mapproxy/client/log.py +33 -0
  32. mapproxy/client/tile.py +158 -0
  33. mapproxy/client/wms.py +255 -0
  34. mapproxy/compat/__init__.py +0 -0
  35. mapproxy/compat/image.py +86 -0
  36. mapproxy/config/__init__.py +22 -0
  37. mapproxy/config/config-schema.json +813 -0
  38. mapproxy/config/config.py +213 -0
  39. mapproxy/config/coverage.py +108 -0
  40. mapproxy/config/defaults.py +102 -0
  41. mapproxy/config/loader.py +2399 -0
  42. mapproxy/config/spec.py +657 -0
  43. mapproxy/config/validator.py +242 -0
  44. mapproxy/config_template/__init__.py +0 -0
  45. mapproxy/config_template/base_config/config.wsgi +10 -0
  46. mapproxy/config_template/base_config/full_example.yaml +598 -0
  47. mapproxy/config_template/base_config/full_seed_example.yaml +79 -0
  48. mapproxy/config_template/base_config/log.ini +35 -0
  49. mapproxy/config_template/base_config/mapproxy.yaml +60 -0
  50. mapproxy/config_template/base_config/seed.yaml +27 -0
  51. mapproxy/exception.py +149 -0
  52. mapproxy/featureinfo.py +251 -0
  53. mapproxy/grid.py +1199 -0
  54. mapproxy/image/__init__.py +549 -0
  55. mapproxy/image/fonts/DejaVuSans.ttf +0 -0
  56. mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
  57. mapproxy/image/fonts/LICENSE +99 -0
  58. mapproxy/image/fonts/__init__.py +0 -0
  59. mapproxy/image/mask.py +79 -0
  60. mapproxy/image/merge.py +323 -0
  61. mapproxy/image/message.py +357 -0
  62. mapproxy/image/opts.py +185 -0
  63. mapproxy/image/tile.py +171 -0
  64. mapproxy/image/transform.py +350 -0
  65. mapproxy/layer.py +489 -0
  66. mapproxy/multiapp.py +230 -0
  67. mapproxy/proj.py +309 -0
  68. mapproxy/request/__init__.py +18 -0
  69. mapproxy/request/arcgis.py +268 -0
  70. mapproxy/request/base.py +466 -0
  71. mapproxy/request/tile.py +131 -0
  72. mapproxy/request/wms/__init__.py +829 -0
  73. mapproxy/request/wms/exception.py +107 -0
  74. mapproxy/request/wmts.py +442 -0
  75. mapproxy/response.py +237 -0
  76. mapproxy/script/__init__.py +0 -0
  77. mapproxy/script/conf/__init__.py +0 -0
  78. mapproxy/script/conf/app.py +222 -0
  79. mapproxy/script/conf/caches.py +44 -0
  80. mapproxy/script/conf/geopackage.py +136 -0
  81. mapproxy/script/conf/layers.py +54 -0
  82. mapproxy/script/conf/seeds.py +36 -0
  83. mapproxy/script/conf/sources.py +88 -0
  84. mapproxy/script/conf/utils.py +148 -0
  85. mapproxy/script/defrag.py +187 -0
  86. mapproxy/script/export.py +337 -0
  87. mapproxy/script/grids.py +198 -0
  88. mapproxy/script/scales.py +134 -0
  89. mapproxy/script/util.py +410 -0
  90. mapproxy/script/wms_capabilities.py +160 -0
  91. mapproxy/seed/__init__.py +0 -0
  92. mapproxy/seed/cachelock.py +127 -0
  93. mapproxy/seed/cleanup.py +191 -0
  94. mapproxy/seed/config.py +481 -0
  95. mapproxy/seed/script.py +391 -0
  96. mapproxy/seed/seeder.py +551 -0
  97. mapproxy/seed/spec.py +66 -0
  98. mapproxy/seed/util.py +266 -0
  99. mapproxy/service/__init__.py +14 -0
  100. mapproxy/service/base.py +45 -0
  101. mapproxy/service/demo.py +364 -0
  102. mapproxy/service/kml.py +333 -0
  103. mapproxy/service/ows.py +39 -0
  104. mapproxy/service/template_helper.py +55 -0
  105. mapproxy/service/templates/demo/capabilities_demo.html +18 -0
  106. mapproxy/service/templates/demo/demo.html +181 -0
  107. mapproxy/service/templates/demo/openlayers-demo.cfg +16 -0
  108. mapproxy/service/templates/demo/static/img/blank.gif +0 -0
  109. mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
  110. mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
  111. mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
  112. mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
  113. mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
  114. mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
  115. mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
  116. mapproxy/service/templates/demo/static/logo.png +0 -0
  117. mapproxy/service/templates/demo/static/ol.css +345 -0
  118. mapproxy/service/templates/demo/static/ol.js +4 -0
  119. mapproxy/service/templates/demo/static/proj4.min.js +1 -0
  120. mapproxy/service/templates/demo/static/proj4defs.js +1 -0
  121. mapproxy/service/templates/demo/static/site.css +137 -0
  122. mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
  123. mapproxy/service/templates/demo/static/theme/default/google.css +17 -0
  124. mapproxy/service/templates/demo/static/theme/default/ie6-style.css +10 -0
  125. mapproxy/service/templates/demo/static/theme/default/style.css +482 -0
  126. mapproxy/service/templates/demo/static.html +34 -0
  127. mapproxy/service/templates/demo/tms_demo.html +117 -0
  128. mapproxy/service/templates/demo/wms_demo.html +144 -0
  129. mapproxy/service/templates/demo/wmts_demo.html +118 -0
  130. mapproxy/service/templates/tms_capabilities.xml +13 -0
  131. mapproxy/service/templates/tms_exception.xml +4 -0
  132. mapproxy/service/templates/tms_root_resource.xml +7 -0
  133. mapproxy/service/templates/tms_tilemap_capabilities.xml +14 -0
  134. mapproxy/service/templates/wms100capabilities.xml +112 -0
  135. mapproxy/service/templates/wms100exception.xml +4 -0
  136. mapproxy/service/templates/wms110capabilities.xml +152 -0
  137. mapproxy/service/templates/wms110exception.xml +5 -0
  138. mapproxy/service/templates/wms111capabilities.xml +183 -0
  139. mapproxy/service/templates/wms111exception.xml +5 -0
  140. mapproxy/service/templates/wms130capabilities.xml +326 -0
  141. mapproxy/service/templates/wms130exception.xml +8 -0
  142. mapproxy/service/templates/wmts100capabilities.xml +155 -0
  143. mapproxy/service/templates/wmts100exception.xml +9 -0
  144. mapproxy/service/tile.py +540 -0
  145. mapproxy/service/wms.py +868 -0
  146. mapproxy/service/wmts.py +387 -0
  147. mapproxy/source/__init__.py +83 -0
  148. mapproxy/source/arcgis.py +39 -0
  149. mapproxy/source/error.py +40 -0
  150. mapproxy/source/mapnik.py +262 -0
  151. mapproxy/source/tile.py +97 -0
  152. mapproxy/source/wms.py +273 -0
  153. mapproxy/srs.py +734 -0
  154. mapproxy/template.py +54 -0
  155. mapproxy/test/__init__.py +0 -0
  156. mapproxy/test/conftest.py +8 -0
  157. mapproxy/test/helper.py +255 -0
  158. mapproxy/test/http.py +511 -0
  159. mapproxy/test/image.py +219 -0
  160. mapproxy/test/mocker.py +2291 -0
  161. mapproxy/test/schemas/inspire/common/1.0/common.xsd +1461 -0
  162. mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +108 -0
  163. mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +108 -0
  164. mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +108 -0
  165. mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +108 -0
  166. mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +155 -0
  167. mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +108 -0
  168. mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +108 -0
  169. mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +108 -0
  170. mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +108 -0
  171. mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +109 -0
  172. mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +108 -0
  173. mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +108 -0
  174. mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +108 -0
  175. mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +108 -0
  176. mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +108 -0
  177. mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +108 -0
  178. mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +108 -0
  179. mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +108 -0
  180. mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +108 -0
  181. mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +108 -0
  182. mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +108 -0
  183. mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +108 -0
  184. mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +108 -0
  185. mapproxy/test/schemas/inspire/common/1.0/network.xsd +521 -0
  186. mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +19 -0
  187. mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +14 -0
  188. mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +66 -0
  189. mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +1646 -0
  190. mapproxy/test/schemas/kml/2.2.0/xAL.xsd +1680 -0
  191. mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +87 -0
  192. mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +235 -0
  193. mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +23 -0
  194. mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +157 -0
  195. mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +86 -0
  196. mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +127 -0
  197. mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +279 -0
  198. mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +76 -0
  199. mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +112 -0
  200. mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +51 -0
  201. mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +59 -0
  202. mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +125 -0
  203. mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +140 -0
  204. mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +60 -0
  205. mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +47 -0
  206. mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +27 -0
  207. mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +353 -0
  208. mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +188 -0
  209. mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +524 -0
  210. mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +260 -0
  211. mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +273 -0
  212. mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +303 -0
  213. mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +6 -0
  214. mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +33 -0
  215. mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +68 -0
  216. mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
  217. mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +274 -0
  218. mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +5 -0
  219. mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +276 -0
  220. mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +303 -0
  221. mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +6 -0
  222. mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +33 -0
  223. mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +8 -0
  224. mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +277 -0
  225. mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +611 -0
  226. mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +34 -0
  227. mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +28 -0
  228. mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +68 -0
  229. mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
  230. mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +283 -0
  231. mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +5 -0
  232. mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +276 -0
  233. mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +303 -0
  234. mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +6 -0
  235. mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +33 -0
  236. mapproxy/test/schemas/wmts/1.0/ReadMe.txt +32 -0
  237. mapproxy/test/schemas/wmts/1.0/wmts.xsd +28 -0
  238. mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +151 -0
  239. mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +38 -0
  240. mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +564 -0
  241. mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +57 -0
  242. mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +72 -0
  243. mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +91 -0
  244. mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +76 -0
  245. mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +70 -0
  246. mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +6 -0
  247. mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +122 -0
  248. mapproxy/test/schemas/xml.xsd +287 -0
  249. mapproxy/test/system/__init__.py +98 -0
  250. mapproxy/test/system/fixture/arcgis.yaml +57 -0
  251. mapproxy/test/system/fixture/auth.yaml +70 -0
  252. mapproxy/test/system/fixture/cache.mbtiles +0 -0
  253. mapproxy/test/system/fixture/cache_azureblob.yaml +59 -0
  254. mapproxy/test/system/fixture/cache_band_merge.yaml +73 -0
  255. mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +24 -0
  256. mapproxy/test/system/fixture/cache_coverage.yaml +84 -0
  257. mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
  258. mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
  259. mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
  260. mapproxy/test/system/fixture/cache_geopackage.yaml +56 -0
  261. mapproxy/test/system/fixture/cache_grid_names.yaml +50 -0
  262. mapproxy/test/system/fixture/cache_mbtiles.yaml +28 -0
  263. mapproxy/test/system/fixture/cache_s3.yaml +58 -0
  264. mapproxy/test/system/fixture/cache_source.yaml +81 -0
  265. mapproxy/test/system/fixture/combined_sources.yaml +130 -0
  266. mapproxy/test/system/fixture/coverage.yaml +77 -0
  267. mapproxy/test/system/fixture/demo.yaml +135 -0
  268. mapproxy/test/system/fixture/dimension.yaml +59 -0
  269. mapproxy/test/system/fixture/disable_storage.yaml +25 -0
  270. mapproxy/test/system/fixture/empty_ogrdata.geojson +1 -0
  271. mapproxy/test/system/fixture/formats.yaml +72 -0
  272. mapproxy/test/system/fixture/inspire.yaml +101 -0
  273. mapproxy/test/system/fixture/inspire_full.yaml +124 -0
  274. mapproxy/test/system/fixture/kml_layer.yaml +66 -0
  275. mapproxy/test/system/fixture/layer.yaml +260 -0
  276. mapproxy/test/system/fixture/layergroups.yaml +57 -0
  277. mapproxy/test/system/fixture/layergroups_root.yaml +106 -0
  278. mapproxy/test/system/fixture/legendgraphic.yaml +93 -0
  279. mapproxy/test/system/fixture/mapnik_source.yaml +66 -0
  280. mapproxy/test/system/fixture/mapproxy_export.yaml +12 -0
  281. mapproxy/test/system/fixture/mapserver.yaml +23 -0
  282. mapproxy/test/system/fixture/minimal_cgi.py +16 -0
  283. mapproxy/test/system/fixture/mixed_mode.yaml +49 -0
  284. mapproxy/test/system/fixture/multi_cache_layers.yaml +111 -0
  285. mapproxy/test/system/fixture/multiapp1.yaml +20 -0
  286. mapproxy/test/system/fixture/multiapp2.yaml +19 -0
  287. mapproxy/test/system/fixture/renderd_client.yaml +55 -0
  288. mapproxy/test/system/fixture/scalehints.yaml +70 -0
  289. mapproxy/test/system/fixture/seed.yaml +94 -0
  290. mapproxy/test/system/fixture/seed_mapproxy.yaml +39 -0
  291. mapproxy/test/system/fixture/seed_old.yaml +12 -0
  292. mapproxy/test/system/fixture/seed_timeouts.yaml +12 -0
  293. mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +27 -0
  294. mapproxy/test/system/fixture/seedonly.yaml +51 -0
  295. mapproxy/test/system/fixture/sld.yaml +35 -0
  296. mapproxy/test/system/fixture/source_errors.yaml +84 -0
  297. mapproxy/test/system/fixture/source_errors_raise.yaml +82 -0
  298. mapproxy/test/system/fixture/tileservice_origin.yaml +26 -0
  299. mapproxy/test/system/fixture/tileservice_refresh.yaml +59 -0
  300. mapproxy/test/system/fixture/tilesource_minmax_res.yaml +22 -0
  301. mapproxy/test/system/fixture/util-conf-base-grids.yaml +5 -0
  302. mapproxy/test/system/fixture/util-conf-overwrite.yaml +13 -0
  303. mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +90 -0
  304. mapproxy/test/system/fixture/util_grids.yaml +29 -0
  305. mapproxy/test/system/fixture/util_wms_capabilities111.xml +130 -0
  306. mapproxy/test/system/fixture/util_wms_capabilities130.xml +100 -0
  307. mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +5 -0
  308. mapproxy/test/system/fixture/watermark.yaml +50 -0
  309. mapproxy/test/system/fixture/wms_srs_extent.yaml +39 -0
  310. mapproxy/test/system/fixture/wms_versions.yaml +38 -0
  311. mapproxy/test/system/fixture/wmts.yaml +134 -0
  312. mapproxy/test/system/fixture/wmts_dimensions.yaml +57 -0
  313. mapproxy/test/system/fixture/xslt_featureinfo.yaml +54 -0
  314. mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +51 -0
  315. mapproxy/test/system/test_arcgis.py +156 -0
  316. mapproxy/test/system/test_auth.py +1133 -0
  317. mapproxy/test/system/test_behind_proxy.py +75 -0
  318. mapproxy/test/system/test_bulk_meta_tiles.py +106 -0
  319. mapproxy/test/system/test_cache_azureblob.py +127 -0
  320. mapproxy/test/system/test_cache_band_merge.py +103 -0
  321. mapproxy/test/system/test_cache_coverage.py +168 -0
  322. mapproxy/test/system/test_cache_geopackage.py +144 -0
  323. mapproxy/test/system/test_cache_grid_names.py +89 -0
  324. mapproxy/test/system/test_cache_mbtiles.py +85 -0
  325. mapproxy/test/system/test_cache_s3.py +115 -0
  326. mapproxy/test/system/test_cache_source.py +146 -0
  327. mapproxy/test/system/test_combined_sources.py +335 -0
  328. mapproxy/test/system/test_coverage.py +140 -0
  329. mapproxy/test/system/test_decorate_img.py +214 -0
  330. mapproxy/test/system/test_demo.py +56 -0
  331. mapproxy/test/system/test_demo_with_extra_service.py +57 -0
  332. mapproxy/test/system/test_dimensions.py +279 -0
  333. mapproxy/test/system/test_disable_storage.py +42 -0
  334. mapproxy/test/system/test_formats.py +219 -0
  335. mapproxy/test/system/test_inspire_vs.py +173 -0
  336. mapproxy/test/system/test_kml.py +264 -0
  337. mapproxy/test/system/test_layergroups.py +160 -0
  338. mapproxy/test/system/test_legendgraphic.py +308 -0
  339. mapproxy/test/system/test_mapnik.py +162 -0
  340. mapproxy/test/system/test_mapserver.py +83 -0
  341. mapproxy/test/system/test_mixed_mode_format.py +201 -0
  342. mapproxy/test/system/test_multi_cache_layers.py +169 -0
  343. mapproxy/test/system/test_multiapp.py +92 -0
  344. mapproxy/test/system/test_refresh.py +206 -0
  345. mapproxy/test/system/test_renderd_client.py +304 -0
  346. mapproxy/test/system/test_response_headers.py +54 -0
  347. mapproxy/test/system/test_scalehints.py +140 -0
  348. mapproxy/test/system/test_seed.py +425 -0
  349. mapproxy/test/system/test_seed_only.py +93 -0
  350. mapproxy/test/system/test_sld.py +120 -0
  351. mapproxy/test/system/test_source_errors.py +377 -0
  352. mapproxy/test/system/test_tilesource_minmax_res.py +54 -0
  353. mapproxy/test/system/test_tms.py +277 -0
  354. mapproxy/test/system/test_tms_origin.py +46 -0
  355. mapproxy/test/system/test_util_conf.py +434 -0
  356. mapproxy/test/system/test_util_export.py +210 -0
  357. mapproxy/test/system/test_util_grids.py +88 -0
  358. mapproxy/test/system/test_util_wms_capabilities.py +182 -0
  359. mapproxy/test/system/test_watermark.py +91 -0
  360. mapproxy/test/system/test_wms.py +1616 -0
  361. mapproxy/test/system/test_wms_srs_extent.py +165 -0
  362. mapproxy/test/system/test_wms_version.py +85 -0
  363. mapproxy/test/system/test_wmsc.py +116 -0
  364. mapproxy/test/system/test_wmts.py +334 -0
  365. mapproxy/test/system/test_wmts_dimensions.py +206 -0
  366. mapproxy/test/system/test_wmts_restful.py +198 -0
  367. mapproxy/test/system/test_xslt_featureinfo.py +423 -0
  368. mapproxy/test/test_http_helper.py +217 -0
  369. mapproxy/test/unit/__init__.py +0 -0
  370. mapproxy/test/unit/epsg +2 -0
  371. mapproxy/test/unit/polygons/polygons.dbf +0 -0
  372. mapproxy/test/unit/polygons/polygons.shp +0 -0
  373. mapproxy/test/unit/polygons/polygons.shx +0 -0
  374. mapproxy/test/unit/test_async.py +242 -0
  375. mapproxy/test/unit/test_auth.py +430 -0
  376. mapproxy/test/unit/test_cache.py +1356 -0
  377. mapproxy/test/unit/test_cache_azureblob.py +97 -0
  378. mapproxy/test/unit/test_cache_compact.py +324 -0
  379. mapproxy/test/unit/test_cache_couchdb.py +118 -0
  380. mapproxy/test/unit/test_cache_geopackage.py +256 -0
  381. mapproxy/test/unit/test_cache_redis.py +123 -0
  382. mapproxy/test/unit/test_cache_riak.py +80 -0
  383. mapproxy/test/unit/test_cache_s3.py +93 -0
  384. mapproxy/test/unit/test_cache_tile.py +477 -0
  385. mapproxy/test/unit/test_client.py +488 -0
  386. mapproxy/test/unit/test_client_arcgis.py +74 -0
  387. mapproxy/test/unit/test_client_cgi.py +140 -0
  388. mapproxy/test/unit/test_collections.py +116 -0
  389. mapproxy/test/unit/test_concat_legends.py +37 -0
  390. mapproxy/test/unit/test_conf_loader.py +1267 -0
  391. mapproxy/test/unit/test_conf_validator.py +427 -0
  392. mapproxy/test/unit/test_config.py +118 -0
  393. mapproxy/test/unit/test_decorate_img.py +185 -0
  394. mapproxy/test/unit/test_exceptions.py +270 -0
  395. mapproxy/test/unit/test_featureinfo.py +313 -0
  396. mapproxy/test/unit/test_file_lock_load.py +49 -0
  397. mapproxy/test/unit/test_geom.py +512 -0
  398. mapproxy/test/unit/test_grid.py +1279 -0
  399. mapproxy/test/unit/test_image.py +1051 -0
  400. mapproxy/test/unit/test_image_mask.py +181 -0
  401. mapproxy/test/unit/test_image_messages.py +209 -0
  402. mapproxy/test/unit/test_image_options.py +160 -0
  403. mapproxy/test/unit/test_isodate.py +118 -0
  404. mapproxy/test/unit/test_multiapp.py +163 -0
  405. mapproxy/test/unit/test_ogr_reader.py +51 -0
  406. mapproxy/test/unit/test_request.py +745 -0
  407. mapproxy/test/unit/test_request_wmts.py +178 -0
  408. mapproxy/test/unit/test_response.py +78 -0
  409. mapproxy/test/unit/test_seed.py +365 -0
  410. mapproxy/test/unit/test_seed_cachelock.py +91 -0
  411. mapproxy/test/unit/test_srs.py +215 -0
  412. mapproxy/test/unit/test_tiled_source.py +122 -0
  413. mapproxy/test/unit/test_tilefilter.py +31 -0
  414. mapproxy/test/unit/test_times.py +25 -0
  415. mapproxy/test/unit/test_timeutils.py +50 -0
  416. mapproxy/test/unit/test_util_conf_utils.py +75 -0
  417. mapproxy/test/unit/test_utils.py +476 -0
  418. mapproxy/test/unit/test_wms_capabilities.py +44 -0
  419. mapproxy/test/unit/test_wms_layer.py +113 -0
  420. mapproxy/test/unit/test_yaml.py +68 -0
  421. mapproxy/tilefilter.py +61 -0
  422. mapproxy/util/__init__.py +0 -0
  423. mapproxy/util/async_.py +229 -0
  424. mapproxy/util/collections.py +134 -0
  425. mapproxy/util/coverage.py +337 -0
  426. mapproxy/util/ext/__init__.py +14 -0
  427. mapproxy/util/ext/dictspec/__init__.py +1 -0
  428. mapproxy/util/ext/dictspec/spec.py +131 -0
  429. mapproxy/util/ext/dictspec/test/__init__.py +0 -0
  430. mapproxy/util/ext/dictspec/test/test_validator.py +278 -0
  431. mapproxy/util/ext/dictspec/validator.py +194 -0
  432. mapproxy/util/ext/local.py +198 -0
  433. mapproxy/util/ext/lockfile.py +140 -0
  434. mapproxy/util/ext/odict.py +321 -0
  435. mapproxy/util/ext/serving.py +491 -0
  436. mapproxy/util/ext/tempita/__init__.py +1093 -0
  437. mapproxy/util/ext/tempita/_looper.py +163 -0
  438. mapproxy/util/ext/tempita/string_utils.py +24 -0
  439. mapproxy/util/ext/wmsparse/__init__.py +3 -0
  440. mapproxy/util/ext/wmsparse/duration.py +600 -0
  441. mapproxy/util/ext/wmsparse/parse.py +307 -0
  442. mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
  443. mapproxy/util/ext/wmsparse/test/test_parse.py +111 -0
  444. mapproxy/util/ext/wmsparse/test/test_util.py +23 -0
  445. mapproxy/util/ext/wmsparse/test/wms-example-111.xml +90 -0
  446. mapproxy/util/ext/wmsparse/test/wms-example-130.xml +120 -0
  447. mapproxy/util/ext/wmsparse/test/wms-large-111.xml +2114 -0
  448. mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +386 -0
  449. mapproxy/util/ext/wmsparse/util.py +189 -0
  450. mapproxy/util/fs.py +164 -0
  451. mapproxy/util/geom.py +307 -0
  452. mapproxy/util/lib.py +117 -0
  453. mapproxy/util/lock.py +171 -0
  454. mapproxy/util/ogr.py +247 -0
  455. mapproxy/util/py.py +75 -0
  456. mapproxy/util/times.py +78 -0
  457. mapproxy/util/yaml.py +58 -0
  458. mapproxy/version.py +33 -0
  459. mapproxy/wsgiapp.py +167 -0
@@ -0,0 +1,353 @@
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.0"
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
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?, Keywords?, OnlineResource, Fees?,
35
+ 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
+ <!-- Short words to help catalog searching. Currently, no controlled
48
+ vocabulary has been defined. -->
49
+ <!ELEMENT Keywords (#PCDATA) >
50
+
51
+ <!-- The top-level HTTP URL of this service. Typically the URL of a "home
52
+ page" for the service. See also the onlineResource attributes of <DCPType>
53
+ children, below. Currently, no non-HTTP platforms have been specified. -->
54
+ <!ELEMENT OnlineResource (#PCDATA)>
55
+
56
+ <!-- Elements indicating what fees or access constraints are imposed.
57
+ The reserved keyword "none" indicates no constraint exists. -->
58
+ <!ELEMENT Fees (#PCDATA)>
59
+ <!ELEMENT AccessConstraints (#PCDATA)>
60
+
61
+ <!-- A Capability lists available request types, how exceptions
62
+ may be reported, and whether any vendor-specific capabilities are defined. It
63
+ also includes an optional list of map layers available from this server. -->
64
+
65
+ <!ELEMENT Capability
66
+ (Request, Exception?, VendorSpecificCapabilities?, Layer?) >
67
+
68
+ <!-- Available WMT-defined request types are listed here.
69
+ At least one of the values is required, but more than one
70
+ may be given. -->
71
+ <!ELEMENT Request (Map | Capabilities | FeatureInfo)+ >
72
+
73
+ <!-- For each request method offered by the server, list the
74
+ available output formats and the supported distributed
75
+ computing platforms (DCPs). Example:
76
+ <Map>
77
+ <Format><PNG /><JPEG /><GML.1 /></Format>
78
+ <DCPType><HTTP><Get onlineResource="URL" /></HTTP></DCPType>
79
+ </Map>
80
+ -->
81
+
82
+ <!-- GetMap interface: Presence of the Map element means this server can
83
+ generate a map of a specified area, either as a picture or a feature
84
+ collection -->
85
+ <!ELEMENT Map (Format, DCPType+)>
86
+
87
+ <!-- GetCapabilities interface: Presence of the Capabilities element means
88
+ this server can generate a description of its abilities and holdings formatted
89
+ in XML that complies with this DTD. -->
90
+ <!ELEMENT Capabilities (Format, DCPType+)>
91
+
92
+ <!-- GetFeatureInfo interface: Presence of the FeatureInfo element means this
93
+ server can return information about a specific feature given a valid map
94
+ request and a location on that map. -->
95
+ <!ELEMENT FeatureInfo (Format, DCPType+)>
96
+
97
+ <!-- Available Distributed Computing Platforms (DCPs) are
98
+ listed here. At present, only HTTP is defined. -->
99
+ <!ELEMENT DCPType (HTTP) >
100
+
101
+ <!-- Available HTTP request methods. -->
102
+ <!ELEMENT HTTP (Get | Post)+ >
103
+
104
+ <!-- HTTP request methods. The onlineResource attribute indicates the URL
105
+ prefix for HTTP GET requests (everything before the question mark and query
106
+ string: http://hostname[:port]/path/scriptname); for HTTP POST requests,
107
+ onlineResource is the complete URL. The HTTP GET syntax for Map, Capabilities
108
+ and FeatureInfo requests has been well defined and is described in the OGC
109
+ Web Map Server Interface Specification. The POST formalism, wherein GetMap
110
+ arguments are encoded in XML and POSTed to the server, has not yet been fully
111
+ developed. -->
112
+ <!ELEMENT Get EMPTY>
113
+ <!ATTLIST Get onlineResource CDATA #REQUIRED>
114
+ <!ELEMENT Post EMPTY>
115
+ <!ATTLIST Post onlineResource CDATA #REQUIRED>
116
+
117
+ <!-- Available formats. Not all formats are relevant to all requests.
118
+ Individual servers MAY add new formats as shown in the sample XML accompanying
119
+ this DTD. -->
120
+ <!ELEMENT Format ( %KnownFormats; )+ >
121
+ <!ELEMENT GIF EMPTY> <!-- Graphics Interchange Format -->
122
+ <!ELEMENT JPEG EMPTY> <!-- Joint Photographics Expert Group -->
123
+ <!ELEMENT PNG EMPTY> <!-- Portable Network Graphics -->
124
+ <!ELEMENT PPM EMPTY> <!-- Portable PixMap -->
125
+ <!ELEMENT TIFF EMPTY> <!-- Tagged Image File Format -->
126
+ <!ELEMENT GeoTIFF EMPTY> <!-- Geographic TIFF -->
127
+ <!ELEMENT WebCGM EMPTY> <!-- Web Computer Graphics Metafile -->
128
+ <!ELEMENT SVG EMPTY> <!-- Scalable Vector Graphics -->
129
+ <!ELEMENT WMS_XML EMPTY> <!-- eXtensible Markup Language -->
130
+ <!ELEMENT GML.1 EMPTY> <!-- Geography Markup Language, profile 1 -->
131
+ <!ELEMENT GML.2 EMPTY> <!-- Geography Markup Language, profile 2 -->
132
+ <!ELEMENT GML.3 EMPTY> <!-- Geography Markup Language, profile 3 -->
133
+ <!ELEMENT WBMP EMPTY> <!-- Wireless Access Protocol (WAP) Bitmap -->
134
+ <!ELEMENT MIME EMPTY> <!-- Multipurpose Internet Mail Extensions -->
135
+ <!ELEMENT INIMAGE EMPTY> <!-- display text in the returned image -->
136
+ <!ELEMENT BLANK EMPTY> <!-- return an image with all pixels transparent if
137
+ supported by the image format, otherwise all
138
+ pixels set to the BGCOLOR if present, otherwise
139
+ all pixels set to the same (arbitrary) value -->
140
+
141
+ <!-- An Exception element indicates which output formats are supported
142
+ for reporting problems encountered when executing a request. Available
143
+ Exception formats MUST include one or more of WMS_XML, INIMAGE, or BLANK.
144
+ Example: <Exception><Format><INIMAGE /><WMS_XML /></Format></Exception>. -->
145
+ <!ELEMENT Exception (Format)>
146
+
147
+ <!-- The optional VendorSpecificCapabilities element lists any capabilities
148
+ unique to a particular Map Server. Because the information is not known a
149
+ priori, it cannot be constrained by this particular DTD. A vendor-specific
150
+ DTD fragment must be supplied at the start of the XML Capabilities document,
151
+ after the reference to the general WMT_MS_Capabilities DTD. See the sample
152
+ XML for further information. -->
153
+
154
+ <!--
155
+ DEFINE THIS ELEMENT AS NEEDED IN YOUR XML
156
+ <!ELEMENT VendorSpecificCapabilities (your stuff here) >
157
+ -->
158
+
159
+ <!-- Nested list of zero or more map Layers offered by this server. The Layer
160
+ element can be omitted if the server has no layers (for example, if it offers
161
+ only geoprocessing services but no actual data). -->
162
+
163
+ <!-- A Layer element has two functions: it either refers to a map layer which
164
+ can be requested by Name in the LAYERS parameter of a GetMap request, or it is
165
+ a category Title for all the layers nested within. In the latter case, the
166
+ category itself MAY include a Name by which all of the nested layers can be
167
+ requested at once. For example, a parent layer "Roads" may have children
168
+ "Interstates" and "County Roads" and allow the user to request either child
169
+ individually or both together. -->
170
+
171
+ <!-- A Map Server which advertises a Layer containing a Name element MUST be
172
+ able to accept that Name as the value of LAYERS argument in a GetMap request
173
+ and return the corresponding map. A Viewer Client MUST NOT attempt to request
174
+ a Layer that has a Title but no Name. -->
175
+
176
+ <!-- A Map Server MUST include at least one <Layer> element for each map layer
177
+ offered. If desired, data layers MAY be repeated in different categories when
178
+ relevant. A Layer element MAY state the Name by which a map of the layer is
179
+ requested, MUST give a Title to be used in human-readable menus, and MAY
180
+ include: a human-readable Abstract containing further description, available
181
+ Spatial Reference Systems (SRS), bounding boxes in Lat/Lon and SRS-specific
182
+ coordinates indicating the available geographic coverage, styles in which the
183
+ layer is available, a URL for more information about the data, and a hint
184
+ concerning appropriate map scales for displaying this layer. Use of the
185
+ nesting hierarchy is optional. -->
186
+
187
+ <!-- The following table specifies the number and source of the various
188
+ elements (and one attribute) describing a Layer that has a Name. Without a
189
+ Name, the Layer is merely a category title and all other elements are
190
+ optional; if present, some of those elements may be inherited by children as
191
+ described in the table.
192
+
193
+ inherit
194
+ from
195
+ element number parent? comments
196
+ ======= ====== ======= ========
197
+ Name 1 - this table only applies to Named Layers
198
+ (those which can be requested in a GetMap call)
199
+ no default
200
+
201
+ Title 1 - required in each Layer; no default
202
+
203
+ Abstract 0/1 - optional; no default
204
+
205
+ Keywords 0/1 - optional; no default
206
+
207
+ SRS 1 add one list is required; default from parent;
208
+ list may include multiple whitespace-separated
209
+ values
210
+
211
+ LatLonBoundingBox 1 replace exactly one is required; default from parent
212
+
213
+ BoundingBox 0+ replace one is required per SRS other than EPSG:4326;
214
+ default from parent
215
+
216
+ DataURL 0/1 - optional; no default
217
+
218
+ Style 0+ add optional; default from parent
219
+
220
+ ScaleHint 0/1 replace optional; default from parent
221
+
222
+ Layer 0+ - optional; no default;
223
+ if present, each is a "child" of the enclosing
224
+ Layer and inherits some default values as
225
+ described in this table
226
+
227
+ queryable 1 replace optional; default is "0" (not queryable)
228
+ (attribute) or parent value if present
229
+
230
+
231
+ -->
232
+
233
+ <!ELEMENT Layer ( Name?, Title, Abstract?, Keywords?, SRS?,
234
+ LatLonBoundingBox?, BoundingBox*, DataURL?,
235
+ Style*, ScaleHint?, Layer* ) >
236
+
237
+ <!-- A data layer may be queryable, as specified by this optional binary
238
+ attribute. 1 = queryable, 0 = not queryable. A server that declares a Layer
239
+ to by queryable MUST implement the GetFeatureInfo interface. -->
240
+
241
+ <!ATTLIST Layer queryable (0 | 1) "0" >
242
+
243
+ <!-- Listing of available Spatial Reference Systems (SRS).
244
+ * The root Layer element must include a list of all SRSes which
245
+ are common to *all* subsidiary layers. This allows clients
246
+ to quickly determine that a server cannot possibly satisfy a
247
+ request for a particular SRS. Use an empty element if there
248
+ is no common SRS.
249
+ * Layer-specific SRS: Optionally, layers may add to the global SRS list, or to
250
+ the list inherited from a parent layer as described above.
251
+ Any duplication should be ignored by clients. That is, a particular
252
+ layer may list all of its SRSes, even if it repeats
253
+ information in the top-level SRS.
254
+
255
+ The content of the SRS element is a free-text list of SRS names separated by
256
+ whitespace. A name includes a namespace prefix, a colon, and one or more
257
+ parameter values. Currently defined namespaces are:
258
+
259
+ prefix parameters comment
260
+ ====== ========== =======
261
+ EPSG EPSG code European Petroleum Survey Group geodesy parameters
262
+ http://www.petroconsultants.com/products/geodetic.html
263
+ Examples: 'EPSG:4326' is WGS84 lat/lon,
264
+ 'EPSG:26986' is NAD83 / Massachusetts Mainland.
265
+
266
+ AUTO WMT code, WMT list of "automatic" projections. WMT code:
267
+ EPSG units, an integer identifier assigned by WMT (see
268
+ Longitude, http://www.digitalearth.gov/wmt/auto.html). EPSG units:
269
+ Latitude one of the EPSG codes for identifying units,
270
+ indicating what units are to be used in Bounding Boxes.
271
+ Longitude: central meridian of the projection (degrees).
272
+ Latitude: central latitude of the projection (degrees).
273
+ Example: 'AUTO:42003,9001,-100,45' is auto orthographic
274
+ projection, bbox units in meters, center at 100W 45N.
275
+ The bounding box is measured in a plane perpendicular to
276
+ the line of sight, *not* directly on the Earth.
277
+ -->
278
+
279
+ <!ELEMENT SRS (#PCDATA) >
280
+
281
+ <!-- The LatLonBoundingBox attributes indicate the edges of the enclosing
282
+ rectangle in latitude/longitude decimal degrees (as in SRS EPSG:4326 [WGS1984
283
+ lat/lon]). LatLonBoundingBox MUST be supplied regardless of what SRS the map
284
+ server may support, but it MAY be approximate if EPSG:4326 is not supported.
285
+ Its purpose is to facilitate geographic searches without requiring coordinate
286
+ transformations by the search engine. -->
287
+ <!ELEMENT LatLonBoundingBox EMPTY>
288
+ <!ATTLIST LatLonBoundingBox
289
+ minx CDATA #REQUIRED
290
+ miny CDATA #REQUIRED
291
+ maxx CDATA #REQUIRED
292
+ maxy CDATA #REQUIRED>
293
+
294
+ <!-- The BoundingBox attributes indicate the edges of the bounding box
295
+ in units of the specified spatial reference system. -->
296
+ <!ELEMENT BoundingBox EMPTY>
297
+ <!ATTLIST BoundingBox
298
+ SRS CDATA #REQUIRED
299
+ minx CDATA #REQUIRED
300
+ miny CDATA #REQUIRED
301
+ maxx CDATA #REQUIRED
302
+ maxy CDATA #REQUIRED>
303
+
304
+ <!-- A Map Server MAY use DataURL to offer more information about the data
305
+ underneath a particular layer. While the semantics are not well-defined, as
306
+ long as the results of an HTTP GET request against the DataURL are properly
307
+ MIME-typed, Viewer Clients and Cascading Map Servers can make use of this. -->
308
+ <!ELEMENT DataURL (#PCDATA) >
309
+
310
+ <!-- A Style element lists the name by which a style is requested and a
311
+ human-readable title for pick lists, optionally (and ideally) provides a
312
+ human-readable description, and optionally gives a style URL. If a Layer is
313
+ offered in only a single Style, the Map Server MAY choose not to give it a
314
+ name. Nevertheless, when handling a GetMap request a server MUST accept ''
315
+ (null) and 'default' in the STYLES parameter as synonyms for the default (or
316
+ only) style. -->
317
+ <!ELEMENT Style ( Name, Title, Abstract?, StyleURL? ) >
318
+
319
+ <!-- A Map Server MAY use StyleURL to offer more information about the data or
320
+ symbology underlying a particular Style. While the semantics are not
321
+ well-defined, as long as the results of an HTTP GET request against the
322
+ StyleURL are properly MIME-typed, Viewer Clients and Cascading Map Servers can
323
+ make use of this. A possible use could be to allow a Map Server to provide
324
+ legend information. -->
325
+ <!ELEMENT StyleURL (#PCDATA) >
326
+
327
+ <!-- Minimum and maximum scale hints for which it is appropriate to
328
+ display this layer. It is STRONGLY RECOMMENDED that for Picture Case
329
+ return formats the min and max values be expressed as ground distance
330
+ in meters of a southwest to northeast diagonal of the pixel whose X
331
+ coordinate is floor(width/2) and whose Y coordinate is floor(height/2).
332
+
333
+ In the figure below, the X is in the pixel whose diagonal measurement
334
+ is used.
335
+
336
+ +===+===+===+ +===+===+===+===+
337
+ | | | | | | | | |
338
+ +===+===+===+ +===+===+===+===+
339
+ | | X | | | | X | | |
340
+ +===+===+===+ +===+===+===+===+
341
+ | | | | | | | | |
342
+ +===+===+===+ +===+===+===+===+
343
+ | | | | |
344
+ +===+===+===+===+
345
+
346
+ It is understood that this definition is not geodetically precise, but
347
+ at the same time the hope is that by including it, conventions will
348
+ develop around its use which can be later specified more clearly. -->
349
+ <!ELEMENT ScaleHint EMPTY>
350
+ <!ATTLIST ScaleHint min CDATA #REQUIRED max CDATA #REQUIRED>
351
+
352
+
353
+
@@ -0,0 +1,188 @@
1
+ <?xml version='1.0' encoding="UTF-8" standalone="no" ?>
2
+ <!-- The DTD (Document Type Definition) given here must correspond to the version number declared in the WMT_MS_Capabilities element below. -->
3
+ <!DOCTYPE WMT_MS_Capabilities SYSTEM
4
+ "http://www.digitalearth.gov/wmt/xml/capabilities_1_0_0.dtd"
5
+ [
6
+
7
+ <!-- Output formats known to this server are defined here
8
+ if necessary (only if a format not already listed in the WMT
9
+ Capabilities DTD is needed). To define a new format, place
10
+ an entity definition for KnownFormats like the one below in
11
+ the DOCTYPE declaration of your Capabilities XML, listing at
12
+ minimum all of the formats you support and separating each
13
+ by logical-OR (|) characters. Then, define a new element
14
+ for any formats not predefined by WMT. For example, in the
15
+ following list "SGI" is a server-specific format, while all
16
+ the others are known WMT-wide. Thus, SGI is included in the
17
+ KnownFormats list and a new empty element <SGI/> is
18
+ defined. -->
19
+ <!ENTITY % KnownFormats " SGI | GIF | JPEG | PNG | WebCGM | SVG | GML.1
20
+ | WMS_XML | MIME | INIMAGE | PPM | BLANK " >
21
+ <!ELEMENT SGI EMPTY> <!-- Silicon Graphics RGB Format -->
22
+
23
+ <!-- other vendor-specific elements defined here -->
24
+ <!ELEMENT VendorSpecificCapabilities (YMD)>
25
+ <!ELEMENT YMD (Title, Abstract)>
26
+ <!ATTLIST YMD required (0 | 1) "0">
27
+
28
+ ]> <!-- end of DOCTYPE declaration -->
29
+
30
+ <!-- The version number listed in the WMT_MS_Capabilities element here must correspond to the DTD declared above. See the WMT specification document for how to respond when a client requests a version number not implemented by the server. -->
31
+ <WMT_MS_Capabilities version="1.0.0" updateSequence="0">
32
+ <!-- Service Metadata -->
33
+ <Service>
34
+ <!-- The WMT-defined name for this type of service -->
35
+ <Name>GetMap</Name>
36
+ <!-- Human-readable title for pick lists -->
37
+ <Title>Acme Corp. Map Server</Title>
38
+ <!-- Narrative description providing additional information -->
39
+ <Abstract>WMT Map Server maintained by Acme Corporation. Contact: webmaster@wmt.acme.com. High-quality maps showing roadrunner nests and possible ambush locations.</Abstract>
40
+ <Keywords>bird roadrunner ambush</Keywords>
41
+ <!-- Top-level address of service or service provider. See also onlineResource attributes of <DCPType> children. -->
42
+ <OnlineResource>http://hostname:port/path/</OnlineResource>
43
+ <!-- Fees or access constraints imposed. -->
44
+ <Fees>none</Fees>
45
+ <AccessConstraints>none</AccessConstraints>
46
+ </Service>
47
+ <Capability>
48
+ <Request>
49
+ <Map>
50
+ <Format>
51
+ <SGI />
52
+ <GIF />
53
+ <JPEG />
54
+ <PNG />
55
+ <WebCGM />
56
+ <SVG />
57
+ </Format>
58
+ <DCPType>
59
+ <HTTP>
60
+ <!-- The URL here for HTTP GET requests includes only the prefix before the '?' and the query string. Clients are expected to append '?WMTVER=nnn&etc' as described in the Web Map interface specification. -->
61
+ <Get onlineResource="http://hostname:port/path/mapserver.cgi" />
62
+ <Post onlineResource="http://hostname:port/path/mapserver.cgi" />
63
+ </HTTP>
64
+ </DCPType>
65
+ </Map>
66
+ <Capabilities>
67
+ <Format>
68
+ <WMS_XML />
69
+ </Format>
70
+ <DCPType>
71
+ <HTTP>
72
+ <!-- The URL here for HTTP GET requests includes only the prefix before the '?' and the query string. Clients are expected to append '?WMTVER=nnn&etc' as described in the Web Map interface specification. -->
73
+ <Get onlineResource="http://hostname:port/path/mapserver.cgi" />
74
+ </HTTP>
75
+ </DCPType>
76
+ </Capabilities>
77
+ <FeatureInfo>
78
+ <Format>
79
+ <MIME />
80
+ <GML.1 />
81
+ </Format>
82
+ <DCPType>
83
+ <HTTP>
84
+ <!-- The URL here for HTTP GET requests includes only the prefix before the '?' and the query string. Clients are expected to append '?WMTVER=nnn&etc' as described in the Web Map interface specification. -->
85
+ <Get onlineResource="http://hostname:port/path/mapserver.cgi" />
86
+ </HTTP>
87
+ </DCPType>
88
+ </FeatureInfo>
89
+ </Request>
90
+ <Exception>
91
+ <Format>
92
+ <BLANK />
93
+ <WMS_XML />
94
+ </Format>
95
+ </Exception>
96
+ <!-- Any text or markup is allowed here, as required to describe
97
+ server-specific options. Please define elements and attributes
98
+ in the DOCTYPE declaration at the start of the document. -->
99
+ <VendorSpecificCapabilities>
100
+ <YMD required="0">
101
+ <Title>Date in YYYYMMDD format</Title>
102
+ <Abstract>8-digit date in YYYYMMDD format. If absent,
103
+ the latest available date (usually today, but not for
104
+ non-daily measurements) is sent.</Abstract>
105
+ </YMD>
106
+ </VendorSpecificCapabilities>
107
+ <Layer>
108
+ <Title>Acme Corp. Map Server</Title>
109
+ <SRS>EPSG:4326</SRS> <!-- all layers are available in at least this SRS -->
110
+ <Layer queryable="0">
111
+ <Name>wmt_graticule</Name>
112
+ <Title>Alignment test grid</Title>
113
+ <Abstract>The WMT Graticule is a 10-degree grid suitable for testing alignment among Map Servers.</Abstract>
114
+ <Keywords>graticule test</Keywords>
115
+ <LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
116
+ <Style>
117
+ <Name>on</Name>
118
+ <Title>Show test grid</Title>
119
+ <Abstract>The "on" style for the WMT Graticule causes that layer to be displayed.</Abstract>
120
+ </Style>
121
+ <Style>
122
+ <Name>off</Name>
123
+ <Title>Hide test grid</Title>
124
+ <Abstract>The "off" style for the WMT Graticule causes that layer to be hidden even though it was requested from the Map Server. Style=off is the same as not requesting the graticule at all.</Abstract>
125
+ </Style>
126
+ </Layer>
127
+ <Layer>
128
+ <!-- This parent layer has a Name and can therefore be requested from a Map Server, yielding a map of all subsidiary layers. -->
129
+ <Name>ROADS_RIVERS</Name>
130
+ <Title>Roads and Rivers</Title>
131
+ <!-- The following characteristics are inherited by subsidiary layers. -->
132
+ <SRS>EPSG:26986</SRS> <!-- An additional SRS for this layer -->
133
+ <LatLonBoundingBox minx="-71.634696" miny="41.754149" maxx="-70.789798" maxy="42.908459"/>
134
+ <BoundingBox SRS="EPSG:26986" minx="189000" miny="834000" maxx="285000" maxy="962000"/>
135
+ <Style>
136
+ <Name>USGS Topo</Name>
137
+ <Title>Topo map style</Title>
138
+ <Abstract>Features are shown in a style like that used in USGS topographic maps.</Abstract>
139
+ <StyleURL></StyleURL>
140
+ </Style>
141
+ <ScaleHint min="4000" max="35000"></ScaleHint>
142
+ <Layer queryable="1">
143
+ <Name>ROADS_1M</Name>
144
+ <Title>Roads at 1:1M scale</Title>
145
+ <Abstract>Roads at a scale of 1 to 1 million.</Abstract>
146
+ <Keywords>road transportation atlas</Keywords>
147
+ <DataURL>http://www.opengis.org?roads.xml</DataURL>
148
+ <!-- In addition to the Style specified in the parent Layer, this Layer is available in this style. -->
149
+ <Style>
150
+ <Name>Rand McNally</Name>
151
+ <Title>Road atlas style</Title>
152
+ <Abstract>Roads are shown in a style like that used in a Rand McNally road atlas.</Abstract>
153
+ </Style>
154
+ </Layer>
155
+ <Layer queryable="1">
156
+ <Name>RIVERS_1M</Name>
157
+ <Title>Rivers at 1:1M scale</Title>
158
+ <Abstract>Rivers at a scale of 1 to 1 million.</Abstract>
159
+ <Keywords>river canal water</Keywords>
160
+ <DataURL>http://www.opengis.org?rivers.xml</DataURL>
161
+ </Layer>
162
+ </Layer>
163
+ <Layer queryable="1">
164
+ <Title>Weather Data</Title>
165
+ <SRS>EPSG:4326</SRS> <!-- harmless repetition of common SRS -->
166
+ <LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
167
+ <Style>
168
+ <Name>default</Name>
169
+ <Title>Default style</Title>
170
+ <Abstract>Weather Data are only available in a single default style.</Abstract>
171
+ </Style>
172
+ <Layer>
173
+ <Name>Clouds</Name>
174
+ <Title>Forecast cloud cover</Title>
175
+ </Layer>
176
+ <Layer>
177
+ <Name>Temperature</Name>
178
+ <Title>Forecast temperature</Title>
179
+ </Layer>
180
+ <Layer>
181
+ <Name>Pressure</Name>
182
+ <Title>Forecast barometric pressure</Title>
183
+ </Layer>
184
+ </Layer>
185
+ </Layer>
186
+ </Capability>
187
+ </WMT_MS_Capabilities>
188
+