From 932c284a2e7899ca6c42d8d1f87fea71e40bf713 Mon Sep 17 00:00:00 2001 From: Bruno Binet Date: Wed, 20 Mar 2013 18:14:48 +0100 Subject: [PATCH 1/3] ArcGis use RESTful The OGC documentation is not clear if we should use REST or RESTful. --- src/ol/source/wmtssource.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ol/source/wmtssource.js b/src/ol/source/wmtssource.js index 0139709b92..157e8d0f76 100644 --- a/src/ol/source/wmtssource.js +++ b/src/ol/source/wmtssource.js @@ -204,21 +204,22 @@ ol.source.WMTS.optionsFromCapabilities = function(wmtsCap, layer) { var encodings = goog.object.getKeys( gets[0]['constraints']['GetEncoding']['allowedValues']); goog.asserts.assert(encodings.length > 0); - var requestEncoding = /** @type {ol.source.WMTSRequestEncoding} */ - (encodings[0]); - // TODO: arcgis support, quote from ol2: - // The OGC documentation is not clear if we should use REST or RESTful, - // ArcGis use RESTful, and OpenLayers use REST. var urls; - switch (requestEncoding) { - case ol.source.WMTSRequestEncoding.REST: + var requestEncoding; + switch (encodings[0]) { + case 'REST': + case 'RESTful': + // The OGC documentation is not clear if we should use REST or RESTful, + // ArcGis use RESTful, and OpenLayers use REST. + requestEncoding = ol.source.WMTSRequestEncoding.REST; goog.asserts.assert(l['resourceUrls'].hasOwnProperty('tile')); goog.asserts.assert(l['resourceUrls']['tile'].hasOwnProperty(format)); urls = /** @type {Array.} */ (l['resourceUrls']['tile'][format]); break; - case ol.source.WMTSRequestEncoding.KVP: + case 'KVP': + requestEncoding = ol.source.WMTSRequestEncoding.REST; urls = []; goog.array.forEach(gets, function(elt, index, array) { if (elt['constraints']['GetEncoding']['allowedValues'].hasOwnProperty( From 7fec1f5208f2a00dc5b7ac8c3a653c1654db1672 Mon Sep 17 00:00:00 2001 From: Bruno Binet Date: Thu, 21 Mar 2013 11:02:01 +0100 Subject: [PATCH 2/3] ArcGis use camelcase 'Style', not lowercase 'style' The OGC documentation is not so clear if we should use style or Style. --- src/ol/source/wmtssource.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/source/wmtssource.js b/src/ol/source/wmtssource.js index 157e8d0f76..65fc67523f 100644 --- a/src/ol/source/wmtssource.js +++ b/src/ol/source/wmtssource.js @@ -47,6 +47,7 @@ ol.source.WMTS = function(wmtsOptions) { var context = { 'Layer': wmtsOptions.layer, 'style': wmtsOptions.style, + 'Style': wmtsOptions.style, 'TileMatrixSet': wmtsOptions.matrixSet }; goog.object.extend(context, dimensions); From c11193f71d9b549d8d8fb63b4cdc08fdfef445a7 Mon Sep 17 00:00:00 2001 From: Bruno Binet Date: Wed, 20 Mar 2013 17:10:01 +0100 Subject: [PATCH 3/3] Use Vienna wmts in wmts-from-capabilities example vienna wmts capabilities url is: http://maps.wien.gv.at/wmts/1.0.0/WMTSCapabilities.xml --- examples/wmts-from-capabilities.html | 1 - examples/wmts-from-capabilities.js | 34 +++++++++++++++------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/examples/wmts-from-capabilities.html b/examples/wmts-from-capabilities.html index 6cc64678a7..ebfc3c0204 100644 --- a/examples/wmts-from-capabilities.html +++ b/examples/wmts-from-capabilities.html @@ -49,7 +49,6 @@ - diff --git a/examples/wmts-from-capabilities.js b/examples/wmts-from-capabilities.js index 9dc028a848..ebdefcc810 100644 --- a/examples/wmts-from-capabilities.js +++ b/examples/wmts-from-capabilities.js @@ -1,23 +1,23 @@ goog.require('ol.Coordinate'); -goog.require('ol.Extent'); goog.require('ol.Map'); -goog.require('ol.RendererHints'); +goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.TileLayer'); goog.require('ol.parser.ogc.WMTSCapabilities'); -goog.require('ol.projection'); goog.require('ol.source.WMTS'); +// the getCapabilities document uses EPSG:31256 projection +Proj4js.defs['EPSG:31256'] = '+proj=tmerc +lat_0=0 ' + + '+lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel ' + + '+towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 ' + + '+units=m +no_defs'; + var map, capabilities; var parser = new ol.parser.ogc.WMTSCapabilities(); -var projection = ol.projection.configureProj4jsProjection({ - code: 'EPSG:21781', - extent: new ol.Extent(485869.5728, 76443.1884, 837076.5648, 299941.7864) -}); var xhr = new XMLHttpRequest(); -xhr.open('GET', 'http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml', true); +xhr.open('GET', 'data/WMTSCapabilities.xml', true); /** @@ -26,21 +26,23 @@ xhr.open('GET', 'http://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml', true); xhr.onload = function() { if (xhr.status == 200) { capabilities = parser.read(xhr.responseXML); - var wmtsOptions = ol.source.WMTS.optionsFromCapabilities( - capabilities, 'ch.swisstopo.pixelkarte-farbe'); - wmtsOptions.crossOrigin = 'anonymous'; map = new ol.Map({ layers: [ new ol.layer.TileLayer({ - source: new ol.source.WMTS(wmtsOptions) + source: new ol.source.WMTS(ol.source.WMTS.optionsFromCapabilities( + capabilities, 'fmzk')) + }), + new ol.layer.TileLayer({ + source: new ol.source.WMTS(ol.source.WMTS.optionsFromCapabilities( + capabilities, 'beschriftung')) }) ], - renderers: ol.RendererHints.createFromQueryData(), + renderer: ol.RendererHint.CANVAS, target: 'map', view: new ol.View2D({ - center: projection.getExtent().getCenter(), - projection: projection, - zoom: 1 + center: new ol.Coordinate(1823849, 6143760), + projection: 'EPSG:3857', + zoom: 11 }) }); }