void HilightItem(Graphic graphic, Layer layer) { if (layer.Info is MapPointLayer) { graphic.Symbol = MapPointLayer.GetSymbol(GeoStatus.Hilight); } else if (layer.Info is MapShapeLayer) { var code = graphic.Attributes[KEY_CODE]; var list = layer.GraphicsLayer.Graphics.Where(x => x.Attributes[KEY_CODE].ToString() == code.ToString()); list.ToList().ForEach(g => { if (g.Geometry is MapPoint) { g.Symbol = MapShapeLayer.GetSymbol(GeoMarkerType.Point, GeoStatus.Hilight); } else { g.Symbol = MapShapeLayer.GetSymbol(GeoMarkerType.Fill, GeoStatus.Hilight); } }); } else if (layer.Info is MapLineLayer) { graphic.Symbol = MapLineLayer.GetSymbol(GeoMarkerType.Line, GeoStatus.Hilight); } else if (layer.Info is MapEventLayer) { if (layer.Info.ConvertTo <MapEventLayer>().MarkerType == EventMarkerType.Proportional) { (graphic.Symbol as SimpleMarkerSymbol).Color = DefaultSettings.GetColor(GeoStatus.Hilight); } else { graphic.Symbol = layer.Info.ConvertTo <MapEventLayer>().GetSymbol(GeoStatus.Hilight); } } }
void SetAllNormal(Layer layer) { if (layer.Info is MapPointLayer) { layer.GraphicsLayer.Graphics.ToList().ForEach(g => g.Symbol = MapPointLayer.GetSymbol(GeoStatus.Normal)); } else if (layer.Info is MapShapeLayer) { layer.GraphicsLayer.Graphics.ToList().ForEach(g => { if (g.Geometry is MapPoint) { g.Symbol = MapShapeLayer.GetSymbol(GeoMarkerType.Point, GeoStatus.Normal); } else { g.Symbol = MapShapeLayer.GetSymbol(GeoMarkerType.Fill, GeoStatus.Normal); } }); } else if (layer.Info is MapLineLayer) { layer.GraphicsLayer.Graphics.ToList().ForEach(g => g.Symbol = MapLineLayer.GetSymbol(GeoMarkerType.Line, GeoStatus.Normal)); } else if (layer.Info is MapEventLayer) { if ((layer.Info.ConvertTo <MapEventLayer>()).MarkerType == EventMarkerType.Proportional) { layer.GraphicsLayer.Graphics.ToList().ForEach(g => (g.Symbol as SimpleMarkerSymbol).Color = DefaultSettings.GetColor(GeoStatus.Normal)); } else { layer.GraphicsLayer.Graphics.ToList().ForEach(g => g.Symbol = (layer.Info.ConvertTo <MapEventLayer>().GetSymbol(GeoStatus.Normal))); } } }
private void AddLineLayer(List <IGeoInfo> lineList, Layer layer) { foreach (LineGeoInfo line in lineList) { if (line.Polylines.Values.Count == 0) { continue; } PolylineBuilder builder = new PolylineBuilder(SpatialReferences.Wgs84); line.Polylines.Values.ToList().ForEach(p => builder.AddParts(p.Parts)); Polyline polyline = builder.ToGeometry(); layer.GraphicsLayer.Graphics.Add(new Graphic(polyline, line.AttrList, MapLineLayer.GetSymbol(GeoMarkerType.Line, GeoStatus.Normal))); _shapeList.Add(polyline.Extent); //_otherGraphic.Graphics.Add(new Graphic(polyline.Extent.GetCenter(), line.AttrList, MapLineLayer.GetSymbol(GeoType.Point, GeoStatus.Normal))); } }