Skip to content

Commit

Permalink
map: refactor context layer loading using new addFromScratch methods
Browse files Browse the repository at this point in the history
  • Loading branch information
fgravin committed Apr 9, 2015
1 parent 45d6761 commit 95e4623
Showing 1 changed file with 29 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
'http://www.opengis.net/ows': 'ows'
}
}
);
);
var unmarshaller = context.createUnmarshaller();
var marshaller = context.createMarshaller();

Expand All @@ -25,6 +25,7 @@
'$translate',
'$q',
'$filter',
'gnWmsQueue',
function(gnMap, gnOwsCapabilities, $http, gnViewerSettings,
$translate, $q, $filter) {

Expand Down Expand Up @@ -84,20 +85,16 @@
}
else {
promises.push(this.createLayer(layer, map, i).then(
function(o) {
var olLayer = o.ol;
var ctxLayer = o.ctx;
bgLayers.push({layer:olLayer, idx: o.idx});
function(olLayer) {
bgLayers.push({layer:olLayer, idx: olLayer.get('bgIdx')});
olLayer.displayInLayerManager = false;
olLayer.background = true;
olLayer.set('group', 'Background layers');
olLayer.setVisible(!ctxLayer.hidden);
}));
}
} else {
var server = layer.server[0];
if (server.service == 'urn:ogc:serviceType:WMS') {
self.addLayer(layer, map);
self.createLayer(layer, map);
}
}
}
Expand Down Expand Up @@ -285,72 +282,48 @@
*/
this.createLayer = function(layer, map, bgIdx) {

var defer = $q.defer();

var server = layer.server[0];
var res = server.onlineResource[0];
var reT = /type\s*=\s*([^,|^}|^\s]*)/;
var reL = /name\s*=\s*([^,|^}|^\s]*)/;

var createOnly = angular.isDefined(bgIdx);

if (layer.name.match(reT)) {
var type = reT.exec(layer.name)[1];
var name = reL.exec(layer.name)[1];

if (type == 'wmts') {
gnOwsCapabilities.getWMTSCapabilities(res.href).
then(function(capObj) {
var info = gnOwsCapabilities.getLayerInfoFromCap(
name, capObj);
info.group = layer.group;
var l = gnMap.createOlWMTSFromCap(map, info, capObj);
l.setOpacity(layer.opacity);
l.setVisible(!layer.hidden);
return gnMap.addWmtsFromScratch(map, res.href, name, createOnly).
then(function(olL) {
olL.set('group', layer.group);
olL.setOpacity(layer.opacity);
olL.setVisible(!layer.hidden);
if (layer.title) {
l.set('title', layer.title);
l.set('label', layer.title);
olL.set('title', layer.title);
olL.set('label', layer.title);
}
defer.resolve({ol: l, ctx: layer, idx:bgIdx});
if(bgIdx) {
olL.set('bgIdx', bgIdx);
}
return olL;
});
}
}
else { // we suppose it's WMS
gnOwsCapabilities.getWMSCapabilities(res.href).then(function(capObj) {
var info = gnOwsCapabilities.getLayerInfoFromCap(
layer.name, capObj);
info.group = layer.group;
var l = gnMap.createOlWMSFromCap(map, info);
l.setOpacity(layer.opacity);
l.setVisible(!layer.hidden);
if (layer.title) {
l.set('title', layer.title);
l.set('label', layer.title);
}

defer.resolve({ol: l, ctx: layer, idx:bgIdx});
}, function() {
console.warn('Failed to load layer from : ' + res.href +
'during capabilities reading.');
defer.reject(layer.name);
});
return gnMap.addWmsFromScratch(map, res.href, layer.name, createOnly).
then(function(olL) {
olL.set('group', layer.group);
olL.setOpacity(layer.opacity);
olL.setVisible(!layer.hidden);
if (layer.title) {
olL.set('title', layer.title);
olL.set('label', layer.title);
}
return olL;
});
}
return defer.promise;
};

/**
* Adds a WMS layer to map
* @param {Object} layer layer
* @param {ol.map} map map
*/
this.addLayer = function(layer, map) {
this.createLayer(layer, map).then(function(l) {
map.addLayer(l.ol);
}, function(layerName) {
var failedLoadingLayers = map.get('failedLayers') || [];
if(failedLoadingLayers.indexOf(layerName) < 0) {
failedLoadingLayers.push(layerName);
}
map.set('failedLayers', failedLoadingLayers);
});
};
}
]);
Expand Down

0 comments on commit 95e4623

Please sign in to comment.