public AgsLegend(MapServerLegendInfo mapServerLegendInfo) { _mapServerLegendInfo = mapServerLegendInfo; foreach (MapServerLegendGroup mapServerLegendGroup in mapServerLegendInfo.LegendGroups) { Groups.Add(new AgsLegendGroup(mapServerLegendGroup)); } }
public AgsDataFrame(AgsMapService service, MapServerInfo mapServerInfo, bool isDefault) { _mapServerInfo = mapServerInfo; Service = service; Name = mapServerInfo.Name; IsDefault = isDefault; ImageType imageType = new ImageType(esriImageFormat.esriImagePNG, esriImageReturnType.esriImageReturnMimeData); MapServerLegendInfo[] legendInfos = service.MapServer.GetLegendInfo(mapServerInfo.Name, null, null, imageType, null, null); foreach (MapLayerInfo mapLayerInfo in mapServerInfo.MapLayerInfos) { MapServerLegendInfo mapServerLegendInfo = legendInfos.FirstOrDefault(li => li.LayerID == mapLayerInfo.LayerID); LayerDescription layerDescription = mapServerInfo.DefaultMapDescription.LayerDescriptions.First(ld => ld.LayerID == mapLayerInfo.LayerID); Layers.Add(new AgsLayer(this, mapLayerInfo, mapServerLegendInfo, layerDescription.Visible)); } CreateLayerHierarchy(); }
public AgsLayer(AgsDataFrame dataFrame, MapLayerInfo mapLayerInfo, MapServerLegendInfo mapServerLegendInfo, bool defaultVisible) { _service = dataFrame.Service as AgsMapService; _mapLayerInfo = mapLayerInfo; _mapServerLegendInfo = mapServerLegendInfo; DataFrame = dataFrame; DefaultVisible = defaultVisible; ID = mapLayerInfo.LayerID.ToString(); Name = mapLayerInfo.Name; double toPixels = 1.0 / (12 * dataFrame.Dpi); if (dataFrame.MapServerInfo.Units == esriUnits.esriMeters) { toPixels *= MetersPerFoot; } if (mapLayerInfo.MaxScale > 0) { MinimumPixelSize = mapLayerInfo.MaxScale * toPixels; } if (mapLayerInfo.MinScale > 0) { MaximumPixelSize = mapLayerInfo.MinScale * toPixels; } if (mapLayerInfo.IsFeatureLayer && mapLayerInfo.LayerType != "Annotation Layer" && mapLayerInfo.LayerType != "Raster Catalog Layer") { Selectable = mapLayerInfo.CanSelect; Fields = new List <CommonField>(); foreach (Field proxyField in mapLayerInfo.Fields.FieldArray) { AgsField field = new AgsField(proxyField); Fields.Add(field); if (field.Type == CommonFieldType.ID) { FeatureIDField = field; } else if (field.Type == CommonFieldType.Geometry) { GeometryField = field; switch (proxyField.GeometryDef.GeometryType) { case esriGeometryType.esriGeometryPoint: FeatureType = OgcGeometryType.Point; break; case esriGeometryType.esriGeometryMultipoint: FeatureType = OgcGeometryType.MultiPoint; break; case esriGeometryType.esriGeometryPolyline: FeatureType = OgcGeometryType.MultiLineString; break; case esriGeometryType.esriGeometryPolygon: FeatureType = OgcGeometryType.MultiPolygon; break; } } } Legend = new AgsLegend(mapServerLegendInfo); } else { switch (mapLayerInfo.LayerType) { case "Raster Catalog Layer": case "Raster Layer": Type = CommonLayerType.Image; break; case "Annotation Layer": Type = CommonLayerType.Annotation; break; case "Group Layer": Type = CommonLayerType.Group; break; } } }