MapXtreme 点操作

Map map=MapControl1.Map;
   
     MapInfo.Data.Table table=MapInfo.Engine.Session.Current.Catalog.GetTable(@"E:/orc/秦皇岛(新)/村名汉字标注.tab");//使用表做为一个temp表
//      
//              table.SessionInfo.ReadOnly=true;
   
     MapInfo.Geometry.CoordSys coordsys=map.GetDisplayCoordSys();
     TableInfoMemTable    tableInfo=new TableInfoMemTable("temp");//为它创建一个temp表和Feature层
     tableInfo.Temporary=true;
     Column column ;//添加Geometry投影列
     column=new GeometryColumn(coordsys);//列对象的特殊coordsys
     column.Alias="MI_Geometry";
     column.DataType=MIDbType.FeatureGeometry;
     tableInfo.Columns.Add(column);
     column=new Column();//添加样式列
     column.Alias="MI_Style";
    column.DataType=MIDbType.Style;

在这里是设置这个栏位的数据类型,设置不同的数据类型主要是为图形的显示时用的。这里还包括

一般的数据库类型,和地图操作方面的数据类型:coordsys,grid,raster 等

     tableInfo.Columns.Add(column);
   
     MapInfo.Data.Table pointTable=MapInfo.Engine.Session.Current.Catalog.CreateTable(tableInfo);
     MapInfo.Geometry.FeatureGeometry geometry=new MapInfo.Geometry.Point(coordsys,X,Y);//设置点显示的位置和样式
              SimpleVectorPointStyle vStyle=new SimpleVectorPointStyle(37,System.Drawing.Color.Red,14);
     CompositeStyle cStyle=new    MapInfo.Styles.CompositeStyle(vStyle);
              MapInfo.Data.MIConnection    con=new MIConnection();//用新Feature的位置和样式更新表
                                con.Open();
     MICommand cmd=con.CreateCommand();
     cmd.Parameters.Add("geometry",MIDbType.FeatureGeometry);

     cmd.Parameters.Add("style",MIDbType.Style);
     cmd.CommandText="Insert Into temp(MI_Geometry,MI_Style) values(geometry,style)";
        cmd.Prepare();
     cmd.Parameters[0].Value=geometry;
     cmd.Parameters[1].Value=cStyle;
     cmd.ExecuteNonQuery();
//     dr.Close();
     MapInfo.Mapping.FeatureLayer lyr=new FeatureLayer(pointTable);
     map.Layers.Insert(0,lyr) ;

     cmd.Dispose();
//     map.Layers.Add(new MapInfo.Mapping.FeatureLayer(pointTable));//添加表到map

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值