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应该设置什么参数吗
不会返回新图层,被选中的图元全都在Session.Current.Selection.DefaultSelection里
Field1是列名,@param这种形式是MiSql即MapInfo Sql的参数形式,与使用的编程语言无关
field1=‘er’ 请问er 是选中的 图元共有的名称吗
@雪藩:
MapInfo里一般的图层是以二维表的形式存放数据的,图层上一个图元就对应二维表中一行记录,所有图层都两个特殊的列,一列存放图元的形状 ,一列存放图元的样式.除此之外其他列由开发者自定义,与数据库中的表一样,Field1='er'就是找Field1列中值为er的记录
还是不太懂,那table怎么会是null呢? 应该怎么改进一下? 代码中是不是缺少对
polygontable 的定义
@雪藩: polygontable是空就说明你没有这个二维表.多边形选择工具不会返回新图层的
@King.cs: 你知道怎么用 选择的 区域所有的图元 建立 polygontable 吗?
我现在用了另一个方法 也做完了,但是这个 没研究明白