首页 新闻 赞助 找找看

mapxtreme中 几个小问题?1用多边形选择工具SelectPolygon 选定地图后 会返回一个 选择区域的图层吗

0
悬赏园豆:30 [已解决问题] 解决于 2012-09-22 09:34

mapxtreme中 用多边形选择工具SelectPolygon 选定地图后 会返回一个 选择区域的图层吗

以什么样方式 返回 是一个建立好的新图层返回? 还是新图元的形式返回? 如果自动返回新图

层“Polygontable”,那下面的代码为什么提示table=null呢

 

Catalog catalog = Session.Current.Catalog;
Table table = catalog.GetTable("polygontable");   //这里出现错误 table=null
MapInfo.Mapping.FeatureLayer lyr = new MapInfo.Mapping.FeatureLayer(table);
MapInfo.Data.SearchInfo si = MapInfo.Data.SearchInfoFactory.SearchWhere("Field1 = 'er' ");  //这里的Field1=‘er’ 是代表选定的图元吗? 如果不是那代表什么?
MapInfo.Data.Feature feature = MapInfo.Engine.Session.Current.Catalog.SearchForFeature(lyr.Table, si);
MapInfo.Data.MIConnection connection = new MapInfo.Data.MIConnection();
connection.Open();
MapInfo.Data.MICommand command = connection.CreateCommand();
command.CommandText = "Select * from pointTable where PointTable.obj within @vb";   //这里VB又应该用什么参数呢
command.Parameters.Add("@vb", feature.Geometry);
command.Prepare();
MapInfo.Data.IResultSetFeatureCollection irfc = command.ExecuteFeatureCollection();
System.Windows.Forms.MessageBox.Show(irfc.Count.ToString());
command.Dispose();
connection.Close();
irfc.Close();

2  Field1=‘er’  这是什么 field是表名 还是选定区域的返回的表名?

3 @vb应该设置什么参数吗

雪藩的主页 雪藩 | 初学一级 | 园豆:126
提问于:2012-09-17 11:05
< >
分享
最佳答案
0

不会返回新图层,被选中的图元全都在Session.Current.Selection.DefaultSelection里

Field1是列名,@param这种形式是MiSql即MapInfo Sql的参数形式,与使用的编程语言无关

收获园豆:30
Lukexywang | 初学一级 |园豆:178 | 2012-09-17 19:32

field1=‘er’   请问er 是选中的 图元共有的名称吗

雪藩 | 园豆:126 (初学一级) | 2012-09-18 09:20

@雪藩:

MapInfo里一般的图层是以二维表的形式存放数据的,图层上一个图元就对应二维表中一行记录,所有图层都两个特殊的列,一列存放图元的形状 ,一列存放图元的样式.除此之外其他列由开发者自定义,与数据库中的表一样,Field1='er'就是找Field1列中值为er的记录

Lukexywang | 园豆:178 (初学一级) | 2012-09-18 10:17

还是不太懂,那table怎么会是null呢? 应该怎么改进一下? 代码中是不是缺少对

polygontable 的定义
雪藩 | 园豆:126 (初学一级) | 2012-09-18 10:21

@雪藩: polygontable是空就说明你没有这个二维表.多边形选择工具不会返回新图层的

Lukexywang | 园豆:178 (初学一级) | 2012-09-18 14:20

@King.cs: 你知道怎么用 选择的 区域所有的图元  建立 polygontable 吗?

我现在用了另一个方法 也做完了,但是这个 没研究明白

雪藩 | 园豆:126 (初学一级) | 2012-09-18 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册