首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Dotspatial中向自定义层添加功能?

如何在Dotspatial中向自定义层添加功能?
EN

Stack Overflow用户
提问于 2016-09-01 06:32:59
回答 1查看 1.8K关注 0票数 0

我需要添加特征类型作为点,线或多边形的自定义层,用户选择层名称在组合框中。目前,每个功能都只是插入到最后一层。

这是我的密码:

代码语言:javascript
复制
public void test(Coordinate coord,string ftype)
{

        foreach (var item in map1.Layers)
        {
            if (item.LegendText ==ftype)
            {
                int selectedIndex = map1.Layers.IndexOf(item);
                ((Legend)map1.Legend).ClearSelection();
                map1.Layers[selectedIndex].IsSelected = true;
                map1.Layers.SelectedLayer = map1.Layers[selectedIndex];
                map1.Legend.RefreshNodes();
                label1.Text = Convert.ToString(selectedIndex);
            }

        }
        DotSpatial.Topology.Point point = new DotSpatial.Topology.Point(coord);
        IFeatureSet ifs = new FeatureSet(FeatureType.Point);
        IFeature currentFeature = ifs.AddFeature(point);
        DotSpatial.Symbology.CharacterSymbol pcs = new DotSpatial.Symbology.CharacterSymbol('o', "Webdings", Color.Black, 32);
        DotSpatial.Symbology.PointCategory pc = new DotSpatial.Symbology.PointCategory(pcs);
        pc.Symbolizer.ScaleMode = ScaleMode.Simple;
        pointScheme.AddCategory(pc);
        mpl.Symbology = pointScheme;
        mpl.ApplyScheme(pointScheme);
        _tempLayer = mpl;
        map1.MapFrame.DrawingLayers.Add(mpl);
        map1.MapFrame.Invalidate();
        map1.Invalidate();
        pointID++;
        map1.FunctionMode = FunctionMode.None;

    }`
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 06:58:57

我发现了我们应该换个新的

首先找到索引层selectedIndex =map1.Layers.IndexOf(项目),然后在地图点层设置索引

代码语言:javascript
复制
                mpl= (MapPointLayer)map1.Layers[selectedIndex];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39264192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档