來源於中國3S吧,版權屬於作者暗黑殺手,出處:http://www.3s8.cn!
1、選擇開發語言
從程序員角度來說,要進行AO開發首先遇到的問題就是選擇何種語言開發,ESRI支持VB、C++、.Net等等,各位兄弟姐妹拿手的語言也不同,有的C高手,有的VB強人,有的.Net 爐火純青,哈。。對於任何語言都不是很好的也有。
從個人角度覺得:主選語言VB,其它 C#.net、VB.net,C++ 看個人愛好及個人情況。VBA做些小的開發,功能測試。Delphi 雖然我也比較喜歡,但是開發AO我不想考慮。雖然可以用來進行AO開發的編程語言有多種,無疑使用VB語言開發AO是最簡單快捷,也是最容易上手的語言。無論從AO提供的開發接口,還是提供的在線幫助、例子多數都是VB或VBA,而且在網上的資源也以VB語言爲主。
因此,不管你選擇.Net,還是C++ 還是其它語言進行AO開發,對於VB語言至少也達到了解的程度,要能讀懂VB(or VBA)示例代碼,藉助提供的VB相關資料來了解ESRI提供的AO接口,進而使其能在自已熟悉的語言環境中來實現。
2、選擇學習資料
AO開發比較難上手的一個主要原因就是相關中文資料太少,而且在爲數不多的出版書籍中介紹操作、GIS理論方面的居多。很多人都在網上尋找開發AO的中文書籍資料,當然目前是很難找到。聽說中科永生有些相關的資料,沒見過,但網友們的評價都不是很高,而且很貴。只有那些不花自已錢培訓或者太依賴中文資料的兄弟們會買吧。
學習AO開發,最好的幫助就是AO在線幫助(也就是 ArcGIS Developer Help)及一些PDF電子文檔,這些已經足夠了。目前國內的程序員還是大專本科生居多,而且近兩年來加入這個隊伍的研究生也成上升的趨勢。一個軟件的英文幫助還是難不倒的,雖然理解起來不如中文快速,但對於真正全面的理解AO系統是有好處的。ArcGIS在國內興起也沒多久時間,相信別人的翻譯本不如用金山詞霸一個詞一個詞的翻譯來得好。
3、GIS理論知識的學習
GIS理論的學習,對於開發AO來說也是很重要的。一些基本的GIS概念都沒有,開發AO當然是上手很難了,在進行AO開發的同時,多瞭解一些GIS理論知識對於快速提高開發水平,理解AO是很有幫助的。就如同要開發一個銀行的業務處理系統,對於很行業務操作流程,業務習慣必須瞭解一樣。
4、Q&A 積累
每個人在開發過程中都會遇到各種各樣的問題,無論是通過諮詢ESRI公司,在BBS上尋求幫助,或通過自已的努力最終將問題解決了。最好能有個問題及問題解決記錄。隨着開發的深入,遇到的問題也越來越多,越有挑戰性,同時解決的問題也會越來越多。從公司角度出發也好,從開發人員自身角度出發也好,這樣做都是有益的。自已遇到問題也許是和以前的問題有一定的相關性,或乾脆就是解決過了的,到時候再去東拼西湊找資料,找幫助就太浪費時間了。 中國3S吧 3s8.cn
5、ArcGIS操作
很多人一上手就進行開發,結果開發了一年半載之後,讓其來操作ArcGIS都很困難。這樣的情況也很多見,要做好AO開發,對於ArcGIS環境的熟悉,arcmap,arccatlog,arctoolbox,arcscene ... 的操作也很關鍵,可以這麼說,在ArcMap(ArcCatlog...)中能找到的功能基本上都能找到相關的接口。
6、如何找到與自已所需功能相關的AO接口
對於一個剛進行AO開發的程序員,經常是想處理一個功能,卻不知道如何去找AO中提供的相關接口,這是很讓人頭疼的。爲什麼有的人,沒有做過相關方面的接口開發,但讓他去找,會很快找到的。除了和平時的積累有關外,另外的問題就是看哪些資料才能對這有所幫助,我想這也是一個新手比較關心的問題。ESRI 分門別類的提供了許多PDF格式的 ObjectModel Diagrams ,對於各個類,接口的定義等一目瞭然,熟悉這些diagrams 非常重要。另外一些library locator,object browser 等也可以用來做下補充。
7、一些相關的工具
ESRI提供了一些比較有用的工具或addin,比如說:
獨立工具:GUID tool,Register In Menu,Library Locator,Object Browser ...
Addin:VB6 Interface Implementor,VB6 Compile and Register Addin,.NET Component Category Registrar...
一些第三方工具:MIDL Compiler,OLE View,Dependency Walker,GUIDGEN,RegClean...
這些工具也許會被許多人忽略,但有的時候對你也許會幫助很大。對於初學者來說,藉助addin提供的功能嚮導,會便捷得多。
8、其它
1)除了上述中提到的一些工具,ArcGIS Desktop 提供的其它工具你是否用過?
AdvancedArcMapSettings ?知道有些設置在哪裏設置嗎?運行這個工具看一下,能不能找到?
MXDDoctor?你的mxd文件是不是會經常出問題,這個工具你用了嗎?
MetaIDChecker?
好象是與什麼arcmis metadata 之類的東西相關,arcims 我不懂,哈。。。
2)developkit 中有那些現成的例子,你看了多少?
3)這些文件你見過沒有?
win32Util.bas?
Util3D.bas?
tinUtil.bas?
stringsUtil.bas?
miscUtil.bas?
geomUtil.bas?
dbUtil.bas?
如果你見過,你會發現,原來有很多東西是可以拿來用的,而且都按大類組得好了。
9、關於在網尋求幫助
憑什麼別人會回答你的問題!? 我想這是大家都該思考的。
中國3S吧 3s8.cn
很多人在BBS發帖尋求幫助,通過QQ組找人幫助也好,最好把問題能說得儘量詳細一些,使人能瞭解你真正的意思,問的不清不楚,當然回答的也就不對題了。
在論壇發帖求助時,最好先搜索一下,是否有與自已問題相同或相似的,是否已經有其它人解決了這個問題,本來以前都有N篇相關的問題了,還要一味的發相同問題的帖子,會讓人覺得你這個人很懶, 也會很反感。另外同一問題在同一catlog也不要發很多篇,哈。。
當問題解決了,最好回個帖,如果高興分享你的成果呢,就把解決方法發上來,與大家共享,不願意也不會有人強求你。
無論誰見到這樣的帖子,估計都不會回,比如說:這裏的XX都死光了嗎? .. 難道這麼XX 的問題都沒人會嗎?... 至少我不會回,我也不會理。雖然我水平很爛, 很碰巧地解決了這個問題,但是我討厭這種語氣。
10、沒什麼說的了,湊足十條,哈。
希望大家都能把自已開發AO的心得寫出來和大家分享,希望大家的水平飛快的漲,工資也飛快的升,當然也希望論壇問問題的越來越多,解決問題的也越來越多,這個論壇也越來越熱鬧。