Skip to content

Commit

Permalink
Insert MIXED node layers as layer.Group in Map
Browse files Browse the repository at this point in the history
  • Loading branch information
olive committed Apr 12, 2016
1 parent c135364 commit 2ed880d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
11 changes: 7 additions & 4 deletions contribs/gmf/src/directives/layertree.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,12 @@ gmf.LayertreeController = function($http, $sce, $scope, ngeoCreatePopup,
* @param {GmfThemesNode} node Layer tree node.
* @param {number=} opt_depth ngeo layertree node depth.
* @param {boolean=} opt_createWMS True to allow create wms layer.
* @param {GmfThemesNode=} parentNode parent node of the first parameter.
* @return {ol.layer.Base} The OpenLayers layer or group for the node.
* @export
*/
gmf.LayertreeController.prototype.getLayer = function(node, opt_depth,
opt_createWMS) {
opt_createWMS, parentNode) {
var type = gmf.Themes.getNodeType(node);
var layer = null;

Expand Down Expand Up @@ -241,7 +242,9 @@ gmf.LayertreeController.prototype.getLayer = function(node, opt_depth,
var isMerged = type === gmf.Themes.NodeType.NOT_MIXED_GROUP;
layer.set('isMerged', isMerged);

this.dataLayerGroup_.getLayers().insertAt(0, layer);
if (!parentNode || gmf.Themes.getNodeType(parentNode) !== gmf.Themes.NodeType.MIXED_GROUP) {
this.dataLayerGroup_.getLayers().insertAt(0, layer);
}

// If layer is 'unchecked', set it to invisible.
var metadata = node.metadata;
Expand Down Expand Up @@ -273,14 +276,14 @@ gmf.LayertreeController.prototype.getLayerCaseMixedGroup_ = function(node) {
for (i = 0; i < subNodes.length; i++) {
subNode = subNodes[i];
// Create all sublayers include wms layers;
layer = this.getLayer(subNode, 1, true);
layer = this.getLayer(subNode, 1, true, node);
if (goog.isDefAndNotNull(layer)) {
layers.push(layer);
nodeNames.push(subNode.name);
}
}
var group = this.layerHelper_.createBasicGroup(layers);

this.dataLayerGroup_.getLayers().insertAt(0, group);
// Keep a reference to this group.
this.groupNodeStates_[goog.getUid(group)] = [];
return group;
Expand Down
8 changes: 7 additions & 1 deletion contribs/gmf/src/services/permalink.js
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,13 @@ gmf.Permalink.prototype.initLayers_ = function() {
// to any change happening to the existing layers and any added or
// removed ones.
layers.forEach(function(layer) {
this.registerLayer_(layer, true);
if (layer instanceof ol.layer.Group) {
layer.getLayers().forEach(function(l) {
this.registerLayer_(l, true);
}, this);
} else {
this.registerLayer_(layer, true);
}
}, this);

var layersUid = goog.getUid(layers);
Expand Down

0 comments on commit 2ed880d

Please sign in to comment.