Educational addition to the mobile-wmts-vienna example.
It now explains in the source code how to create the layers directly, without requesting the Capabilities document first.
This commit is contained in:
@@ -1,8 +1,6 @@
|
|||||||
var map;
|
var map;
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
OpenLayers.ProxyHost = "proxy.cgi?url=";
|
|
||||||
|
|
||||||
// Set document language for css content
|
// Set document language for css content
|
||||||
document.documentElement.lang = (navigator.userLanguage || navigator.language).split("-")[0];
|
document.documentElement.lang = (navigator.userLanguage || navigator.language).split("-")[0];
|
||||||
|
|
||||||
@@ -98,9 +96,7 @@ var map;
|
|||||||
theme: null,
|
theme: null,
|
||||||
projection: "EPSG:3857",
|
projection: "EPSG:3857",
|
||||||
units: "m",
|
units: "m",
|
||||||
maxExtent: new OpenLayers.Bounds(
|
maxExtent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34],
|
||||||
-20037508.34, -20037508.34, 20037508.34, 20037508.34
|
|
||||||
),
|
|
||||||
maxResolution: 156543.0339,
|
maxResolution: 156543.0339,
|
||||||
numZoomLevels: 20,
|
numZoomLevels: 20,
|
||||||
controls: [
|
controls: [
|
||||||
@@ -137,41 +133,85 @@ var map;
|
|||||||
// The WMTS layers we're going to add
|
// The WMTS layers we're going to add
|
||||||
var fmzk, aerial, labels;
|
var fmzk, aerial, labels;
|
||||||
|
|
||||||
// The WMTSCapabilities format and the default options for the layers
|
// zoom to initial extent or restore position from permalink
|
||||||
var format = new OpenLayers.Format.WMTSCapabilities(), defaults = {
|
function zoomToInitialExtent() {
|
||||||
requestEncoding: "REST",
|
var extent = fmzk.tileFullExtent,
|
||||||
matrixSet: "google3857",
|
ctr = extent.getCenterLonLat(),
|
||||||
tileLoadingDelay: 0,
|
zoom = map.getZoomForExtent(extent, true),
|
||||||
attribution: 'Datenquelle: Stadt Wien - <a href="http://data.wien.gv.at">data.wien.gv.at</a>'
|
params = OpenLayers.Util.getParameters("?"+window.location.hash.substr(1));
|
||||||
};
|
OpenLayers.Util.applyDefaults(params, {x:ctr.lon, y:ctr.lat, z:zoom});
|
||||||
|
map.setCenter(new OpenLayers.LonLat(params.x, params.y), params.z);
|
||||||
|
}
|
||||||
|
|
||||||
// Request capabilities and create layers
|
// Request capabilities and create layers
|
||||||
|
OpenLayers.ProxyHost = "proxy.cgi?url=";
|
||||||
OpenLayers.Request.GET({
|
OpenLayers.Request.GET({
|
||||||
url: "http://maps.wien.gv.at/wmts/1.0.0/WMTSCapabilities.xml",
|
url: "http://maps.wien.gv.at/wmts/1.0.0/WMTSCapabilities.xml",
|
||||||
success: function(request) {
|
success: function(request) {
|
||||||
|
var format = new OpenLayers.Format.WMTSCapabilities();
|
||||||
|
var defaults = {
|
||||||
|
requestEncoding: "REST",
|
||||||
|
matrixSet: "google3857",
|
||||||
|
tileLoadingDelay: 0,
|
||||||
|
attribution: 'Datenquelle: Stadt Wien - <a href="http://data.wien.gv.at">data.wien.gv.at</a>'
|
||||||
|
};
|
||||||
var doc = request.responseText,
|
var doc = request.responseText,
|
||||||
caps = format.read(doc);
|
caps = format.read(doc);
|
||||||
fmzk = format.createLayer(caps, OpenLayers.Util.applyDefaults(
|
fmzk = format.createLayer(caps, OpenLayers.Util.applyDefaults(
|
||||||
{layer:"fmzk", requestEncoding:"REST", transitionEffect: "resize"}, defaults
|
{layer:"fmzk", requestEncoding:"REST", transitionEffect:"resize"}, defaults
|
||||||
));
|
));
|
||||||
aerial = format.createLayer(caps, OpenLayers.Util.applyDefaults(
|
aerial = format.createLayer(caps, OpenLayers.Util.applyDefaults(
|
||||||
{layer:"lb", requestEncoding:"REST", transitionEffect: "resize"}, defaults
|
{layer:"lb", requestEncoding:"REST", transitionEffect:"resize"}, defaults
|
||||||
));
|
));
|
||||||
labels = format.createLayer(caps, OpenLayers.Util.applyDefaults(
|
labels = format.createLayer(caps, OpenLayers.Util.applyDefaults(
|
||||||
{layer:"beschriftung", requestEncoding:"REST", isBaseLayer: false},
|
{layer:"beschriftung", requestEncoding:"REST", isBaseLayer: false},
|
||||||
defaults
|
defaults
|
||||||
));
|
));
|
||||||
map.addLayers([fmzk, aerial, labels]);
|
map.addLayers([fmzk, aerial, labels]);
|
||||||
|
zoomToInitialExtent();
|
||||||
// zoom to initial extent or restore position from permalink
|
|
||||||
var extent = fmzk.tileFullExtent,
|
|
||||||
ctr = extent.getCenterLonLat(),
|
|
||||||
zoom = map.getZoomForExtent(extent, true),
|
|
||||||
params = OpenLayers.Util.getParameters("?"+window.location.hash.substr(1));
|
|
||||||
OpenLayers.Util.applyDefaults(params, {x:ctr.lon, y:ctr.lat, z:zoom});
|
|
||||||
map.setCenter(new OpenLayers.LonLat(params.x, params.y), params.z);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Instead of building the layers from the capabilities document, we could
|
||||||
|
// look at it ourselves and create the layers manually. If you want to try
|
||||||
|
// that, uncomment the following code and remove the "Request capabilities
|
||||||
|
// and create layers" block above.
|
||||||
|
/*
|
||||||
|
var extent = new OpenLayers.Bounds(1799448.394855, 6124949.74777, 1848250.442089, 6162571.828177);
|
||||||
|
var defaults = {
|
||||||
|
requestEncoding: "REST",
|
||||||
|
matrixSet: "google3857",
|
||||||
|
tileFullExtent: extent,
|
||||||
|
tileLoadingDelay: 0,
|
||||||
|
attribution: 'Datenquelle: Stadt Wien - <a href="http://data.wien.gv.at">data.wien.gv.at</a>'
|
||||||
|
};
|
||||||
|
|
||||||
|
fmzk = new OpenLayers.Layer.WMTS(OpenLayers.Util.applyDefaults({
|
||||||
|
url: "http://www.wien.gv.at/wmts/fmzk/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg",
|
||||||
|
layer: "fmzk",
|
||||||
|
style: "pastell",
|
||||||
|
transitionEffect: "resize"
|
||||||
|
},
|
||||||
|
defaults));
|
||||||
|
aerial = new OpenLayers.Layer.WMTS(OpenLayers.Util.applyDefaults({
|
||||||
|
url: "http://www.wien.gv.at/wmts/lb/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg",
|
||||||
|
layer: "lb",
|
||||||
|
style: "farbe",
|
||||||
|
transitionEffect: "resize"
|
||||||
|
},
|
||||||
|
defaults));
|
||||||
|
labels = new OpenLayers.Layer.WMTS(OpenLayers.Util.applyDefaults({
|
||||||
|
url: "http://www.wien.gv.at/wmts/beschriftung/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
|
||||||
|
layer: "beschriftung",
|
||||||
|
style: "normal",
|
||||||
|
transitionEffect: null,
|
||||||
|
isBaseLayer: false
|
||||||
|
},
|
||||||
|
defaults));
|
||||||
|
map.addLayers([fmzk, aerial, labels]);
|
||||||
|
zoomToInitialExtent();
|
||||||
|
*/
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
// Reliably hide the address bar on Android and iOS devices. From
|
// Reliably hide the address bar on Android and iOS devices. From
|
||||||
|
|||||||
Reference in New Issue
Block a user