


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、結(jié)合GIS工具軟件與當(dāng)今可視化開發(fā)語言的集成二次開發(fā)方式是GIS應(yīng)用開發(fā)的主流。它的優(yōu)點是既可以充分利用GIS工具軟件對空間數(shù)據(jù)庫的管理、分析功能,又可以利用其它可視化開發(fā)語言具有的高效、方 便等編程優(yōu)點,集二者之所長 MapX是MapInfo公司向用戶提供的具有強(qiáng)大地圖分析功能的ActiveX控件產(chǎn)品。由于它是一種基于Windows操作系統(tǒng)的標(biāo)準(zhǔn)控件,因而能支持絕大多數(shù)標(biāo)準(zhǔn)的可視化開發(fā)環(huán)境如Visual C+、Visual Basic、Delphi PowerBuilder等。編程人員在開發(fā)過程中可以選用自己最熟悉的開發(fā)語言,輕松地將地圖功能嵌 入到應(yīng)用中,并且可以脫離MapInfo的軟件平
2、臺運(yùn)行。這里談到的VC+嵌入MapX進(jìn)行二次開發(fā)可分為以下幾個步驟來實現(xiàn):1對應(yīng)用工程的預(yù)設(shè)置在創(chuàng)建MapX控件之前, 必須將MapX.h和MapX.cpp文件加入到工程中。 對于Visual C+5.0及以 上版本, 從Project菜單中選擇Add To Project - Files命令,打開InsertFiles into Project對話框,選擇MapX.cpp和MapX.h文件加入到工程中(在MapX自帶的C+例子中有這兩個文件)。注意:不要選擇Project菜單中的Add TO Project-Components And Controls命令。如果選擇該命令 加入MapX控件
3、,將創(chuàng)建一新的.cpp文件,但是該文本沒有包括所有的MapX對象。2對MapX屬性的操作對于C+程序來說,每個MapX對象(Objects )都在MapX.h和MapX.cpp中用一個類來實現(xiàn),類 的名字和MapX對象的名字相同,且已經(jīng)在CmapX中定義了。例如,DataSet對象用類CmapXDataset實現(xiàn)。這和C+類的定義相一致。而每個MapX對象的屬性(Properties )是用類的成員函數(shù)來實現(xiàn)的。比如DataSet對象的名字(Name ),就是用Name()函數(shù)來實現(xiàn)的,不過,Name()有兩種使用方法,即Get和Set。如:CString GetName();/獲取對象名字v
4、oid SetName(LPCTSTR);/設(shè)置對象名字3部分MapX工具的應(yīng)用(1)至圖”工具的改進(jìn)一般全圖工具的代碼為:m_ctrlMapX.SetZoom(m_ctrlMapX.GetGeoSetWidth();此方法的缺點是重新顯示全圖后,實際上是以上一個視圖的中心作為屏幕中心進(jìn)行顯示,如果上一個 視圖在全圖中的邊緣位置,點擊全圖工具后實際上不是初始設(shè)置的全圖。因此可以用如下代碼實現(xiàn):CString mapname=m_ctrlMapX.GetGeoSet();/取得當(dāng)前地圖的名字m_ctrlMapX.SetGeoSet(mapname);/設(shè)置該地圖為主視區(qū)顯示圖(2)創(chuàng)建信息”工具
5、MapX沒有提供信息工具,該工具是自定制工具。有兩種實現(xiàn)方法,其基本思想是:(1)創(chuàng)建工具的鼠標(biāo)指針類型(一般為“+),當(dāng)在工具欄上選擇此工具后,設(shè)置為當(dāng)前工具,然后 跟蹤鼠標(biāo)在地圖上點擊的位置,觸發(fā)ToolUsed事件,根據(jù)位置信息確定相應(yīng)的對象,然后讀取對象屬性或綁定的數(shù)據(jù)庫,彈出對話框,實現(xiàn)信息顯示。此種方法只適用于顯示地圖的最上層對象(在MapX自帶的C+例子Buffer中有具體實現(xiàn)代碼)。(2)用選擇工具選中地圖上所要顯示信息的對象,然后再點擊工具欄上的信息工具,彈出對話框, 實現(xiàn)信息顯示。此信息工具的實現(xiàn)代碼與(1)不同,沒有鼠標(biāo)指針,實際上就是讀取選中對象的屬性或綁 定的數(shù)據(jù)庫的
6、操作。此方法適合顯示地圖上的任意圖層。兩種方法各有特點,第一種方法直接,但在實際應(yīng)用中容易出現(xiàn)異常,第二種方法要多點擊一次,但 應(yīng)用穩(wěn)定,而且適用地圖上的任意圖層。(3)測距”工具的使用注意事項MapX的Distance。函數(shù)是針對地球地圖的,在非地球地圖中使用要注意數(shù)值轉(zhuǎn)換。否則測出的數(shù)據(jù) 與實際相差甚遠(yuǎn)。4用MapX進(jìn)行GIS二次開發(fā)(1)創(chuàng)建數(shù)據(jù)庫空間數(shù)據(jù)庫可以通過兩種方法創(chuàng)建,一種是通過MapX的圖層生成功能創(chuàng)建。MapX生成的每一圖層都對應(yīng)一張表(table ),該表中除了存有地理對象的位置坐標(biāo)以外,還可以包含其他屬性字段;另一種方 法是通過導(dǎo)入帶有地理位置信息的其他數(shù)據(jù)庫生成。Ma
7、pX可以通過數(shù)據(jù)綁定把這些數(shù)據(jù)庫中的地理信息映射到地圖圖層上,MapX支持對多種常用數(shù)據(jù)庫的訪問。(2)設(shè)置圖層控制和地圖投影在把地圖加入到MapX之前,我們可以使用MapX附帶的圖層管理工具Geoset Manager把要加入的 圖層匹配在一起,建成一個圖層組,該圖層組規(guī)定了其中各個圖層的名稱、內(nèi)容、屬性及各圖層之間的顯 示順序。MapX中可以給圖層設(shè)置四種屬性:可顯示、可選擇、可編輯和自動標(biāo)注。一般圖層的屬性是可 顯示的,需要查詢的圖層設(shè)置為可選擇,需要修改的圖層設(shè)置為可編輯,而自動標(biāo)注可以自動顯示圖層中 地理對象的標(biāo)簽。合理地設(shè)置這些屬性將有助于系統(tǒng)實現(xiàn)地理信息的維護(hù)和查詢功能。在匹配各
8、個圖層時,應(yīng)該注意各個圖層投影的設(shè)置。全部圖層必須使用一致的投影方法才能精確匹配。MapX中的地圖分為地球地圖和非地球地圖,地球地圖中對象的坐標(biāo)用經(jīng)緯度來表示,非地球地圖中對象的坐標(biāo)通常是相對坐標(biāo),是相對于圖中的某個基準(zhǔn)點來設(shè)置的。如果圖層的坐標(biāo)不一致的話,必須先轉(zhuǎn)換坐標(biāo)才能進(jìn)行匹配。(3)設(shè)計編輯功能MapX提供標(biāo)準(zhǔn)的地理對象類型定義,在MapX所提供的點、線、面類型選擇對話框中可以方便地選 擇地理對象的類型,包括所使用的符號的形狀、顏色、大小等屬性。利用MapX提供的畫圖工具,可以為用戶設(shè)計出多種多樣的地理對象生成工具。利用MapX提供的多種地理信息對象的選擇工具(如矩形、圓形選擇工具),用戶可以調(diào)用這些選擇工具并和MapX所提供的編輯(刪除、修改等)地理對象功能相結(jié)合,以完成地理信息系統(tǒng)中地理對象的編輯操作。但要注意,對于地理數(shù)據(jù)和非地理數(shù)據(jù)要分別對待。(4)設(shè)計查詢功能和分析統(tǒng)計功能對于地理信息系統(tǒng)中所要求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 志愿管理站管理制度
- 快遞站安全管理制度
- 總公司采購管理制度
- 意大利環(huán)境管理制度
- 成品鋁型材管理制度
- 戰(zhàn)隊群規(guī)范管理制度
- 房地產(chǎn)直銷管理制度
- 攝影部器材管理制度
- 收據(jù)與發(fā)票管理制度
- 教師五認(rèn)真管理制度
- 2024年小區(qū)地下車位租賃合同
- 2024年廣東省中考化學(xué)真題
- 期末監(jiān)測 試題 2023-2024學(xué)年教科版科學(xué)六年級下冊
- 光伏系統(tǒng)在智能溫室大棚中的設(shè)計與應(yīng)用
- 2024年新疆中考數(shù)學(xué)真題試卷及答案
- 2024深圳職業(yè)技術(shù)學(xué)院教師招聘考試筆試試題
- 美術(shù)家眼中的自己自畫像中的自我表現(xiàn)教案
- 個人裝修安全免責(zé)的協(xié)議書范本
- 化學(xué)與人類社會智慧樹知到期末考試答案章節(jié)答案2024年內(nèi)江師范學(xué)院
- GJB9001C-2017標(biāo)準(zhǔn)內(nèi)部宣貫培訓(xùn)
- 專業(yè)市場物業(yè)多種經(jīng)營管理規(guī)定
評論
0/150
提交評論