Exemplo n.º 1
0
        public static ISymbol GenerateLayerSymbol(LayerDef layerDef,
            GeometryType geometryType)
        {
            if (layerDef == null)
                return GetDefaultSymbol(geometryType);

            if (layerDef.GeometryType == GeometryType.Point
                || layerDef.GeometryType == GeometryType.Multipoint)
            {
                ISimpleLineSymbol outline = 
                    Runtime.graphicEngine.newSimpleLineSymbol();
                outline.Color = layerDef.OutlineColor;
                outline.Style = layerDef.LineStyle;
                outline.Width = layerDef.LineWidth;

                ISimpleMarkerSymbol symbol = 
                    Runtime.graphicEngine.newSimpleMarkerSymbol();
                symbol.Color = layerDef.Color;
                symbol.Size = layerDef.MarkerSize;
                symbol.Style = layerDef.MarkerStyle;
                symbol.Outline = outline;

                return symbol;
            }
            else if (layerDef.GeometryType == GeometryType.Polyline)
            {
                ISimpleLineSymbol symbol = 
                    Runtime.graphicEngine.newSimpleLineSymbol();
                symbol.Color = layerDef.Color;
                symbol.Style = layerDef.LineStyle;
                symbol.Width = layerDef.LineWidth;

                return symbol;
            }
            else if (layerDef.GeometryType == GeometryType.Polygon)
            {
                ISimpleLineSymbol outline =
                    Runtime.graphicEngine.newSimpleLineSymbol();
                outline.Color = layerDef.OutlineColor;
                outline.Style = layerDef.LineStyle;
                outline.Width = layerDef.LineWidth;

                ISimpleFillSymbol symbol =
                    Runtime.graphicEngine.newSimpleFillSymbol();
                symbol.Color = layerDef.Color;
                symbol.Style = layerDef.FillStyle;
                symbol.Outline = outline;

                return symbol;
            }

            return null;
        }
Exemplo n.º 2
0
 public void AddLayer(LayerDef layerDef, Layer layer)
 {
     _layerList.Add(layerDef);
     _layers.Add(layer);
 }
Exemplo n.º 3
0
 public Task <IGraphicsLayer> addGdbLayer(LayerDef layerDef,
                                          string dbFile, int start = 0, int maxFeatures = 0)
 {
     return(null);
 }
Exemplo n.º 4
0
        public void AddLayer(ArcImsLayer layer, string query, LayerQueryMode queryMode, Renderer renderer)
        {
            int nextLayerNo = 0;

            // layers from other services and data frames are not allowed

            if (layer.DataFrame != DataFrame)
            {
                throw new ArcImsException("The specified ArcImsLayer is not in the same service and dataframe as the ArcImsMap.");
            }

            // queries and renderers are only allow on feature layers

            SpatialQuery spatialQuery = null;

            if (!String.IsNullOrEmpty(query) && queryMode != LayerQueryMode.None)
            {
                if (layer.Type != CommonLayerType.Feature)
                {
                    throw new ArcImsException("Definition and selection queries are only allowed on feature layers");
                }

                spatialQuery = new SpatialQuery(query);
            }

            if (renderer != null && layer.Type != CommonLayerType.Feature)
            {
                throw new ArcImsException("Custom renderers are only allowed on feature layers");
            }

            // add all group layers that contain this layer

            ArcImsLayer parent = layer.Parent as ArcImsLayer;

            while (parent != null)
            {
                AddLayer(new LayerDef(parent.ID));
                parent = parent.Parent as ArcImsLayer;
            }

            // handle queries and renderers

            LayerDef layerDef = new LayerDef(layer.ID);

            if (spatialQuery != null)
            {
                if (queryMode == LayerQueryMode.Definition)
                {
                    layerDef.Query    = spatialQuery;
                    layerDef.Renderer = renderer;
                }

                if (queryMode == LayerQueryMode.Selection)
                {
                    Layer axlLayer = new Layer(String.Format("__{0}", nextLayerNo++));
                    axlLayer.Query   = spatialQuery;
                    axlLayer.Dataset = new Dataset(layer.ID);

                    if (_service.IsArcMap)
                    {
                        layerDef.Renderer = renderer;
                    }
                    else
                    {
                        axlLayer.Renderer = renderer;
                    }

                    AddLayer(axlLayer);
                }
            }
            else
            {
                layerDef.Renderer = renderer;
            }

            AddLayer(layerDef);
        }