三、搜索图元
在MapX下搜索图元用layer.searchXXX方法来实现
在MapXtreme下,用Find对象进行搜索,先通过图层表别名取到表,再生成查询条件,最后通常Catalog.SearchXXX来实现
var sif = MapInfo.Data.SearchInfoFactory.SearchWhere(sqlWhere);//SQL的条件,例如:a = 1 or b = '123'
var ftrs = MapInfo.Engine.Session.Current.Catalog.Search(table, sif);
若没有条件字段(唯一的信息存到图元的标签里了),就只能遍历表,再取图元几何的Caption了
((MapInfo.Geometry.LegacyText)feature.Geometry).Caption
四、标注
MapX下用Layer.Autolabel
MapXtreme就麻烦了,标注必须跟图层的表关联,做为标注的数据源,然后设上标注的表达式
Table table = MapInfo.Engine.Session.Current.Catalog.GetTable("图层表别名");
LabelLayer layer = new LabelLayer();
map.Layers.Add(layer);
LabelSource source = new LabelSource(table);
source.DefaultLabelProperties.Caption = "KEY_NAME";//标注表达式
layer.Sources.Append(source);
五、图层分组
MapX下好像没有这个功能,MapXtreme下反正是有,还可以覆盖样式图层,挺牛,不过遍历时要递归
六、专题图
MapXtreme在专题图方面比MapX强大了很多,而且很灵活,图层就是表,多个表不就是一个了么,所以,什么关联查询啊都很容易实现,有木有。
还没学习完,以后再补上。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-33755-2.html
我们就出兵叙利亚对美国支持武装份子往死里狂轰滥炸出一口窝囊气