// Summary: // Generate a label attributes according to the definition // which is specified in the LayerDef // AttributeLabelClass generateLayerAttributeLable(LayerDef layerDef, Core.Geometry.GeometryType geometryType) { if (layerDef == null) return generateDefaultLayerAttributeLable(geometryType); IS3SymbolFont font = new IS3SymbolFont( layerDef.LabelFontFamily, layerDef.LabelFontSize); font.FontStyle = layerDef.LabelFontStyle; font.FontWeight = layerDef.LabelFontWeight; font.TextDecoration = layerDef.LabelTextDecoration; IS3TextSymbol textSymbol = new IS3TextSymbol(); textSymbol.Color = layerDef.LabelColor; textSymbol.Font = font; textSymbol.BorderLineColor = layerDef.LabelBorderLineColor; textSymbol.BorderLineSize = layerDef.LabelBorderLineWidth; textSymbol.BackgroundColor = layerDef.LabelBackgroundColor; AttributeLabelClass labelClass = new AttributeLabelClass(); labelClass.IsVisible = true; labelClass.TextExpression = layerDef.LabelTextExpression; labelClass.WhereClause = layerDef.LabelWhereClause; labelClass.Symbol = textSymbol; if (geometryType == Core.Geometry.GeometryType.Polygon) labelClass.LabelPlacement = LabelPlacement.PolygonAlwaysHorizontal; return labelClass; }
// Summary: // Set the GraphicsLayer display options according to the definition // which is specified in the LocalELayer. // The display options include selection color, renderer, and labelling // void setGraphicLayerDisplayOptions(LayerDef layerDef, IS3GraphicsLayer gLayer) { if (layerDef == null || gLayer == null) return; gLayer.IsVisible = layerDef.IsVisible; gLayer.SelectionColor = layerDef.SelectionColor; if (layerDef.RendererDef == null) { ISymbol symbol = GraphicsUtil.GenerateLayerSymbol(layerDef, gLayer.geometryType); gLayer.renderer = Runtime.graphicEngine.newSimpleRenderer(symbol); } else { gLayer.renderer = Runtime.graphicEngine.newRenderer(layerDef.RendererDef); } if (layerDef.EnableLabel == true) { AttributeLabelClass labelClass = generateLayerAttributeLable(layerDef, gLayer.geometryType); gLayer.Labeling.LabelClasses.Add(labelClass); } }
// Summary: // Add a layer in a shape file // The name of the layer and display options are specified in the LocalELayer // public async Task<IGraphicsLayer> addShpLayer(LayerDef layerDef, string shpFile, int start = 0, int maxFeatures = 0) { if (layerDef == null || shpFile == null) return null; string filePath = _prj.projDef.LocalFilePath + "\\" + shpFile; if (File.Exists(filePath)) { ShapefileTable table = await ShapefileTable.OpenAsync(filePath); if (table == null) return null; IS3GraphicsLayer gLayer = await featureTable2GraphicsLayer( table, start, maxFeatures, true); if (gLayer == null) return null; gLayer.ID = layerDef.Name; setGraphicLayerDisplayOptions(layerDef, gLayer); _map.Layers.Add(gLayer); return gLayer; } return null; }
public async Task<IGraphicsLayer> addGdbLayer(LayerDef eLayer, string dbFile, int start = 0, int maxFeatures = 0) { if (dbFile == null) dbFile = _eMap.LocalGeoDbFileName; string filePath = _prj.projDef.LocalFilePath + "\\" + dbFile; if (File.Exists(filePath)) { Geodatabase gdb = await Geodatabase.OpenAsync(filePath); IGraphicsLayer gLayer = await addGeodatabaseLayer( eLayer, gdb, start, maxFeatures); return gLayer; } return null; }
// Summary: // Add a layer in a geodatabase (aka. local layer) // The name of the layer and display options are specified in the LocalELayer // public async Task<IGraphicsLayer> addGeodatabaseLayer(LayerDef layerDef, Geodatabase gdb, int start = 0, int maxFeatures = 0) { if (layerDef == null || gdb == null) return null; GeodatabaseFeatureTable table = gdb.FeatureTables.FirstOrDefault(t => t.Name == layerDef.Name); if (table == null) return null; IS3GraphicsLayer gLayer = await featureTable2GraphicsLayer( table, start, maxFeatures, false); if (gLayer == null) return null; gLayer.ID = layerDef.Name; gLayer.MinScale = table.ServiceInfo.MinScale; gLayer.MaxScale = table.ServiceInfo.MaxScale; setGraphicLayerDisplayOptions(layerDef, gLayer); _map.Layers.Add(gLayer); return gLayer; }
public Task<IGraphicsLayer> addShpLayer(LayerDef layerDef, string shpFile, int start = 0, int maxFeatures = 0) { return null; }