MapXtreme 获取 Table 范围的三种方式

此代码在 MapXtreme 2008 6.8 版本下通过

 

第一种

将表创建为图层,通过图层对象 Bounds 属性获取范围,这个大家应该比较熟悉,就不多说了,示例如下:

 

Table miTable = MapInfo.Engine.Session.Current.Catalog.OpenTable("sample.TAB");

FeatureLayer layer = new FeatureLayer(miTable);
DRect bounds = layer.Bounds;

 

上面的方法虽然很简单,但是需要创建一个 FeatureLayer 对象,如果这个表并不需要在地图上显示,那么这个 FeatureLayer 对象就变的多余了,怎么办呢?想节省内存的往下看 - -!一个 FeatureLayer 对象能浪费多少内存,有点吹毛求疵啦 :)

 

第二种

通过查询语句,MapInfo 除了提供很多方法简化操作以外,还支持 Sql 查询,请看:

MIConnection miConn = new MIConnection();
MICommand miCmd = miConn.CreateCommand();
miCmd.CommandText = "select MI_AggregateEnvelope(mi_geometry) from miTable";
miConn.Open();
miCmd.Prepare();
object bounds = miCmd.ExecuteScalar();

 

看到这大家可能觉得,为了省点内存,得写这么多代码,而且还要对 MiConnection 对象进行关闭,太不划算了,别急,接着看,有更省事儿的。

 

第三种

这个只要一行代码就搞定 :)

DRect bounds = (miTable.TableInfo.Columns["MI_Geometry"] as GeometryColumn).Bounds;

 

注:默认 miTable 是已经打开的 MapInfo 可制图的表。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值