最近由于項目需要,不得不去擺弄令人痛苦萬分的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提供了范例,就不用多說了。