Merge pull request #231 from Xelio/patch-addLayer-for-plugin

Add function for plugin to add layerGroup and persist display status between session
This commit is contained in:
Jon Atkins 2013-05-05 10:08:13 -07:00
commit 143c855c49

View File

@ -359,16 +359,21 @@ window.updateDisplayedLayerGroup = function(name, display) {
// Read layerGroup status from window.overlayStatus if it was added to map, // Read layerGroup status from window.overlayStatus if it was added to map,
// read from cookie if it has not added to map yet. // read from cookie if it has not added to map yet.
// return true if both overlayStatus and cookie didn't have the record // return 'defaultDisplay' if both overlayStatus and cookie didn't have the record
window.isLayerGroupDisplayed = function(name) { window.isLayerGroupDisplayed = function(name, defaultDisplay) {
if(typeof(overlayStatus[name]) !== 'undefined') return overlayStatus[name]; if(typeof(overlayStatus[name]) !== 'undefined') return overlayStatus[name];
var layersJSON = readCookie('ingress.intelmap.layergroupdisplayed'); var layersJSON = readCookie('ingress.intelmap.layergroupdisplayed');
if(!layersJSON) return true; if(!layersJSON) return defaultDisplay;
var layers = JSON.parse(layersJSON); var layers = JSON.parse(layersJSON);
// keep latest overlayStatus // keep latest overlayStatus
overlayStatus = $.extend(layers, overlayStatus); overlayStatus = $.extend(layers, overlayStatus);
if(typeof(overlayStatus[name]) === 'undefined') return true; if(typeof(overlayStatus[name]) === 'undefined') return defaultDisplay;
return overlayStatus[name]; return overlayStatus[name];
} }
window.addLayerGroup = function(name, layerGroup, defaultDisplay) {
if(isLayerGroupDisplayed(name, defaultDisplay)) map.addLayer(layerGroup);
layerChooser.addOverlay(layerGroup, name);
}