创建从一个Microsoft Access表的填图(还未实现)

2015-06-11 11:09:14  访问(1396) 赞(0) 踩(0)

//从access中获取数据
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter("Select * from US_Cust", @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Mapstats2000.mdb");
DataTable dt = new DataTable();
adapter.Fill(dt);
dataGrid1.DataSource = dt; //填充DataGrid控件

// 定义MapInfo表,并将其添加到catalog - 假定为坐标表
MapInfo.Geometry.CoordSysFactory csf = new MapInfo.Geometry.CoordSysFactory(); 
MapInfo.Geometry.CoordSys cs = csf.CreateLongLat(MapInfo.Geometry.DatumID.NAD83);
MapInfo.Data.SpatialSchemaXY xy = new MapInfo.Data.SpatialSchemaXY(); 
xy.XColumn = "X";
xy.YColumn = "Y";
xy.CoordSys = cs;
xy.NullPoint = "0.0, 0.0";
xy.StyleType = MapInfo.Data.StyleType.None;
MapInfo.Data.TableInfoAdoNet ti = new MapInfo.Data.TableInfoAdoNet("US_Cust", dt);
ti.SpatialSchema = xy;
MapInfo.Data.Table tbl = MapInfo.Engine.Session.Current.Catalog.CreateTable(ti);

//Create a feature layer and add it to the map
MapInfo.Mapping.FeatureLayer lyr = new MapInfo.Mapping.FeatureLayer(tbl);
mapControl1.Map.Layers.Add(lyr);
附:SpatialSchemaXY:
表的服务,根据表中数据的 X 和 Y 数字值来创建 [临时] GeometryColumn。
XY 空间方案可以应用于不可制图的表,使其可制图。方法是指定包含 X 和 Y 坐标值的列以及这些值所表示的坐标系。表打开时,它包含 GeometryColumn 并可以作为图层添加到 Map 中。 几何体列 (MI_Geometry) 可以修改,它可以修改表中的 X 和 Y 值。这样就可以使用 Map 中的工具来移动几何体。X 和 Y 列被标记为只读。


标签:创建从一个Microsoft Access表的填图(还未实现) 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)