[fusion-commits] r2760 - trunk/layers/MapGuide
svn_fusion at osgeo.org
svn_fusion at osgeo.org
Sun Aug 4 21:11:30 PDT 2013
Author: liuar
Date: 2013-08-04 21:11:30 -0700 (Sun, 04 Aug 2013)
New Revision: 2760
Modified:
trunk/layers/MapGuide/MapGuide.js
Log:
Submit on behalf of Andy Zhang.
Add null check for rt.Layer. rt.Layer can be null in some special cases e.g. preview water mark.
Modified: trunk/layers/MapGuide/MapGuide.js
===================================================================
--- trunk/layers/MapGuide/MapGuide.js 2013-08-04 14:42:20 UTC (rev 2759)
+++ trunk/layers/MapGuide/MapGuide.js 2013-08-05 04:11:30 UTC (rev 2760)
@@ -355,94 +355,95 @@
var lsr = {
layers: []
};
- for (var i = 0; i < rt.Layer.length; i++) {
- var lyr = rt.Layer[i];
- var cl = {
- uniqueId: lyr.ObjectId[0],
- layerName: lyr.Name[0],
- layerTypes: [],
- resourceId: lyr.LayerDefinition[0],
- parentGroup: lyr.ParentId ? lyr.ParentId[0] : "",
- selectable: (lyr.Selectable[0] == "true"),
- visible: (lyr.Visible[0] == "true"),
- actuallyVisible: (lyr.ActuallyVisible[0] == "true"),
- editable: false,
- isBaseMapLayer: (lyr.Type[0] == "2"),
- legendLabel: (lyr.LegendLabel ? lyr.LegendLabel[0] : ""),
- displayInLegend: (lyr.DisplayInLegend[0] == "true"),
- expandInLegend: (lyr.ExpandInLegend[0] == "true")
- };
-
- lm.layers.push(cl);
-
- var clsr = {
- uniqueId: cl.uniqueId,
- scaleRanges: []
- };
-
- var ltypes = {};
-
- var minScale = 1.0e10;
- var maxScale = 0;
-
- if (lyr.ScaleRange) {
- for (var j = 0; j < lyr.ScaleRange.length; j++) {
- var sr = lyr.ScaleRange[j];
- var csr = {
- isCompressed: false,
- maxScale: sr.MaxScale[0],
- minScale: sr.MinScale[0],
- styles: []
- };
-
- minScale = Math.min(minScale, sr.MinScale[0]);
- maxScale = Math.max(maxScale, sr.MaxScale[0]);
-
- if (sr.FeatureStyle) {
- for (var f = 0; f < sr.FeatureStyle.length; f++) {
- var fts = sr.FeatureStyle[f];
- for (var k = 0; k < fts.Rule.length; k++) {
- var rule = fts.Rule[k];
- var cr = {
- categoryIndex: k,
- filter: rule.Filter ? rule.Filter[0] : "",
- geometryType: parseInt(fts.Type[0]),
- legendLabel: rule.LegendLabel ? rule.LegendLabel[0] : ""
- };
- if (typeof(ltypes[cr.geometryType]) == 'undefined')
- ltypes[cr.geometryType] = cr.geometryType;
- //One single absence of an icon is enough to hint that it's compressed
- if (!rule.Icon) {
- csr.isCompressed = true;
- } else {
- cr.imageData = "data:" + rt.IconMimeType[0] + ";base64," + rule.Icon[0];
+ if (rt.Layer) {
+ for (var i = 0; i < rt.Layer.length; i++) {
+ var lyr = rt.Layer[i];
+ var cl = {
+ uniqueId: lyr.ObjectId[0],
+ layerName: lyr.Name[0],
+ layerTypes: [],
+ resourceId: lyr.LayerDefinition[0],
+ parentGroup: lyr.ParentId ? lyr.ParentId[0] : "",
+ selectable: (lyr.Selectable[0] == "true"),
+ visible: (lyr.Visible[0] == "true"),
+ actuallyVisible: (lyr.ActuallyVisible[0] == "true"),
+ editable: false,
+ isBaseMapLayer: (lyr.Type[0] == "2"),
+ legendLabel: (lyr.LegendLabel ? lyr.LegendLabel[0] : ""),
+ displayInLegend: (lyr.DisplayInLegend[0] == "true"),
+ expandInLegend: (lyr.ExpandInLegend[0] == "true")
+ };
+
+ lm.layers.push(cl);
+
+ var clsr = {
+ uniqueId: cl.uniqueId,
+ scaleRanges: []
+ };
+
+ var ltypes = {};
+
+ var minScale = 1.0e10;
+ var maxScale = 0;
+
+ if (lyr.ScaleRange) {
+ for (var j = 0; j < lyr.ScaleRange.length; j++) {
+ var sr = lyr.ScaleRange[j];
+ var csr = {
+ isCompressed: false,
+ maxScale: sr.MaxScale[0],
+ minScale: sr.MinScale[0],
+ styles: []
+ };
+
+ minScale = Math.min(minScale, sr.MinScale[0]);
+ maxScale = Math.max(maxScale, sr.MaxScale[0]);
+
+ if (sr.FeatureStyle) {
+ for (var f = 0; f < sr.FeatureStyle.length; f++) {
+ var fts = sr.FeatureStyle[f];
+ for (var k = 0; k < fts.Rule.length; k++) {
+ var rule = fts.Rule[k];
+ var cr = {
+ categoryIndex: k,
+ filter: rule.Filter ? rule.Filter[0] : "",
+ geometryType: parseInt(fts.Type[0]),
+ legendLabel: rule.LegendLabel ? rule.LegendLabel[0] : ""
+ };
+ if (typeof(ltypes[cr.geometryType]) == 'undefined')
+ ltypes[cr.geometryType] = cr.geometryType;
+ //One single absence of an icon is enough to hint that it's compressed
+ if (!rule.Icon) {
+ csr.isCompressed = true;
+ } else {
+ cr.imageData = "data:" + rt.IconMimeType[0] + ";base64," + rule.Icon[0];
+ }
+ csr.styles.push(cr);
}
- csr.styles.push(cr);
}
}
+ clsr.scaleRanges.push(csr);
}
- clsr.scaleRanges.push(csr);
+ } else {
+ //For a drawing layer which doesn't have scale ranges, we need add a dummy scale range for it.
+ //Otherwise, the legend tree will not display correctly.
+ minScale = 0;
+ maxScale = 1.0e10;
+ clsr.scaleRanges.push(new Fusion.Layers.ScaleRange({
+ minScale: 0,
+ maxScale: 1.0e10},
+ Fusion.Constant.LAYER_DWF_TYPE, {label:lyr.layerName}));
}
- } else {
- //For a drawing layer which doesn't have scale ranges, we need add a dummy scale range for it.
- //Otherwise, the legend tree will not display correctly.
- minScale = 0;
- maxScale = 1.0e10;
- clsr.scaleRanges.push(new Fusion.Layers.ScaleRange({
- minScale: 0,
- maxScale: 1.0e10},
- Fusion.Constant.LAYER_DWF_TYPE, {label:lyr.layerName}));
+
+ for (var lt in ltypes)
+ cl.layerTypes.push(lt);
+
+ cl.minScale = minScale;
+ cl.maxScale = maxScale;
+
+ lsr.layers.push(clsr);
}
-
- for (var lt in ltypes)
- cl.layerTypes.push(lt);
-
- cl.minScale = minScale;
- cl.maxScale = maxScale;
-
- lsr.layers.push(clsr);
}
-
return {
LoadMap: lm,
LoadScaleRanges: lsr
More information about the fusion-commits
mailing list