Hai all,
am geitting the key not found exception when am trying to clear all my plotted icons in the map.
"The given key was not present in the dictionary."
the below is the function am using while loading maplayers in suite.
LayerOverlay layerOverlay = new LayerOverlay();
InMemoryFeatureLayer pieMemoryLayer = new InMemoryFeatureLayer();
ValueStyle valueStyle = new ValueStyle();
public void loadMap()
{
wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
wpfMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
//map Layer
GeoTiffRasterLayer tifMapLayer = new GeoTiffRasterLayer(@"C:\\map1.tif");
tifMapLayer.LowerThreshold = 0;
tifMapLayer.UpperThreshold = double.MaxValue;
tifMapLayer.Open();
wpfMap1.CurrentExtent = tifMapLayer.GetBoundingBox();
tifMapLayer.Close();
//icon layer
InMemoryFeatureLayer pointLayer = new InMemoryFeatureLayer();
pointLayer.Open();
pointLayer.Columns.Add(new FeatureSourceColumn("PointType"));
pointLayer.Close();
// Draw features based on values
//ValueStyle valueStyle = new ValueStyle();
valueStyle.ColumnName = "PointType";
//valueStyle.ColumnName = "LabelType";
pointLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(valueStyle);
pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
//pie layer
// InMemoryFeatureLayer pieMemoryLayer = new InMemoryFeatureLayer();
pieMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.StandardColors.Black);
pieMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.StandardColors.Black;
pieMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.OuterPen = new GeoPen(GeoColor.FromArgb(200, GeoColor.StandardColors.Black), 5);
pieMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.SymbolPen = new GeoPen(GeoColor.FromArgb(255, GeoColor.StandardColors.Black), 8);
pieMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
wpfMap1.MapClick += new EventHandler<MapClickWpfMapEventArgs>(wpfMap1_MapClick);
layerOverlay.Layers.Add("MapLayer", tifMapLayer);
layerOverlay.Layers.Add("PointLayer", pointLayer);
layerOverlay.Layers.Add("PieLayer", pieMemoryLayer);
wpfMap1.Overlays.Add("LayerOverlay", layerOverlay);
wpfMap1.Refresh();
}
the below is the one am using to clear my icons and label everything. i jus want to display the map alone.
public void clearIcons()
{
InMemoryFeatureLayer im = (InMemoryFeatureLayer)wpfMap1.FindFeatureLayer("PointLayer");
im.InternalFeatures.Clear();
wpfMap1.Refresh(wpfMap1.Overlays["LayerOverlay"]);
}