DotSpatialで図形を登録する方法は、以前にポリゴンを作成する例で書きましたが、今度は図形を登録するだけでなく属性も同時に登録する方法を。
前回は図形を登録する際に
PolygonShapefile.Features.Add(List
で登録しました。
今回は、ポイントだからなのか、「PointShapefile.AddShape(Shape)」で図形を登録しております。
また、PointShapefileのメンバーに「DataTable」が居たので、これにデータを登録すれば属性も反映されるようです。
さて、実際に書いたコードはこんな感じ。
//冒頭にはこれが書いてある前提 using DotSpatial.Data; using DotSpatial.Topology; //レイヤのオブジェクトを作成(ファイル名は保存時に指定) PointShapefile ps = new PointShapefile(); //DataTableにカラム(列)を追加→dbfのフィールドに ps.DataTable.Columns.Add("IntValue", typeof(int)); ps.DataTable.Columns.Add("StrValue", typeof(string)); //座標dX, dYにポイントを追加 double dX = 12345; double dY = 54321; Coordinate c = new Coordinate(dX, dY); ps.AddShape(new Shape(c)); //末尾のインデックス int i = ps.DataTable.Rows.Count - 1; //属性データ追加 ps.DataTable.Rows[i]["IntValue"] = 1; ps.DataTable.Rows[i]["StrValue"] = "String"; //最後に保存 ps.SaveAs(@".\Point.shp", true); ps.Close(); ps.Dispose();