Skip to content

Commit

Permalink
Improved WMTS support for restful (#2152)
Browse files Browse the repository at this point in the history
Improved WMTS support for restful
  • Loading branch information
josegar74 committed Sep 7, 2017
1 parent e3fca92 commit 81bd08f
Showing 1 changed file with 57 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1282,17 +1282,49 @@
var url, urls = capabilities.operationsMetadata.GetTile.
DCP.HTTP.Get;

var useKvp = false;
var useRest = false;

for (var i = 0; i < urls.length; i++) {
if (urls[i].Constraint[0].AllowedValues.Value[0].
toLowerCase() == 'kvp') {
url = urls[i].href;
useKvp = true;
break;
}
}

if (!useKvp) {
for (var i = 0; i < urls.length; i++) {
if (urls[i].Constraint[0].AllowedValues.Value[0].
toLowerCase() == 'restful') {
useRest = true;
break;
}
}
}

var urlCap = capabilities.operationsMetadata.GetCapabilities.
DCP.HTTP.Get[0].href;

var urlCapType = capabilities.operationsMetadata.GetCapabilities.
DCP.HTTP.Get[0].
Constraint[0].AllowedValues.Value[0].toLowerCase();

if (urlCapType == 'restful') {
if (urlCap.indexOf('/1.0.0/WMTSCapabilities.xml') == -1) {
urlCap = urlCap + '/1.0.0/WMTSCapabilities.xml';
}
} else {
var parts = urlCap.split('?');

urlCap = gnUrlUtils.append(parts[0],
gnUrlUtils.toKeyValue({
service: 'WMTS',
request: 'GetCapabilities',
version: '1.0.0'}));
}

var style = layer.Style[0].Identifier;

var projection = map.getView().getProjection();
Expand Down Expand Up @@ -1330,8 +1362,7 @@
matrixIds[z] = matrix.Identifier;
}

var source = new ol.source.WMTS({
url: url,
var sourceConfig = {
layer: layer.Identifier,
matrixSet: matrixSet.Identifier,
format: layer.Format[0] || 'image/png',
Expand All @@ -1342,7 +1373,26 @@
matrixIds: matrixIds
}),
style: style
});
};

if (useRest) {
var urls = [];
for (var i = 0; i < layer.ResourceURL.length; i++) {
urls.push(layer.ResourceURL[i].template);
}

angular.extend(sourceConfig, {
urls: urls,
requestEncoding: 'REST'
});
} else {
angular.extend(sourceConfig, {
url: url
});

}

var source = new ol.source.WMTS(sourceConfig);

var olLayer = new ol.layer.Tile({
extent: projection.getExtent(),
Expand Down Expand Up @@ -1450,11 +1500,11 @@
});
//ALEJO: tms support
case 'tms':
return new ol.layer.Tile({
source: new ol.source.XYZ({
return new ol.layer.Tile({
source: new ol.source.XYZ({
url: opt.url
}),
title: title ||  'TMS Layer'
}),
title: title ||  'TMS Layer'
});
case 'bing_aerial':
return new ol.layer.Tile({
Expand Down

0 comments on commit 81bd08f

Please sign in to comment.