最近由于项目需要,不得不去摆弄令人痛苦万分的AO。说句实在话,我很不喜欢AO的方式,接口庞杂,而且接口之间的关系比较扁平。尤其是我刚刚接触GIS,对于一些分析和数据获取功能根本就无从下手。
不过好在Esri的帮助写的还算不错,还有一些乱七八糟的书的支持,我颇费了2周功夫终于把任务的第一部分搞定了。
初学AO的建议用ArcMap的VBA做。由于提供了现成的运行环境,做起来会好很多。
在ArcMap生成的框架中,代码默认是放在ThisDocument的模块中的。
所以,在代码段里面的Me,实际上是一个支持IMxDocument的类型,等价于Application.Document
那么,获取地图文件中被激活的那个Frame就很容易了,只需要
Dim pMap As IMap
Set pMap = Me.FocusMap 然后可以使用pMap的Layer属性获取对应图层,同时将接口转化为IFeatureLayer以后便可以获取对应的要素类了。这样便很容易将地图的数据与视图联系起来。
至于将要素类生成一个Layer添加到Map中,ESRI提供了范例,就不用多说了。