最近由于項(xiàng)目需要,不得不去擺弄令人痛苦萬分的AO。說句實(shí)在話,我很不喜歡AO的方式,接口龐雜,而且接口之間的關(guān)系比較扁平。尤其是我剛剛接觸GIS,對于一些分析和數(shù)據(jù)獲取功能根本就無從下手。
不過好在Esri的幫助寫的還算不錯(cuò),還有一些亂七八糟的書的支持,我頗費(fèi)了2周功夫終于把任務(wù)的第一部分搞定了。
初學(xué)AO的建議用ArcMap的VBA做。由于提供了現(xiàn)成的運(yùn)行環(huán)境,做起來會(huì)好很多。
在ArcMap生成的框架中,代碼默認(rèn)是放在ThisDocument的模塊中的。
所以,在代碼段里面的Me,實(shí)際上是一個(gè)支持IMxDocument的類型,等價(jià)于Application.Document
那么,獲取地圖文件中被激活的那個(gè)Frame就很容易了,只需要
Dim?pMap?As?IMap
Set?pMap?=?Me.FocusMap然后可以使用pMap的Layer屬性獲取對應(yīng)圖層,同時(shí)將接口轉(zhuǎn)化為IFeatureLayer以后便可以獲取對應(yīng)的要素類了。這樣便很容易將地圖的數(shù)據(jù)與視圖聯(lián)系起來。
至于將要素類生成一個(gè)Layer添加到Map中,ESRI提供了范例,就不用多說了。