[mapguide-commits] r7503 - in branches/maestro-4.0.x: MaestroAPITests OSGeo.MapGuide.MaestroAPI/Mapping
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon May 20 04:24:19 PDT 2013
Author: jng
Date: 2013-05-20 04:24:19 -0700 (Mon, 20 May 2013)
New Revision: 7503
Modified:
branches/maestro-4.0.x/MaestroAPITests/RuntimeMapTests.cs
branches/maestro-4.0.x/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs
Log:
#2233: Fix scale ranges not initialized properly when creating a RuntimeMap. Unit tests updated to check for this.
Modified: branches/maestro-4.0.x/MaestroAPITests/RuntimeMapTests.cs
===================================================================
--- branches/maestro-4.0.x/MaestroAPITests/RuntimeMapTests.cs 2013-05-20 10:38:29 UTC (rev 7502)
+++ branches/maestro-4.0.x/MaestroAPITests/RuntimeMapTests.cs 2013-05-20 11:24:19 UTC (rev 7503)
@@ -169,6 +169,12 @@
var map2 = mapSvc.CreateMap("Session:" + _conn.SessionID + "//TestCreate2.Map", "Library://UnitTests/Maps/Sheboygan.MapDefinition", 1.0);
//var map3 = mapSvc.CreateMap("Library://UnitTests/Maps/Sheboygan.MapDefinition", 1.0);
+ Assert.NotNull(map.Layers["Parcels"]);
+ var parcelsLayers = map.Layers["Parcels"];
+ Assert.AreEqual(1, parcelsLayers.ScaleRanges.Length);
+ Assert.AreEqual(0.0, parcelsLayers.ScaleRanges[0].MinScale);
+ Assert.AreEqual(13000.0, parcelsLayers.ScaleRanges[0].MaxScale);
+
Assert.NotNull(map);
Assert.NotNull(map2);
//Assert.NotNull(map3);
@@ -249,6 +255,11 @@
//Tweak some settings
var parcels = map2.GetLayerByName("Parcels");
+ //Check these values still came through
+ Assert.AreEqual(1, parcels.ScaleRanges.Length);
+ Assert.AreEqual(0.0, parcels.ScaleRanges[0].MinScale);
+ Assert.AreEqual(13000.0, parcels.ScaleRanges[0].MaxScale);
+
var rail = map2.GetLayerByName("Rail");
Assert.NotNull(parcels);
Modified: branches/maestro-4.0.x/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs
===================================================================
--- branches/maestro-4.0.x/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs 2013-05-20 10:38:29 UTC (rev 7502)
+++ branches/maestro-4.0.x/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs 2013-05-20 11:24:19 UTC (rev 7503)
@@ -127,6 +127,7 @@
_featureSourceId = vl.ResourceId;
_filter = vl.Filter;
InitIdentityProperties(vl);
+ InitScaleRanges(vl);
_hasTooltips = !string.IsNullOrEmpty(vl.ToolTip);
}
else if (ldf.SubLayer.LayerType == LayerType.Raster)
@@ -135,6 +136,7 @@
_qualifiedClassName = rl.FeatureName;
_geometryPropertyName = rl.Geometry;
_featureSourceId = rl.ResourceId;
+ InitScaleRanges(rl);
}
_expandInLegend = false;
@@ -143,10 +145,47 @@
_selectable = true;
_showInLegend = true;
_visible = true;
-
_disableChangeTracking = false;
}
+ private void InitScaleRanges(IRasterLayerDefinition rl)
+ {
+ List<double> scales = new List<double>();
+ foreach (var gsr in rl.GridScaleRange)
+ {
+ if (gsr.MinScale.HasValue)
+ scales.Add(gsr.MinScale.Value);
+ else
+ scales.Add(0.0);
+
+ if (gsr.MaxScale.HasValue)
+ scales.Add(gsr.MaxScale.Value);
+ else
+ scales.Add(InfinityScale);
+ }
+ _scaleRanges = scales.ToArray();
+ EnsureOrderedMinMaxScales();
+ }
+
+ private void InitScaleRanges(IVectorLayerDefinition vl)
+ {
+ List<double> scales = new List<double>();
+ foreach (var vsr in vl.VectorScaleRange)
+ {
+ if (vsr.MinScale.HasValue)
+ scales.Add(vsr.MinScale.Value);
+ else
+ scales.Add(0.0);
+
+ if (vsr.MaxScale.HasValue)
+ scales.Add(vsr.MaxScale.Value);
+ else
+ scales.Add(InfinityScale);
+ }
+ _scaleRanges = scales.ToArray();
+ EnsureOrderedMinMaxScales();
+ }
+
/// <summary>
/// Initializes a new instance of the <see cref="RuntimeMapLayer"/> class.
/// </summary>
More information about the mapguide-commits
mailing list