
4、或许还要设置视图 MapInfo.Engine.Session.Current.MapFactory[0].SetView(fc.Envelope);
三、通过选择工具来选择一个范围 1、需要控制选择的图层 2、选择的结果,通过MapInfo.Engine.Session.Current.Selections.DefaultSelection得到一个Selection对象 3、Selection对象,是一个IResultSetFeatureCollection的集合,每个对应一个表
4、对每一个IResultSetFeatureCollection,可以通过枚举器来遍历访问 Selection sl =MapInfo.Engine.Session.Current.Selections.DefaultSelection; IResultSetFeatureCollection fc=sl[0]; IFeatureEnumerator fn=fc.GetFeatureEnumerator(); ListBox1.Items.Clear(); while(fn.MoveNext()) if(fn.Current.Geometry.GetType().ToString()=="MapInfo.Geometry.LegacyText") ListBox1.Items.Add(((MapInfo.Geometry.LegacyText)fn.Current.Geometry).Caption);
5、从MapX到MapXtreme2004[4]-标注AutoLabel 好日子一去不复返了,原来总觉得Mapx很多地方设计得不是很自然,比如,feature和具体的feature之间的某些属性的关系,有时令人迷惑。但是,用了Mapxtreme,才感觉到Mapx的方便。真不知MapInfo怎么想的!原来的标注非常简单,layer有个autolabel属性,一设就可以了。现在呢: //James.Liu的代码 Table table = Session.Current.Catalog.OpenTable("usa.tab"); Map map = Session.Current.MapFactory.CreateEmptyMap(new Size(300, 300)); LabelLayer layer = new LabelLayer(); map.Layers.Add(layer); LabelSource source = new LabelSource(table); source.DefaultLabelProperties.Caption = "State_Name"; layer.Sources.Append(source); //我的 LabelLayer layer = new LabelLayer(); MapControl1.Map.Layers.Add(layer); LabelSource source = new LabelSource(MapInfo.Engine.Session.Current.Catalog.GetTable("地名")); source.DefaultLabelProperties.Caption = "f_name"; //标注用到的那个字段名称 layer.Sources.Append(source); 看Layer.Sources的架势,好像可以共用一个LabelLayer,试试,的确可以
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-33547-4.html
武器在强大
即使不与我们结盟