如何向 Dotspatial 中的自定义图层添加功能?
How can i add feature to custom Layer in Dotspatial?
我需要将特征类型作为点、线或多边形添加到用户 select 组合框中图层名称的自定义图层。
目前,每个特征都只是插入最后一层 made
这是我的代码:
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;
}`
我找到了
我们应该改变 Mappointlayer
首先找到图层索引
selectedIndex = map1.Layers.IndexOf(item);
然后在地图点图层上设置
mpl= (MapPointLayer)map1.Layers[selectedIndex];
我需要将特征类型作为点、线或多边形添加到用户 select 组合框中图层名称的自定义图层。 目前,每个特征都只是插入最后一层 made
这是我的代码:
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;
}`
我找到了 我们应该改变 Mappointlayer
首先找到图层索引 selectedIndex = map1.Layers.IndexOf(item); 然后在地图点图层上设置
mpl= (MapPointLayer)map1.Layers[selectedIndex];