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();