2016-09-01 8 views
0

ポイント、ライン、またはポリゴンとしてフィーチャタイプをカスタムレイヤに追加する必要があります。そのカスタムレイヤの名前はコンボボックスで選択します。Dotspatialのカスタムレイヤーにフィーチャーを追加するにはどうすればよいですか?

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; 

    }` 

答えて

0

私はそれが 我々はMappointlayer

を変更するべき最初のIndexOfの層 のselectedIndex =見つかった: は現時点では、すべてのは、最後の層に挿入するだけでフィーチャーこれは私のコードである

を作りましたmap1.Layers.IndexOf(item); マップポイントレイヤーに設定する

   mpl= (MapPointLayer)map1.Layers[selectedIndex]; 
関連する問題