[mapguide-commits] r7793 - in trunk/MgDev/Doc/samples/ol2samples: assets tiled
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed Aug 21 07:22:33 PDT 2013
Author: jng
Date: 2013-08-21 07:22:33 -0700 (Wed, 21 Aug 2013)
New Revision: 7793
Modified:
trunk/MgDev/Doc/samples/ol2samples/assets/legend.js
trunk/MgDev/Doc/samples/ol2samples/tiled/index.html
Log:
#2344: Update legend.js to also show tiled layers/groups. Update tiled example to use our legend component
Modified: trunk/MgDev/Doc/samples/ol2samples/assets/legend.js
===================================================================
--- trunk/MgDev/Doc/samples/ol2samples/assets/legend.js 2013-08-21 14:00:54 UTC (rev 7792)
+++ trunk/MgDev/Doc/samples/ol2samples/assets/legend.js 2013-08-21 14:22:33 UTC (rev 7793)
@@ -10,6 +10,7 @@
var legendSelector = options.legendSelector;
this.map = options.map;
this.mgLayer = options.mgLayerOL;
+ this.mgTiledLayers = options.mgTiledLayers || {};
this.debug = false;
this.stdIconRoot = options.stdIconRoot || "../../stdicons";
@@ -75,14 +76,23 @@
}
$("input.group-checkbox", this.rootEl).change(function() {
- var bShow = $(this).is(":checked");
- var objId = $(this).val();
- _self.showGroup(objId, bShow);
+ var el = $(this);
+ var bShow = el.is(":checked");
+ if (el.attr("data-is-tiled") == "true") {
+ var name = el.attr("data-group-name");
+ if (typeof(_self.mgTiledLayers[name]) != 'undefined') {
+ _self.mgTiledLayers[name].setVisibility(bShow);
+ }
+ } else {
+ var objId = el.val();
+ _self.showGroup(objId, bShow);
+ }
});
$("input.layer-checkbox", this.rootEl).change(function() {
- var bShow = $(this).is(":checked");
- var objId = $(this).val();
+ var el = $(this);
+ var bShow = el.is(":checked");
+ var objId = el.val();
_self.showLayer(objId, bShow);
});
@@ -137,7 +147,7 @@
};
Legend.prototype.createGroupElement = function(group) {
- return $("<li><input type='checkbox' class='group-checkbox' value='" + group.ObjectId[0] + "' " + ((group.Visible[0] == "true") ? "checked='checked'" : "") + " /><img src='" + this.stdIconRoot + "/lc_group.gif' /> " + group.LegendLabel[0] + "<ul class='groupChildren'></ul></li>");
+ return $("<li><input type='checkbox' class='group-checkbox' data-is-tiled='" + (group.Type[0] == 2) + "' data-group-name='" + group.Name[0] + "' value='" + group.ObjectId[0] + "' " + ((group.Visible[0] == "true") ? "checked='checked'" : "") + " /><img src='" + this.stdIconRoot + "/lc_group.gif' /> " + group.LegendLabel[0] + "<ul class='groupChildren'></ul></li>");
};
Legend.prototype.getIconUri = function(iconBase64) {
@@ -183,7 +193,10 @@
} else {
icon = this.getIconUri(fts.Rule[0].Icon[0]);
}
- els.push($("<li class='layer-node' data-layer-min-scale='" + scaleRange.MinScale[0] + "' data-layer-max-scale='" + scaleRange.MaxScale[0] + "'><input type='checkbox' class='layer-checkbox' value='" + layer.ObjectId[0] + "' " + ((layer.Visible[0] == "true") ? "checked='checked'" : "") + " /><img src='" + icon + "' /> " + text + childHtml + "</li>"));
+ var chkBoxHtml = "";
+ if (layer.Type[0] == 1) //Dynamic
+ chkBoxHtml = "<input type='checkbox' class='layer-checkbox' value='" + layer.ObjectId[0] + "' " + ((layer.Visible[0] == "true") ? "checked='checked'" : "") + " />";
+ els.push($("<li class='layer-node' data-layer-min-scale='" + scaleRange.MinScale[0] + "' data-layer-max-scale='" + scaleRange.MaxScale[0] + "'>" + chkBoxHtml + "<img src='" + icon + "' /> " + text + childHtml + "</li>"));
}
}
}
Modified: trunk/MgDev/Doc/samples/ol2samples/tiled/index.html
===================================================================
--- trunk/MgDev/Doc/samples/ol2samples/tiled/index.html 2013-08-21 14:00:54 UTC (rev 7792)
+++ trunk/MgDev/Doc/samples/ol2samples/tiled/index.html 2013-08-21 14:22:33 UTC (rev 7793)
@@ -12,11 +12,12 @@
#rootList li { list-style-type: none; }
.olControlMousePosition { background: #ffff66; font-size: 0.6em !important; padding: 2px; }
- #layers { background: #6699FF; color: white; }
- #layers .baseLayersDiv { font-size: 0.7em; }
+ #baseLayerSwitcher { background: #6699FF; color: white; padding: 5px; }
+ #baseLayerSwitcher .baseLayersDiv { font-size: 0.7em; }
</style>
<script type="text/javascript" src="../assets/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="../assets/OpenLayers.js"></script>
+ <script type="text/javascript" src="../assets/legend.js"></script>
<script type="text/javascript">
//This sample is assumed to be hosted at http://servername/mapguide/ol2samples/tiled/index.html
@@ -35,9 +36,9 @@
OpenLayers.Control.DragPan.prototype.enableKinetic = false;
//Have a play with the bitmask values to see the differences in JSON payload size
//and to see how our legend control gracefully handles such situations
- createMap(REQ_NONE);
+ //createMap(REQ_NONE);
//createMap(REQ_LAYER_STRUCTURE);
- //createMap(REQ_LAYER_STRUCTURE | REQ_LAYER_FEATURE_SOURCE | REQ_LAYER_ICONS);
+ createMap(REQ_LAYER_STRUCTURE | REQ_LAYER_FEATURE_SOURCE | REQ_LAYER_ICONS);
});
function createMap(reqFeatures) {
@@ -119,7 +120,7 @@
new OpenLayers.Control.Zoom(),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.MousePosition(),
- new OpenLayers.Control.LayerSwitcher({ div: $("#layers")[0] }),
+ new OpenLayers.Control.LayerSwitcher({ div: $("#baseLayerSwitcher")[0] }),
new OpenLayers.Control.CustomNavToolbar({alwaysZoom:true})
]
};
@@ -138,6 +139,7 @@
};
map = new OpenLayers.Map('map', mapOptions );
+ var tiledLayers = {};
for (var i = 0; i < rtMapInfo.RuntimeMap.Group.length; i++) {
var group = rtMapInfo.RuntimeMap.Group[i];
if (group.Type[0] == "2") { //MgLayerGroupType.BaseMap
@@ -148,9 +150,19 @@
singleTile: false
});
map.addLayer(layer);
+ tiledLayers[group.Name[0]] = layer;
}
}
map.zoomToMaxExtent();
+
+ var legend = new Legend({
+ legendSelector: "#rootList",
+ stdIconRoot: "../../stdicons",
+ runtimeMap: rtMapInfo,
+ map: map,
+ mgTiledLayers: tiledLayers
+ });
+ legend.update();
}
</script>
</head>
@@ -162,7 +174,13 @@
</div>
<div id="wrap">
<div id="layers">
-
+ <div id="baseLayerSwitcher">
+ </div>
+ <div id="legend">
+ <strong>Layer and Groups</strong>
+ <ul id="rootList">
+ </ul>
+ </div>
</div>
<div id="map">
</div>
More information about the mapguide-commits
mailing list