Add WMTS capabilities parsing example (see #2637).
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10391 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>OpenLayers WMTS Capabilities Example</title>
|
||||||
|
<link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
|
||||||
|
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||||
|
<script src="../lib/Firebug/firebug.js"></script>
|
||||||
|
<script src="../lib/OpenLayers.js"></script>
|
||||||
|
<script src="wmts-capabilities.js"></script>
|
||||||
|
<style>
|
||||||
|
.olControlAttribution {
|
||||||
|
bottom: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body onload="init();">
|
||||||
|
<h1 id="title">Web Map Tile Service (WMTS) Capabilities Parsing</h1>
|
||||||
|
|
||||||
|
<p id="shortdesc">
|
||||||
|
The WMTS Capabilities format allows for parsing of capabilities
|
||||||
|
documents from OGC Web Map Tile Service (WMTS) version 1.0.0
|
||||||
|
implementations.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="map" class="smallmap"></div>
|
||||||
|
|
||||||
|
<div id="docs">
|
||||||
|
<p>
|
||||||
|
This example creates an OpenLayers.Layer.WMTS layer to based
|
||||||
|
on the results of parsing a capabilities doc with the
|
||||||
|
OpenLayers.Format.WMTSCapabilities parser.
|
||||||
|
</p><p>
|
||||||
|
See the <a href="wmts-capabilities.js" target="_blank">
|
||||||
|
wmts-capabilities.js source</a> to see how this is done.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
OpenLayers.ProxyHost = "/proxy/?url=";
|
||||||
|
|
||||||
|
var map, format;
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
|
||||||
|
format = new OpenLayers.Format.WMTSCapabilities();
|
||||||
|
OpenLayers.Request.GET({
|
||||||
|
url: "http://v2.suite.opengeo.org/geoserver/gwc/service/wmts",
|
||||||
|
params: {
|
||||||
|
SERVICE: "WMTS",
|
||||||
|
VERSION: "1.0.0",
|
||||||
|
REQUEST: "GetCapabilities"
|
||||||
|
},
|
||||||
|
success: function(request) {
|
||||||
|
var doc = request.responseXML;
|
||||||
|
if (!doc || !doc.documentElement) {
|
||||||
|
doc = request.responseText;
|
||||||
|
}
|
||||||
|
var capabilities = format.read(doc);
|
||||||
|
var layer = createLayer(capabilities, {
|
||||||
|
layer: "medford:buildings",
|
||||||
|
matrixSet: "EPSG:900913",
|
||||||
|
format: "image/png",
|
||||||
|
opacity: 0.7,
|
||||||
|
isBaseLayer: false
|
||||||
|
});
|
||||||
|
map.addLayer(layer);
|
||||||
|
},
|
||||||
|
failure: function() {
|
||||||
|
alert("Trouble getting capabilities doc");
|
||||||
|
OpenLayers.Console.error.apply(OpenLayers.Console, arguments);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
map = new OpenLayers.Map({
|
||||||
|
div: "map",
|
||||||
|
projection: "EPSG:900913",
|
||||||
|
units: "m",
|
||||||
|
maxExtent: new OpenLayers.Bounds(
|
||||||
|
-20037508.34, -20037508.34, 20037508.34, 20037508.34
|
||||||
|
),
|
||||||
|
maxResolution: 156543.0339
|
||||||
|
});
|
||||||
|
|
||||||
|
var osm = new OpenLayers.Layer.OSM();
|
||||||
|
|
||||||
|
map.addLayer(osm);
|
||||||
|
map.addControl(new OpenLayers.Control.LayerSwitcher());
|
||||||
|
map.setCenter(new OpenLayers.LonLat(-13677832, 5213272), 13);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function createLayer(capabilities, config) {
|
||||||
|
|
||||||
|
var contents = capabilities.contents;
|
||||||
|
var matrixSet = contents.tileMatrixSets[config.matrixSet];
|
||||||
|
|
||||||
|
// find the layer definition with the given identifier
|
||||||
|
var layers = contents.layers;
|
||||||
|
var layer;
|
||||||
|
for (var i=0, ii=layers.length; i<ii; ++i) {
|
||||||
|
if (layers[i].identifier === config.layer) {
|
||||||
|
layer = layers[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the default style for the layer
|
||||||
|
var style;
|
||||||
|
for (var i=0, ii=layer.styles.length; i<ii; ++i) {
|
||||||
|
style = layer.styles[i];
|
||||||
|
if (style.isDefault === "true") { // TODO: change this to boolean
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the layer
|
||||||
|
return new OpenLayers.Layer.WMTS(
|
||||||
|
OpenLayers.Util.applyDefaults(config, {
|
||||||
|
url: capabilities.operationsMetadata.GetTile.dcp.http.get,
|
||||||
|
name: layer.title,
|
||||||
|
style: style,
|
||||||
|
matrixIds: matrixSet.matrixIds
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user