

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DOC.NO : CSUT. GIS-RST-01-04-0002A(MODevelopment.docNormal(一般用 MapObjects 進(jìn)行應(yīng)用開發(fā)Versio n 1.0.02001.04.171/ 73目1. 了解 MAPOBJECTS. 11.1 組件軟件 錯(cuò)誤!未定義書簽。1.2MAPOBJECTS的功能 11.3MAPOBJECTS簡(jiǎn)介 21.3.1MapObjects 和 OLE containers . 21.3.2 部件軟件的優(yōu)勢(shì) 21.4 使用MAPOBJECTS.31.4.1 用 MapObjects 編寫程序的步驟 31.4.2 安裝 MapObjects.
2、31.4.3 加入一 Map31.4.4 加入一 Layer41.4.5 編寫代碼和增加屬性41.4.6 取得 MapObjects 的幫助 41.4.7 運(yùn)行項(xiàng)目 51.5 使用 OLE AUTOMATION OBJECTS .51.5.1 使用對(duì)象瀏覽器 51.5.2 引用 OLE Avtomation objects . 51.5.3 聲明對(duì)象 51.5.4 使用常量 61.5.5 明確變量類型 61.6MAPOBJECTS的數(shù)據(jù)源 61.6.1 矢量文件錯(cuò)誤!未定義書簽。1.6.2 圖像(Image文件 71.6.3 屬性表 81.6.4 空間數(shù)據(jù)引擎 81.7 縱覽MAPOBJECT
3、S.91.7.1 數(shù)據(jù)通道對(duì)象組 91.7.2 地圖顯示對(duì)象組 91.7.3 幾何圖形對(duì)象組 101.7.4 地址匹配對(duì)象組 101.8MOVIEW應(yīng)用程序 111.8.1 運(yùn)行 moView.111.8.2moView 命令集 111.8.3 框架開發(fā) 121.8.4moView 的方針 122. 使用地圖和 LAYER122.1 在地圖上畫層 132.1.1 用戶眼中的 Layer132.1.2 程序員眼中的層 132.2 標(biāo)準(zhǔn)控件的屬性和方法142.2.1 層集 142.3 利用 WINAPI 擴(kuò)充MAPOBJECTS應(yīng)用 程序 172.4 向?qū)永锛訑?shù)據(jù) 192.4.1DataConre
4、ction 對(duì)象 192.4.2GeoDataset 對(duì)象和 GeoDatasets 集192.4.3 增加矢量文件 202.4.4 力口入 SDE 層 202.4.5 增加一個(gè)圖象文件212.5TRACKINGLAYER動(dòng)態(tài)跟蹤層操作 212.5.仃 racki ngLayer 和 GeoEve nt 對(duì)象21錄2.5.2Tracki ngLayer 和 GeoEve nt 對(duì)象 的屬性和方法 212.6 為地LAYER建立一個(gè)用戶界面 222.6.1 介紹 moView.222.6.2 在 Form 中查找一個(gè)文件222.6.3 往 Form 中加入一個(gè)矢量文件222.6.4 往表格中加入
5、圖象文件232.6.5 往表格中加入 SDE 層 232.6.6 更改一個(gè)層集里的層的順序232.6.7 建立層集的一個(gè)Listview .232.6.8 觸發(fā) ListView 里的可見狀態(tài).242.6.9 為地圖屬性建立界面243.坐標(biāo)系和幾何對(duì)象253.1 坐標(biāo)系 263.1.1 控制坐標(biāo)(control coordinate . 263.1.2 地圖坐標(biāo)(Map coordinates.263.1.3 地圖與屏幕間的坐標(biāo)轉(zhuǎn)換 273.2 位置和地圖比例尺 283.2.1 計(jì)算地圖比例尺293.2.2 重置地圖尺寸 293.2.3 建立一個(gè)漫游和縮放操作的工具 條303.3 幾何對(duì)象 3
6、13.4 圖形與幾何對(duì)象 313.4.1 點(diǎn)對(duì)象 323.4.2 點(diǎn)集 333.4.3 矩形對(duì)象 333.4.4 線對(duì)象 343.4.5 多邊形對(duì)象 343.4.6 橢圓對(duì)象 354. 圖屬性的符號(hào)化364.1 地圖元素的符號(hào)化364.1.1Symbol 對(duì)象 364.1.2Re nderer object.394.2 畫形狀和文本.444.3 打印地圖 455. 選擇元素以及檢索信息 455.1 使用記錄集 465.1.1 記錄集對(duì)象 465.1.2 統(tǒng)計(jì)對(duì)象 475.1.3 信息組集合和信息組對(duì)象475.1.4Table Desc 對(duì)象 475.1.5 表對(duì)象以及創(chuàng)建關(guān)鍵 485.2 選擇
7、兀素 485.2.1 通過距離來搜索兀素485.2.2 通過詢問方式搜索兀素 .485.2.3 通過形狀來搜索兀素 .485.3 在MOVIEW應(yīng)用程序中應(yīng)用記錄集525.3.1moView 應(yīng)用程序中的辨別工具2/ 73525.3.2moView 應(yīng)用程序中的尋找命令3/ 73526. 地址匹配及查找定位 536.1 匹配地址 546.1.1 用于地址匹配的專用文件546.1.2 街道繪制文件 556.1.3 地址匹配對(duì)象 556.1.4 交互地址匹配 576.1.5 地址定位對(duì)象 576.1.6 評(píng)估地址匹配 586.2 地址對(duì)象.596.2.1 標(biāo)準(zhǔn)化地址 596.2.2 批地址匹配 6
8、06.3 查找道路交叉點(diǎn) 606.4 使用地點(diǎn)名稱 616.5 地點(diǎn)定位對(duì)象 617. 用 VISUALC+ 來工作 617.1 應(yīng)用程序概觀 627.2 觀察項(xiàng)目 637.3 往你的應(yīng)用程序加一張地圖637.3.1 修改對(duì)話 637.3.2 把 MapObjects 的 Map 控制加入OLE 控制載體項(xiàng)目 .637.3.3 把 MapObjects 的 Map 控制插入你的項(xiàng)目 637.3.4 把 Map 控制加入對(duì)話樣板中.647.3.5 為 Map 設(shè)置一此初始的屬性.64 7.4 項(xiàng)目的修改 657.4.1 取代 Wizard 產(chǎn)生的頭文件和工具文件.657.4.2Wrpper 類頭
9、文件 657.4.3 在項(xiàng)目中加入一個(gè)成員變量657.5 設(shè)計(jì) OLE 控制 667.6 創(chuàng)建處理例行程序 667.6.1 創(chuàng)建一個(gè)處理例行程序667.6.2 加入一個(gè)附加控制 678.配置應(yīng)用程序 688.1OLE 寄存的要求 688.2MAPOBJECTS文件的要求 688.2.1 核心成份 698.2.2SDE 軟件成份 698.2.3 圖像成份 698.2.4DBC 文件要求 698.3TRUETYPE 字體 698.4 使用 MICROSOFTVISUALBASIC的SETUPWIZARD .708.5 用你的應(yīng)用程序分配數(shù)據(jù)704/ 731. 了解 MapObjectsMapObj
10、ects 是一套制圖軟件集,它使程序員能夠把地圖加到應(yīng)用程序中 去。通過 MapObjects 你可靈活地建立適合用戶的地圖接口。在小內(nèi)存空間中, 你能用多種工業(yè)標(biāo)準(zhǔn)程序環(huán)境去建立應(yīng)用程序,你能夠聯(lián)合使用MapObjects 與其它軟件去實(shí)現(xiàn)地圖與用戶信息的聯(lián)系。1.1 組件軟件大部分商業(yè)軟件在最近的版本中極度壯大,諸如字處理及報(bào)表等程序,其 最初僅幾兆,目前卻嚴(yán)重消耗磁盤空間。這就要看最新的計(jì)算機(jī)能否快速執(zhí)行最 新版本軟件以至于不落后于舊機(jī)器使用老軟件的效率。因?yàn)椴僮飨到y(tǒng)變得越來越復(fù)雜及用戶對(duì)更多功能的要求也日趨強(qiáng)烈, 程序 也隨之壯大了。然而典型用戶也僅使用了這些大軟件的10%-20%。那
11、些沒有用到的功能象一個(gè)大包袱,嚴(yán)重消耗了系統(tǒng)資源和磁盤空間。如何打破這種惡性循環(huán)?組件軟件(Component software是一技術(shù)上的重大 突破。它提供了一種解決辦法。組件軟件的原理是把大的桌面應(yīng)用軟件的功能打碎成部件。 開發(fā)人員可根 據(jù)需要恰當(dāng)?shù)貙⒁恍┎考M合成工具箱,用它建立專用軟件。這種部件叫對(duì)象 (objects。所用平臺(tái)就是可視化程序語言。其結(jié)果就是精煉地程序快速經(jīng)濟(jì)地運(yùn) 行并且對(duì)特定的市場(chǎng)有很強(qiáng)的適應(yīng)性。1.2 MapObjects 的功能通過 Map Objects 你可完成以下甚至更多功能:顯示一張多個(gè) Layer 地圖(道路,河流,邊界。放大,縮小,漫游。生成圖形元素,
12、如點(diǎn)、線、圓、多邊形。說明注記識(shí)別地圖上被選中的元素。通過線,方框,區(qū)域,多邊形,圓拾取物體。拾取某參照物特定范圍內(nèi)的物體。通過 SQL 描述來選擇物體。對(duì)選取物體進(jìn)行基本統(tǒng)計(jì)。對(duì)所選地圖元素的屬性進(jìn)行更新,查詢。繪制專題圖。標(biāo)注地圖元素。從航片或衛(wèi)星圖片上截取圖像。動(dòng)態(tài)顯示實(shí)時(shí)或系列時(shí)間組數(shù)據(jù)。在圖上標(biāo)注地址或定位。本書開發(fā)了一系列通過 VB,OLE,Win API 擴(kuò)展 MapObjects 的辦法。5/ 73MapObjects 可執(zhí)行許多基礎(chǔ)制圖功能。但它不能執(zhí)行某些高級(jí)功能。如, 高質(zhì)量地圖輸出,地圖坐標(biāo)系投影,表面模型或網(wǎng)絡(luò)分析等高級(jí)空間分析。以及 拓?fù)渚庉?。你可利用ESRI 的其
13、它產(chǎn)品如 ARC/INFO,ArcView 來實(shí)現(xiàn)高級(jí)功1.3 MapObjects 簡(jiǎn)介MapObjects 包括一個(gè) OLE 控件(OCX 叫做 Map (Map control和一組(三十 多 個(gè)OLE 對(duì)象(objects。它適用于工業(yè)標(biāo)準(zhǔn)程序環(huán)境。如 VB6.0 ,Delphi2.0,PowerBuilder,MS Access 等。MapObjects 不適合最終用戶。它是為程序開發(fā)者設(shè)計(jì)的。程序開發(fā)者可利 用MapObjects 開發(fā)應(yīng)用程序并把這些程序提供給下一級(jí)用戶使用。Map Objects 運(yùn)行于 Win95 或 Win NT3.51 或更高。最近,Mierosoft 開
14、始把 OLE controls 稱作 ActiveX controls 本書將組件稱 作控件(OLE controls 或 OCXs,但這些術(shù)語可與新術(shù)語 ActiveX 互換。1.3.1 MapObjects 和 OLE containersOLE Automation object 是一種可編程對(duì)象,它可通過 OLE Automation server 來通訊。OLE custom control 是一種軟件元件,它可通過 OLE container 實(shí)現(xiàn)特定 功能。OLE con tai ner 和 OLE Avtomatio n Server 就是 VB, Delphi,Access,
15、 VFro。OLE custom con trol 有事件,屬性和方法。OLE Automation objects 有屬性和方法。在 OLE Container 中(如 VB,你能聯(lián)合使用 Map Objects 的對(duì)象和其它 Customcontrols,及利用別的程序中的 OLE Automation objects(如 office去建立 應(yīng)用程序。1.3.2 組件軟件的優(yōu)勢(shì)Map Objects(通常叫 OCXs可容易地用 OCXs 建立程序而免去 C+冗長 的代碼,你可發(fā)揮專長于設(shè)計(jì),項(xiàng)目,制圖,而不是軟件。你的 Map Objects 應(yīng)用軟件不多占用內(nèi)存空間。比其它 Win 支
16、持的制圖軟件速度更快,MapObjects 直接建立在 MFC 庫 上且優(yōu)化執(zhí)行。你有極大的靈活性去建立用戶接口。你可在應(yīng)用程序上建立幾乎所有在 Win95上見過的接口。MapObjects 的另一特點(diǎn)是,地圖可以是程序中的主要元素也可是附屬品。 因此MapObjects 尤其適合 vertical 應(yīng)用軟件。例如,你的軟件可能主要是商用數(shù) 據(jù)庫,當(dāng)查詢時(shí)可在 Form 上高亮度顯示與查詢內(nèi)容相關(guān)的地圖。1.4 使用 MapObjects6/ 73把一張地圖加到 VB 的 Form 上十分容易,如圖(略1.4.1 用 MapObjects 編寫程序的步驟:從 CD-ROM 裝入 MapObje
17、cts。啟動(dòng) VB 在工具菜單下打開 Custom controls 對(duì)話框。如果安裝成功你 將看到 ESRI Map Objects 的全稱。用鼠標(biāo)點(diǎn) check box (選 Map Objects 可 用。你會(huì)看到 Map Objects 圖標(biāo)被加到 VB 工具欄內(nèi)。選 Map,把鼠標(biāo) 移到 Form中,拖動(dòng)十字絲把矩形框尺寸調(diào)到適當(dāng)大小,釋放鼠標(biāo),你 的 Form 上就會(huì)有一個(gè) Map。通過 Map 屬性框或通過對(duì) Data conn ection 和 Layer 對(duì)象的編程, 你可向 Map中增加地圖數(shù)據(jù)。你還可以繼續(xù)添加其它控件,如命令按鈕和工具條,或編寫代碼來調(diào)用 屬性,事件和方
18、法。編寫,調(diào)試,編譯。1.4.2 安裝 MapObjects一旦從 CD-ROM 中成功裝入,下一步就是向 VB 項(xiàng)目中增加 MapObjects。 當(dāng)你打開一個(gè) VB 的項(xiàng)目,工具檔中包含了一部份你已購買的VB 控件。但并不是全部。你會(huì)發(fā)現(xiàn)制定缺省控件裝入從而把MapObjects 包括進(jìn)去是十分方便的。為達(dá)到上述目的,你可向 C:Program FilesMicrosoft Visral BasicAvto 32 ld.vbp中加入所需控件。一但你把 MapObjects 加入,在每次開始新項(xiàng)目時(shí),Map 將被自動(dòng)裝入。你可自己制定一次裝入控件的數(shù)量。按需要決定控件的數(shù)量是一個(gè)好習(xí) 慣。這
19、樣會(huì)使你的項(xiàng)目裝入的快點(diǎn)且節(jié)省內(nèi)存。1.4.3 加入一 Map你可向任意 VB Form 中加入一個(gè)或多個(gè) Map。當(dāng)你向 Form 中加入一 Map,最初它就象 VB 的圖片框控件,然而它的資源 并不是位圖而是矢量或柵格數(shù)據(jù)的 Layer。7/ 731.4.4 加入 Layer你可通過 Map 的屬性窗或通過寫代碼來加入 Layer。你可通過 Map 屬性窗口增加 Layer 也可采用在 Layer 屬性窗口中對(duì) Layer 對(duì) 象賦屬性的辦法加入 Layer。Map 屬性窗和 Layer 屬性窗是連接 Map 和 Layer 對(duì)象的某些屬性的通道。在實(shí)踐中你可通過寫代碼來增加Layer,因
20、為你通常不能預(yù)言你的下級(jí)用戶需要的 Layer 在哪里。下面是加入 Layer 的例子:Dim dCON As New MapObjects.DataConnectionDim curLayer As New MapObjects.MapLayerdCON.Database = c:DatacurLayer.GeoDataset = dCON.FindGeoDataset(Counties map1.Layers.Add curLayer這是一段通用程序,下一章我們將進(jìn)一步討論MapObjects 的數(shù)據(jù)通道(dataaccess:對(duì)象,將介紹更多的增加 Layer 的程序。1.4.5 編寫代
21、碼和增加屬性以下是如何使用VB代碼編輯器和設(shè)置屬性(略Map 上打開 VB 代碼窗時(shí),你就會(huì)看到關(guān)于Map 屬性表中可快捷設(shè)置 Map 的屬性。的。我們?cè)诤竺鏁?huì)涉及1.4.6 取得 MapObjects 的幫助MapObjects 具有在線幫助系統(tǒng),它包括 Map Objects 每一對(duì)象的屬性,方法 和事件,以及常量的詳細(xì)說明。大多數(shù)幫助的主題下都有一小段程序例子,它可在VB 下執(zhí)行。下面有三種辦法可得到幫助:你可點(diǎn)工具欄中 Map 并按 F1。可通過 VB 的對(duì)象瀏覽器與 Map Objects 的幫助建立聯(lián)系??砂?VB 編輯窗口的文本游標(biāo)移到 MapObjects 的某一對(duì)象,屬性或事
22、 件上按F1。一種最好的學(xué)習(xí) MapObjects 的方法就是學(xué)習(xí)例子。以下是使用例子的步 驟:在幫助的主題下點(diǎn)例子。打開一新 VB 項(xiàng)目并加上一 Map 當(dāng) Form 是活動(dòng)狀態(tài)時(shí)按 F7 打開代碼編輯器。讀例子的結(jié)構(gòu),并向 Form 中加入特定控件。象其它所有控件一樣,當(dāng)在Map 的所有事件的代碼結(jié)構(gòu)。在最后一部分,你會(huì)看到在注意,在標(biāo)準(zhǔn)屬性窗口中,Map 的一些屬性是不可見的。這些屬性是只讀8/ 73從例子中粘貼代碼到代碼編輯器中。按 F5 或選擇 RUN。你的例子將被運(yùn)行。1.4.7 運(yùn)行項(xiàng)目你可編寫一小段應(yīng)用程序。加入地圖控制并加入一個(gè)或多個(gè)Layer。在編寫時(shí)你不會(huì)看到任何 Lay
23、er 顯示出來。但當(dāng)程序運(yùn)行時(shí),你就會(huì)看到 Layer 將掌滿 顯示區(qū)域,如果沒制定符號(hào)屬性(顏色、大小、型 ,則缺省設(shè)置將自動(dòng)啟用。1.5 使用 OLE Automation objects除了 Map 以外,MapObjects 包括三十多個(gè) OLE Automation objects,這些對(duì) 象是 MapObjects 區(qū)別于同類產(chǎn)品的制圖軟件部件,它們提供了靈活性和多功 能。OLE Automation objects 是編寫交互的高效應(yīng)用軟件的關(guān)鍵。1.5.1 使用對(duì)象瀏覽器OLE Automation objects 在打開 VB 之初并沒有呈現(xiàn)出來。但可在對(duì)象瀏覽 中看到它們,
24、點(diǎn) View 菜單中 object Browser,在庫/項(xiàng)目下拉框中選Mapobjects- ESRIMapobjects你就會(huì)在類/組件列表框中看到 MapObjects 的 constants 和對(duì) 象。點(diǎn)任意對(duì)象,在方法/屬性列表框中就會(huì)有增加。 點(diǎn)任意方法或?qū)傩裕憔蜁?huì)在對(duì)象瀏覽器底部看到一小段描述。點(diǎn) question 按鈕,就會(huì)得到 on line 幫助。1.5.2 引用 OLE Avtomation objects大多情況,用 MapObjects 就要用 Map。Map 是一種可視化元素,然而有一 些用MapObjects 編制的應(yīng)用程序并不需要 Map。你可以在 VB 的
25、Referenee 窗口 選中MapObjects OLE Automation objects 而不用增加 Map。在 VB 工具注意, 如果你把 MapObjects加到 VB的工具欄中, 也就自動(dòng)地引用了 OLE Automation objects。1.5.3 聲明對(duì)象當(dāng)你聲明或建立一新對(duì)象時(shí),最好寫全名,例:Dim rSet As New Mapobjects.Recordset而不是Dim rSet As New Recordset這不僅可提高運(yùn)行效率,也避免了潛在的命名矛盾。如Recordset 對(duì)象和 VB 的 Recordse 對(duì)象。MapObjects 的9/ 731.5.
26、4 使用常量本書涉及了所有 MapObjects 可用的常量,在設(shè)置變量或?qū)傩詴r(shí)可使用常量 而不是數(shù)值。常量代表的具體數(shù)值請(qǐng)參閱參考手冊(cè)和在線幫助。1.5.5 明確變量類型如果你還沒有做準(zhǔn)備,你就應(yīng)該在VB 的項(xiàng)目中聲明變量和對(duì)象的類型。從Tools 單中選 Options 項(xiàng),在 Options 對(duì)話框中點(diǎn)中 Require Variable Declaration, 在任何一個(gè)新表或模塊中都會(huì)具有這個(gè)設(shè)置。在聲明段,你的微不足道的變量和對(duì)象聲明工作將換來少測(cè)試和高效的1.6 MapObjects的數(shù)據(jù)源你可通過 Map Objects 使用矢量文件,圖像文件,屬性表或通過ESRI 的專用數(shù)
27、據(jù)庫引擎連接的專用數(shù)據(jù)庫。矢量文件是地圖數(shù)據(jù)的矢量形式,圖像文件是柵格圖像或尤指航空或衛(wèi)量 的畸變圖像的糾正照片,屬性表是可用 ODBC 裝入的任意格式。專用數(shù)據(jù)庫是網(wǎng)絡(luò)上通過 ESRI 專用數(shù)據(jù)庫引擎連接的 UNIX 服務(wù)器。矢量文件適用于中小型地圖數(shù)據(jù)。而大型數(shù)據(jù)(省,國家道路網(wǎng) ,你就需使 用專用數(shù)據(jù)庫。用 MapObjects 編寫的軟件是可伸縮的。最初你可用矢量文件。當(dāng)用戶需要 與大型數(shù)據(jù)庫連接時(shí),幾乎所有代碼都可被移到與專用數(shù)據(jù)庫連接后的工作中, 你僅需修改打開數(shù)據(jù)源的幾行代碼。1.6.1 矢量文件矢量文件是 ESRI 提供的存儲(chǔ)地理數(shù)據(jù)的矢量格式。這就意味著地圖元素以 X,丫形式
28、出現(xiàn)。其坐標(biāo)系是笛卡爾坐標(biāo)。注意,笛卡爾坐標(biāo)與屏幕坐標(biāo)有所不 同。每一元素的幾何形狀以包括一組矢量坐標(biāo)的形的形式存儲(chǔ)。其屬性存放在 與矢量文件相連的 dBASE 的記錄中。以下是得到矢量文件的不同方法。 購買商業(yè)地圖數(shù)據(jù)。MapObjects 提供的光盤。ARcView , ARC/INFO 等 ESRI 產(chǎn)品的數(shù)據(jù)。編寫程序從其它格式中轉(zhuǎn)換。一個(gè)矢量文件由三種文件組成,主文件(*shp包含幾何形狀。索引文件(*shx包含數(shù)據(jù)的索引。數(shù)據(jù)庫文件(*dbf包含形的屬性,你可以修改字段的定 義。每一個(gè)矢量文件包含一種類型(點(diǎn)弧多邊形10/ 73點(diǎn)有一個(gè)(X,Y坐標(biāo)和一個(gè)屬性?;《伟粭l或一組(可
29、連,可不連 的多義線。一條多義線是一組有序 結(jié)點(diǎn)。每一弧段有一個(gè)屬性記錄。多邊形包括一個(gè)或多個(gè)邊界,一個(gè)邊界是一個(gè)無交叉點(diǎn)的閉合環(huán),一個(gè) 邊界可嵌于一多邊形中而形成環(huán)形。邊界的方向決定它是否代表區(qū)域內(nèi) 的面積。每一多邊形有一屬性記錄。矢量文件通過 ODBC 讀入,ODBC 在裝 Map Objects 的同時(shí)被裝入并注冊(cè)。ARC/INFO 用戶應(yīng)注意矢量文件中弧,多邊形的定義不同于ARC/INFOcoverage 中的定義。 矢量文件無拓?fù)洌?因此, 矢量文件允許你集合簡(jiǎn)單元素來合 成元素。如,把幾條 polyoline 會(huì)成 arc。通過矢量文件,你可快速顯示圖形并具 有一簡(jiǎn)單數(shù)據(jù)模型。以簡(jiǎn)
30、單數(shù)據(jù)模型換取快速顯示,這使得對(duì)矢量文件進(jìn)行拓 撲編輯或高級(jí)分析變得十分困難。矢量文件是一種通用格式,如果你想編寫程序直接讀寫矢量文件,你可以從 ESRI 網(wǎng)點(diǎn)上下載 ArcView V 2.0 矢量文件描述。1.6.2 圖像(Image文件你可通過 MapObjects 編寫應(yīng)用程序來顯示多種圖像文件。在地圖中圖像多 來自航空照片和衛(wèi)星圖像。圖像文件依靠帶有灰度值或色標(biāo)的一組像元來表示圖片,這些像元無屬性 連接,其坐標(biāo)系統(tǒng)與矢量文件不同。你可把圖像文件精確重疊于大地坐標(biāo)的矢量文件。MapObjects 或其它 ESRI軟件用 world files 來配準(zhǔn)圖像。一個(gè) world 文件是一個(gè)簡(jiǎn)
31、單的文本文件,它包括數(shù)學(xué)參數(shù)來定義轉(zhuǎn)換關(guān)系,其公式為:x = Ax + By + Cy = Dx + Ey + Fx像元在地圖上的計(jì)算坐標(biāo)值 X。y像元在地圖上的計(jì)算坐標(biāo)值 Y。x 像元列數(shù)。y 像元行數(shù)。A X 軸上像元的尺寸。2.4.1D 旋轉(zhuǎn)關(guān)系項(xiàng)。E 負(fù)的 Y 軸上像元的尺寸。2.4.2F 左上角像元中心的 X Y 地圖坐標(biāo)。注意 E 為負(fù)值,因?yàn)?,矢量文件坐?biāo)與圖像坐標(biāo)丫方向正向反。world 文件是包含 A, B, C, D, E, F 值的連續(xù)行文本文件。注意 Map Objects 不支持圖像旋轉(zhuǎn)。這樣 B, D 的值在 world 文件中是被忽 略的。為果需要旋轉(zhuǎn),你可用 E
32、SRI 的 ARC GRID。以下是 MapObjects 支持的圖像文件格式。名稱描述擴(kuò)展名 World file 擴(kuò)展名BMP Win dows bitm ap*.bmp *.bpw11/ 73TIFF Tag image file*.tif *.tfwSUN Sun raster file *.s un *.s nwERDAS ERDAS GIS or LAN *.gis *.gswIMPELL IMPELL bitmap*.rls*.rlwBILBand in terleaved by line *.bil*.blwBIPBand in terleaved by pixel *.bip
33、*.bpwBSQBand seque ntial*.bsq*.bqw1.6.3 屬性表用 MapObjects 編寫的應(yīng)用程序,可通過一種關(guān)系與外部屬性表相連。關(guān)系 是連接兀素表(兀素表可是矢量文件的 dBASE 表,也可是從 SDE 層中得到的表 與屬性表的表。為了這種連接,可安裝 ODBC。這種關(guān)系留存于應(yīng)用程序運(yùn)行期 間,它不會(huì)被寫入文件中。要建立這種關(guān)系。你要確認(rèn)一個(gè)元素表的某一字段,一個(gè)要與之建立關(guān)系 的屬性表和該屬性表的一個(gè)字段。屬性表的相關(guān)字段必須是primary key 或允許在其上建立一獨(dú)一無二的索引。有一例外,在少于100 個(gè)記錄的小型元素表上可建立無特殊字段的關(guān)系。一旦建
34、立了關(guān)系,它就在元素表上建立了一種紐帶,你可通過屬性表的字 段查詢屬性,但你不能在 MapObjects 中通過 SQL 表達(dá)式向里面增加數(shù)據(jù)。1.6.4 空間數(shù)據(jù)引擎如果你采用大規(guī)模地圖數(shù)據(jù)組來組織工作, 建議考慮使用空間數(shù)據(jù)引擎 (SDE, 種高性能制圖數(shù)據(jù)服務(wù)器。通過 SDE,空間數(shù)據(jù)可存放于 UNIX 服務(wù)器上。用戶的 SDE 應(yīng)用程序可基 于 UNIX或 WIN 環(huán)境被編寫,SDE 提供軟件開發(fā)和數(shù)據(jù)管理能力:管理大規(guī)模地理數(shù)據(jù),提供地圖無縫顯示。通過某種商業(yè)關(guān)系數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)。通過一組高效的尖端空間數(shù)據(jù)操作來查詢空間數(shù)據(jù)。SDE 包括一個(gè) C 語言應(yīng)用程序接口 (API,它提供最大
35、能力的執(zhí)行效率和極 大的靈活性。下一章,我們將詳細(xì)解紹與 SDE 的連接。1.7 縱覽 MapObjectsMap Objects 包含一組具有屬性,事件和方法的對(duì)象。你已經(jīng)看到你可通過 Map 快速建立一簡(jiǎn)單應(yīng)用程序,但實(shí)際的應(yīng)用中,需 要使用OLE Automation objects。當(dāng)你初次使用 MapObjects 你應(yīng)了解這些對(duì)象、 屬性和方法。這些對(duì)于 MapObjects 的全部組織是非常有用的。Map Objects 的對(duì)象分為四組:數(shù)據(jù)通道對(duì)象組地圖顯示對(duì)象組12/ 73幾何圖形對(duì)象組地址匹配對(duì)象組1.7.1 數(shù)據(jù)通道對(duì)象組通過數(shù)據(jù)通道對(duì)象組,你能建立與地圖數(shù)據(jù)的聯(lián)系。增加
36、屬性值,從地圖 元素上反饋屬性信息。數(shù)據(jù)通道對(duì)象組由以下部件組成:數(shù)據(jù)連接(Data Co nn ectio n對(duì)象是 Map Objects 通向地圖數(shù)據(jù)的通道。它包 括屬性和方法來建立與地理數(shù)據(jù)集合(GeoDatasets 啲聯(lián)系。地理數(shù)據(jù)集合(GeoDataset象代表制圖數(shù)據(jù)并可引用 Layer。它可引用矢 量文件或 SDE layer 的數(shù)據(jù)。地理數(shù)據(jù)集合 是對(duì)于一個(gè)數(shù)據(jù)連接的所有地理數(shù)據(jù)集合對(duì)象的總合。它是 一特定文件夾中所有矢量文件或 SDE 數(shù)據(jù)庫中所有 SDE 層。記錄集合(Record set對(duì)象代表一個(gè) Layer 的記錄。如果你做了一個(gè)選擇 集,它就代表所選記錄。它類似
37、于數(shù)據(jù)庫指針。TableDesc 對(duì)象給你關(guān)于與記錄集相連的表的字段的信息。表(Table對(duì)象是一個(gè)只讀數(shù)據(jù)通道對(duì)象。它代表來自O(shè)DBC 數(shù)據(jù)源的一個(gè)Form。你可增加一表作為與 Layer 對(duì)象的關(guān)聯(lián)或?yàn)榱舜笈刂菲ヅ?。字段集合包括記錄集?duì)象的字段對(duì)象。統(tǒng)計(jì)對(duì)象代表關(guān)于一個(gè)記錄集的簡(jiǎn)單統(tǒng)計(jì)信息。 你首先應(yīng)用一方法計(jì)算關(guān) 于記錄集的統(tǒng)計(jì)值,然后可在統(tǒng)計(jì)對(duì)象中檢查結(jié)果。字串集合是一組標(biāo)準(zhǔn)字符串?dāng)?shù)據(jù)類型集合。 你可通過它從其它對(duì)象中取值 來自接口控件(如列表框中增加數(shù)據(jù)。1.7.2 地圖顯示對(duì)象組通過地圖顯示對(duì)象組,你能用符號(hào)或?qū)n}描述畫一張地圖。你也可加入圖 像做為背景,在地圖上顯示動(dòng)態(tài)數(shù)據(jù)。地
38、圖顯示對(duì)象組由以下部件組成:Map 使你能顯示 Layer、圖像層,和動(dòng)態(tài)跟蹤 Layer 對(duì)象,你可編寫代碼來 控制鼠標(biāo)驅(qū)動(dòng)繪圖事件,設(shè)置顯示參數(shù),用方法可畫元素,閃爍選擇的元素,計(jì) 算點(diǎn)與元素的距離,輸入線,圓,三角。層(Layer集合是服務(wù)于 Map 的 Layer 對(duì)象和 Image 對(duì)象的集合。Layer 對(duì)象代表帶有一些顯示屬性的地理數(shù)據(jù)集合對(duì)象。它可讓你處理專題 地圖,此對(duì)象有幾個(gè)方法來查找和選擇地理元素。圖像層對(duì)象代表一作為 Map 上的背景的影像文件。動(dòng)態(tài)跟蹤 Layer(Tracking Layer對(duì)象讓你能動(dòng)態(tài)拖拽元素而無需重顯。這對(duì) 實(shí)時(shí)數(shù)據(jù)獲取是十分理想的(如 GPS
39、。它也可用于顯示基本幾何形狀(如三角、 圓和描述性文本。它們都不是地圖數(shù)據(jù)的一部分。Geo Event 對(duì)象代表可加到 Tracking Layer 對(duì)象上的點(diǎn)元素。符號(hào)(symbol對(duì)象是廣泛使用的對(duì)象,它影響如何在地圖上顯示元素的許多 方13/ 73面。其屬性包括:顏色、字形、大小、形狀。文本(Textsymbol對(duì)象代表文本的某些屬性(如準(zhǔn)線、字型ClassBreaksRenderer 對(duì)象使你能在 Layer 對(duì)象中通過分類的辦法依數(shù)值字 段顯示元素。ValueMapRender 對(duì)象使你在 Layer 對(duì)象中通過特殊字段中單獨(dú)的值,用符 號(hào)來顯示元素。LableRenderer 對(duì)象
40、使你在 Layer 對(duì)象中,依元素的某一字段的屬性標(biāo)注文 本。1.7.3 幾何圖形對(duì)象組幾何圖形對(duì)象組提供幾種功效:依從 Layer 中選擇的元素反饋幾何信息;向 Layer添加幾何對(duì)象;向地圖中畫幾何對(duì)象而不更新 Layer。幾何圖形對(duì)象組由 以下部件組成:矩形(Recta ngle寸象經(jīng)常用來設(shè)置和反饋地圖范圍,也用來畫矩形。點(diǎn)集合存貯線和多邊形對(duì)象的坐標(biāo)。點(diǎn)對(duì)象代表具有 X、丫坐標(biāo)的點(diǎn)。線對(duì)象代表地圖上的一條線。多邊形對(duì)象代表多邊形。它的頭一個(gè)點(diǎn)和最后一個(gè)點(diǎn)在它的點(diǎn)集合上是相 同的。橢圓對(duì)象代表橢圓和圓。1.7.4 地址匹配對(duì)象組地址匹配對(duì)象組讓你進(jìn)入一 Layer 上的某個(gè)地址,該地址
41、具有街道和地址范 圍并返回一個(gè)位置,你也可發(fā)現(xiàn)十字路口的位置和地名。地址匹配對(duì)象組由以下 部件組成:地址匹配(Address Matcher對(duì)象讓你列出含有地址范圍的道路中心線的地理 數(shù)據(jù)集合,并具有為單個(gè)或一批地址匹配的方法。地址對(duì)象代表關(guān)于 Address Matcher 對(duì)象的方法中標(biāo)準(zhǔn)化地址。定位對(duì)象(Place Locator讓你列出帶有地名的地理數(shù)據(jù)集并通過一個(gè)方法找 出地名的位置。地址位置 (Address Location對(duì)象包含一段代碼指示是否(或如何 一個(gè)地址 被解決如果已被解決指出與地址匹配的圖形位置。1.8 moView 應(yīng)用程序我們提供一種叫作 moView 的應(yīng)用程
42、序來展示 Map Objects 許多功能的優(yōu)點(diǎn) 并提供模板,在這本書的許多章節(jié)將通過代碼片段和來自于 moView 及其它例子 的應(yīng)用來揭示 MapObjects。你可在 Map Objects 光盤的例子目錄中找到moView,如要學(xué)習(xí)只需考貝moView 文件夾到你的系統(tǒng)目錄中。moView 是一種普通簡(jiǎn)單的制圖應(yīng)用程序。它的接口圍繞著Map 而調(diào)整,這種類型叫作地圖中樞(map ceneric,也許在你的應(yīng)用程序中地圖很象是一個(gè)附件 而14/ 73不是核心。在應(yīng)用程序中,沒有硬編譯代碼 (Hard coded 的數(shù)據(jù)源,你可使用任何MapObjects 可接受的數(shù)據(jù)。moView 展示
43、了許多事件、屬性和方法。并提供一個(gè) 框架使你在開發(fā)程序時(shí)可踴躍前進(jìn)。你可為某特定市場(chǎng)建立縱向應(yīng)用程序。這時(shí)你可使用moView 片段,它給你的應(yīng)用程序做向?qū)?。并可擴(kuò)展為特定應(yīng)用程序所設(shè)計(jì)的接口。5.%2 運(yùn)行 moView一但在 VB 內(nèi)裝入 moView,你可按 F5 或點(diǎn) Run 菜單中的 Start。當(dāng)你打開 moView 你就會(huì)看到一個(gè)主表和一個(gè)空地圖顯示區(qū),你可點(diǎn)工具條 中第二個(gè)按鈕(地圖目錄來引入 Layer,地圖目錄表很象 VB 中 Map 屬性 Form。6.%2 moView 命令集moView 的主要命令被裝在主表的工具條中。 打印,向缺省打印機(jī)輸出 Map 上的當(dāng)前顯示。
44、查找,可產(chǎn)生一元素查找表,通過它你可根據(jù)屬性來定位元素??臻g選擇(Spatial select,將產(chǎn)生空間選擇表,通過它可實(shí)行 MapObjects 的 所有空間尋找方法。地址匹配(Adress match in g, 可產(chǎn)生地址匹配表,通過它可執(zhí)行基礎(chǔ)地址匹 配。撐滿 (Full extent, 在 Map 中撐滿地圖包括所有 Layer 中的所有元素。放大 (Zoomin ,開窗放大??s?。╖oom out ,以鼠標(biāo)點(diǎn)為中心降低地圖比例二倍。漫游(Pa n標(biāo)注(Ide neify,標(biāo)注鼠標(biāo)點(diǎn)或附近。圖形(Graphics,激活圖形工具條可畫幾何圖形。1.8.3 框架開發(fā)用 VB 建立一地圖
45、應(yīng)用程序的用戶接口是一項(xiàng)特殊的要求。因?yàn)閂B 提供的控件最適合交互式文本和表,對(duì)于圖形僅為邊緣插圖功能象地圖的圖式。 moView 的一個(gè)重要的中心任務(wù)是解決建立地圖用戶接口問題。我們不選用第三方控件,因?yàn)槲覀儾荒茴A(yù)言或假設(shè)你除了VB 提供的控件以外使用什么控件。為建立地圖應(yīng)用程序的用戶接口。你可選擇任何一個(gè)廠商提供 的控件。對(duì)于 moView 應(yīng)用程序的源代碼和表你都有通道與連接,無論你有無VB 經(jīng)驗(yàn),moView 的代碼對(duì)你都是有價(jià)值的。1.%2.%3 moView 的方針你會(huì)發(fā)現(xiàn) moView 應(yīng)用程序在 VB 下安裝了一些程序標(biāo)準(zhǔn),這些應(yīng)用程序提 高了應(yīng)15/ 73用程序的健壯性、可讀
46、性和可靠性。你的選擇是由你和應(yīng)用程序的大小和 特性決定的。對(duì)于一成功的應(yīng)用程序開發(fā)來說。程序標(biāo)準(zhǔn)是一個(gè)基本部份。在 moView 中使用的一些程序方法:用控件的標(biāo)準(zhǔn)前綴的命名約定。整個(gè)代碼中大量的描述性注釋。變量范圍限制和全局變量限制。在開始階段裝入并隱藏表來優(yōu)化執(zhí)行。向標(biāo)準(zhǔn)模型中壓縮數(shù)據(jù)和方法。2.使用地圖和 Layer使用 MapObjects 的起點(diǎn)就是向應(yīng)用程序中加入地圖并向地圖中加入數(shù)據(jù)。向應(yīng)用程序中加入地圖十分簡(jiǎn)單,只需把工具箱中的 Map 加到 VB 的 Form 中,象其它控件一樣,你可調(diào)整它的大小和位置,并可同過VB 的屬性窗口或Map 屬性窗口來改變屬性。通過 Map 屬性
47、窗口加入矢量文件十分方便,當(dāng)你在應(yīng)用程序中使用 Map Objects時(shí),還會(huì)發(fā)現(xiàn)使用 Layer 是十分必要的。最初,你會(huì)對(duì)向地圖中加入 Layer 感到不適應(yīng),你不得不研究大量的 OLEAutomatiion objects、SDE 層和影像文件。但漸漸你會(huì)發(fā)現(xiàn) MapObjects 的數(shù)據(jù)通 道和地圖顯示對(duì)象具有極大的靈活性和多功能性。本章將涉及以下內(nèi)容:如何在地圖上表示層。層的次序。向地圖中加入矢量文件。向地圖中加入圖像文件。建立地圖用戶接口。設(shè)置地圖屬性。數(shù)據(jù)連接。修改 Layer。動(dòng)態(tài)跟蹤層。本章將涉及以下對(duì)象:GeoDatasets 集、 DataConnection 對(duì)象、 G
48、eoDataset 對(duì)象、 Map、 Layer 集、Layer對(duì)象、Image 對(duì)象、動(dòng)態(tài)跟蹤層對(duì)象、GeoEve nt 對(duì)象。使用 MapObjects 向地圖中添加數(shù)據(jù)有三種方式:通過建立 DataConnectior、GeoDataset 和 Layer 對(duì)象及向地圖對(duì)象的層 集中添加數(shù)據(jù)的方法加入矢量地圖數(shù)據(jù)。通過建立 Image 對(duì)象及向地圖對(duì)象的層集中 Image 的方法顯示影像地圖 數(shù)據(jù)以作背景。通過使用動(dòng)態(tài)跟蹤層對(duì)象和添加 GeoEve nt 對(duì)象的方法實(shí)現(xiàn)動(dòng)態(tài)跟蹤。16/ 732.1 在地圖上畫層地圖包含許多層?,F(xiàn)在我們要討論 MapObjects 的各種層對(duì)象和如何在 M
49、ap 中管理 Layer。2.1.1 用戶眼中的 Layer地圖的最上方是動(dòng)態(tài)跟蹤層,最下方為Map,中間為層集。層集中 Layer 對(duì)象和 Image 對(duì)象可以任意順序排放,但通常 Image 顯示在最底層作為背景。以層方式工作十分有意,因?yàn)樗鼓愫苋菀椎倪x取同類地物。2.1.2 程序員眼中的層以下是影響顯示地圖數(shù)據(jù)的關(guān)鍵對(duì)象:Map 是顯示 Layer 的平臺(tái),它有兩個(gè)重要的屬性:層集和動(dòng)態(tài)跟蹤層對(duì) 象。層集包含 Layer 對(duì)象和動(dòng)態(tài)跟蹤層對(duì)象。它們的順序決定在Map 中的相互覆蓋關(guān)系。Layer 對(duì)象代表矢量數(shù)據(jù)。Image 對(duì)象代表柵格數(shù)據(jù)。 動(dòng)態(tài)跟蹤層對(duì)象顯示實(shí)時(shí)數(shù)據(jù)。Map 的關(guān)
50、鍵屬性是層和跟蹤層。當(dāng)你向 Form 中加入 Map,你也同時(shí)建立了 一個(gè)空層和空跟蹤層。另一重要屬性是 Extent。它決定地圖的顯示范圍。用 Refresh 方法在 Map 上畫層。當(dāng)你執(zhí)行下列操作時(shí) Refresh 方法將自動(dòng)執(zhí) 行:向?qū)蛹屑尤?Layer 或 Image。使用 Pan 和 CenterAt 方法。更新 Map 的 Extent 屬性。使用 Clear 或 Remove 方法。注意, 有些操作不會(huì)引發(fā) Refresh 方法, 在編寫程序時(shí)應(yīng)在這些操作后加上 Refresh方法一使操作更新顯示。2.2 標(biāo)準(zhǔn)控件的屬性和方法如果你是 VB 的用戶,你應(yīng)了解一些標(biāo)準(zhǔn)屬性和方法
51、:Container、Dragicon、 Index、 Left、 Height、 Drag、 Setfocus 等, 這里我們還將介紹一些 Mapobjects的專門屬性。17/ 732.2.1 層集層集是 Map 的重要屬性,包含 Layer 和 Imageo使用 Add 方法可向?qū)蛹屑尤隠ayer 或 Image,無論增加了Layer 還是Image,F(xiàn)ullExtent 屬性都會(huì)使地圖撐滿。如果你想使全圖重新顯示,可設(shè)置Extent 屬性為 FullExtent。Set mapI.Exte nt = mapl.FullExte ntClear 和 Remove 方法可刪除層集中某層。
52、例如:Mapl.Layers.Remove (4MoveTo、MoveToBottom 和 MoveToTop 方法可改變層集中層的順序。層的表示可以有層名和索引兩種方式。例如,下面的例子中索引號(hào)為2,層名名叫 Hydrography:Map1.Layers.ltem(2.Symbol.Color = vbBlueMap1.Layers(2.Symbol.Color = vbBlueMap1.Layers.ltem(Hydrography.Symbol.Color = vbBlueMap1.Layers(Hydrography.Symbol.Color = vbBlueLayer 對(duì)象Laye
53、r 對(duì)象代表矢量數(shù)據(jù)。你可以下面的方式建立新層:Dim mLayer As New MapObjects.MapLayer當(dāng)你通過 DataConnection 對(duì)象 的 FindGeoDatase 方法把 Layer 力卩到GeoDataset 對(duì)象中時(shí),以下操作將自動(dòng)執(zhí)行:Exte nt 屬性被更新為地圖的最大范圍。Records 屬性被分配了一 Recordset 對(duì)象。Shap eType屬性將依據(jù)矢量文件類型被設(shè)成 moPoi nt、 moLi ne、 moPolyg on。Symbol 設(shè)為缺省,并隨即賦予顏色。如果 FindGeoDataset 方法成功,Valid 屬性將被設(shè)成
54、 True。 Visible 屬性設(shè)成True。Renderer 屬性將設(shè)為 Nothing,等待你設(shè)定其中的一個(gè)Rerderer 對(duì)象:ClassBreaksRenderer 、ValueMapRenderer 、DotDensityRenderer或LableRendere。Maplayer 給你提供了一些強(qiáng)有力的方法以改變Maplayer 的屬性數(shù)據(jù)。這些將在第五章里講述。Image 對(duì)象Image 對(duì)象表示你的層集中的一個(gè)圖象文件。象Layer 對(duì)象一樣,可以如此創(chuàng)立一個(gè)新 Image 對(duì)象:Dim iLayer As New Mapobjects ImageLayer然后,你可在層集
55、里用 Add 方法往你的地圖畫面里加入圖象文件。你可能18/ 73還要使用層集里的 MoveToBottom 方法,這樣圖象就不會(huì)擋住其它的層。當(dāng)你將 Image 附加圖象文件時(shí),Extent 屬性就會(huì)被更新,最大限度地反映地 理范圍。在同一地理坐標(biāo)上,如果你想使用其它Layer,圖象文件應(yīng)有一個(gè)相關(guān)的配準(zhǔn)文件。 反饋 Layer 類型在層集里用 Add 方法加入 Layer 或 Image,如方法成功,就會(huì)反回 True。一旦層集里包括了一些層對(duì)象,你必須隨時(shí)掌握各種層的類型。下面是在 層集中返回層類型的例子:Dim Layer As objectsFor Each Layer
56、 In Map1.LayersIf Layer.LayerType = moMapLayer ThenMsgBook layer & Layer.Name & is a map layerElseIf Layer.LayerType = moImageLayer ThenMsgBook layer & Layer.Name & is a image layerEnd IfNext Layer注意,我們必須將層聲明為對(duì)象,這樣Visual Basic 可在運(yùn)行時(shí)接受此定義。在上面例子中,還用到兩個(gè)常量: moMaplayer 和 molmagelayer,這增加了
57、 程序的可讀性。你可在 Map Objects 幫助屏上或在 MapObjects 程序員手冊(cè)上查到 所有常量的值。 全面檢查 Layer在上面例子的基礎(chǔ)上,使用層集索引全面檢查Layer 屬性:Dim i As IntegerFor i = 0 To Mapl.Layers.Count - 1If Map1.Layer(i.LayerType = moMapLayer ThenIf Map1.Layer(i.shapeType = moPoint ThenMsgBook Layer number & i & is a map layer and contains
58、 points.ElseIf Map1.Layer(i.shapeType = moLine ThenMsgBook Layer number & i & is a map layer and contains lines.ElseIf Map1.Layer(i.shapeType = moPolygon ThenMsgBook Layer number & i & is a map layer and contains polygons.End IfElseIf Map1.Layer(i.LayerType = moImageLayer ThenMsgBook
59、 Layer number & i & is a image layer.End IfNext i19/ 73Layer 顯示Layer 在 Map 中的顯示順序與其在層集中索引的順序相反。新增 Layer 的索引號(hào)總是 0,以有 Layer 的索引號(hào)按順序遞增。這與 VB 的 一些集合有所不同。在地圖控制單中,Layers 是按 Layers 集里索引值的例序排列來調(diào)用的. Drawing 事件當(dāng)你在地圖上調(diào)出 Layer 后,一系列事件就會(huì)起動(dòng)。你可將程序放到這些事 件后面,并可讓用戶取消調(diào)出的大的地Layer。當(dāng)你在 Map 中使用 Refresh 方法,就
60、會(huì)出現(xiàn)如下情況:BeforeLayerDraw 事件起動(dòng)。 層集按索引相反順序調(diào)出。AfterLayerDraw 事件起動(dòng)。 BeforeTrack in gLayerDraw 事件起動(dòng)。 如果任何 GeoEvents 加入到 TrackingLayer 中,他們就被畫出。 AfterTrack ingLayerDrow 事件啟動(dòng)。這些 Drawing 事件的一個(gè)使用方法是往地圖上畫一些幾何圖形,如線、圓 和在地圖上說明注記,另一使用方法是調(diào)出層集或TrackingLayer 之前來檢驗(yàn)狀態(tài)。如果你的用戶在地圖上已啟動(dòng)了一種方法,而它又占用了太長的時(shí)間,你 可按Escape 鍵取消操作。你可賦予 Map 的 CancelAction 屬性以下三種值。moCancelNone 是說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中小校長管理制度
- 中建倉庫管理制度
- 中心行政管理制度
- 中藥煎制管理制度
- 中藥規(guī)章管理制度
- 中鐵置業(yè)管理制度
- 豐田職工管理制度
- 臨時(shí)出差管理制度
- 臨時(shí)機(jī)庫管理制度
- 樂器社團(tuán)管理制度
- 2023年貴州省糧食儲(chǔ)備集團(tuán)有限公司面向社會(huì)公開招聘工作人員15人筆試參考題庫附帶答案詳解
- 痘痘專業(yè)知識(shí)課件圖
- 超星爾雅學(xué)習(xí)通《國家安全教育(中國人民公安大學(xué))》2025章節(jié)測(cè)試附答案
- 艾梅乙防治知識(shí)培訓(xùn)課件
- 胸腔穿刺術(shù)護(hù)理查房
- 全過程咨詢項(xiàng)目管理
- 2024年廣東省廣州市白云山風(fēng)景名勝區(qū)管理局分支機(jī)構(gòu)第一次公開招聘考試真題及答案
- DB65T 8020-2024 房屋建筑與市政基礎(chǔ)設(shè)施工程施工現(xiàn)場(chǎng)從業(yè)人員配備標(biāo)準(zhǔn)
- 2024年江西省水利投資集團(tuán)有限公司招聘考試真題
- 2024年貴州省普通高校招生信息表(普通類本科批-物理組合)
- 2025年個(gè)人與企業(yè)投資合同模板
評(píng)論
0/150
提交評(píng)論