05transcad60教程文本培訓(xùn)_第1頁(yè)
05transcad60教程文本培訓(xùn)_第2頁(yè)
05transcad60教程文本培訓(xùn)_第3頁(yè)
05transcad60教程文本培訓(xùn)_第4頁(yè)
05transcad60教程文本培訓(xùn)_第5頁(yè)
已閱讀5頁(yè),還剩141頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、GISDK操作入門(mén)2014年4月中國(guó)上海高等第1頁(yè)2014/4/16GISDK入門(mén)1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)中國(guó)上海高等第2頁(yè)2014/4/161 GISDK概述什么是GISDK?地理信息系統(tǒng)二次開(kāi)發(fā)工具包,GISDK(Geographic Information System Developers Kit)含有所有用來(lái)增強(qiáng)和自定義TransCAD功能的所有工具GISDK包括兩部分: Caliper Script(TM)編程語(yǔ)言,是GISDK的基礎(chǔ)和核心,其主要用途是和TransCAD進(jìn)行交互交流 交互開(kāi)發(fā)工具,用來(lái)編譯和測(cè)試

2、程序通過(guò)Caliper Script編程語(yǔ)言,或其他編程語(yǔ)言通過(guò)自動(dòng)對(duì)嵌入技術(shù)(OLE)調(diào)用TrsnCAD平臺(tái)中的函數(shù)象中國(guó)上海高等第3頁(yè)2014/4/161 GISDK概述Caliper Script強(qiáng)大的宏編程語(yǔ)言,用于創(chuàng)建GISDK源代碼Caliper Script 提供有600多個(gè)庫(kù)函數(shù),包括地圖和其他窗口的GIS函數(shù),和完整的空間數(shù)據(jù)和屬性數(shù)據(jù)操作、函數(shù)Caliper Script 可以生成和操作表格、地圖、地圖元素、窗口、專題、選擇集等對(duì)象,及工具箱、菜單等用戶接口項(xiàng)目框、工具條、可TransCAD平臺(tái)中提供的1000多個(gè)的功能函數(shù)可以通過(guò)文本編輯器創(chuàng)建、編輯及顯示中國(guó)上海高等第4

3、頁(yè)2014/4/161 GISDK概述什么是GISDK?嵌入程序(add-ins),可以擴(kuò)展TransCAD 的功能或者自動(dòng)重復(fù)操作自定義應(yīng)用程序(Custom application),用于擴(kuò)展或者替代標(biāo)準(zhǔn)用戶界面,進(jìn)行自定義功能和操作服務(wù)程序,以Automation Server方式TransCAD ,以在您的應(yīng)用程序上添加制圖和交通分析功能通過(guò).NET方法通過(guò).COM組件TransCADTransCAD以批處理模式使用矩陣動(dòng)態(tài)連接庫(kù)中國(guó)上海高等第5頁(yè)2014/4/161 GISDK概述嵌入程序介紹增加標(biāo)準(zhǔn)的用戶界面提供框,用戶可以進(jìn)行選擇和選項(xiàng)設(shè)置操作自定義工具箱,通過(guò)按鍵事先定義好的程

4、序模塊中國(guó)上海高等第6頁(yè)2014/4/161 GISDK概述自定義應(yīng)用程序介紹用戶可以利用GISDK編寫(xiě)具有自定義的界面的GIS和應(yīng)用程序用戶自行定義菜單、工具條、工具箱及框,自行設(shè)計(jì)程序功能用戶可以利用TransCAD的交通功能模塊,自行設(shè)計(jì)程序功能這類用戶程序能很好地滿足不同用戶對(duì)應(yīng)用程序的環(huán)境、界面、接口、功能等的要求用戶可以為GISDK用戶程序生成圖標(biāo)并加入到系統(tǒng)菜單中,使他們能跟其他Windows軟件一樣地執(zhí)行中國(guó)上海高等第7頁(yè)2014/4/161 GISDK概述服務(wù)程序服務(wù)程序是一種能為用戶程序提供數(shù)據(jù)、地圖和地理分析 功能的GISDK應(yīng)用程序可以用Visual basic、Vis

5、ual C,C+,或其他語(yǔ)言(包括其他軟件如Excel等所帶的Macro語(yǔ)言)編寫(xiě)用戶程序TransCAD在運(yùn)行,為客戶程序提供服務(wù)利用Windows剪貼板或metafile或OLE對(duì)象,服務(wù)程序向客 戶程序傳送地圖,或利用DDE及磁盤(pán)文件傳送數(shù)據(jù)中國(guó)上海高等第8頁(yè)2014/4/161 GISDK概述服務(wù)程序GISDK關(guān)宏程序您從別的編程語(yǔ)言寫(xiě)的其他應(yīng)用程序中調(diào)用制圖函數(shù)和有可以用TransCAD提供的 .NET Classes,從任何 .NET語(yǔ)言寫(xiě)的桌面應(yīng)用程序(Windows Form)中使用GISDK開(kāi)發(fā)環(huán)境也可以通過(guò)COM接口從其他應(yīng)用程序中調(diào)用GISDK提供的函數(shù)和宏程 序中國(guó)上海

6、高等第9頁(yè)2014/4/161 GISDK概述Batch Mode介紹TransCAD標(biāo)準(zhǔn)版可以提供用于以及物流程序的批處理模式和運(yùn)行程序您可以自定義結(jié)果編碼,以滿足您的需求中國(guó)上海高等第10頁(yè)2014/4/161 GISDK概述Matrix DLLs介紹兩個(gè)動(dòng)態(tài)連接庫(kù)( DLLs )可以讓你通過(guò)TransCAD矩陣您可以通過(guò)C, C+,FORTRAN和JAVA語(yǔ)言的程序讀寫(xiě)已有的矩陣的程序中國(guó)上海高等第11頁(yè)2014/4/16GISDK入門(mén)1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)中國(guó)上海高等第12頁(yè)2014/4/162快速啟動(dòng):GISDK

7、示例如果您沒(méi)有打開(kāi)TransCAD,請(qǐng)打開(kāi)選擇Tools-Add Ins ,顯示Add-Ins框在Add-Ins菜單中,突出顯示GISDK工具點(diǎn)擊OK。 TransCAD彈出GISDK工具箱中國(guó)上海高等第13頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程1:地點(diǎn)搜索的宏程序及程序測(cè)試課程1的宏程序,可以搜索最近的點(diǎn),并計(jì)算出它們?cè)诰W(wǎng)絡(luò)上的距離在后面用戶界面的開(kāi)發(fā)中,還會(huì)可以繼續(xù)調(diào)用這個(gè)宏通過(guò)編寫(xiě)的宏,可以創(chuàng)建重復(fù)使用的宏功能庫(kù)中國(guó)上海高等第14頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程1:地點(diǎn)搜索的宏程序及程序測(cè)試應(yīng)用文本編輯器,打開(kāi)并練習(xí)GISDKSAMPLES文件夾 中的LES

8、SON1.RSC文件切換到TransCAD程序, 打開(kāi)GISDK工具箱點(diǎn)擊GISDK工具箱中的,以顯示編譯文件框從GISDKSAMPLES文件夾中,選擇名為L(zhǎng)ESSON1.RSC的文件,點(diǎn)擊打開(kāi),GISDK開(kāi)始編譯文件中國(guó)上海高等第15頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程1:地點(diǎn)搜索的宏程序及程序測(cè)試選擇File-Open 或點(diǎn)擊工具欄中的,選擇Map為文件類型,打開(kāi)GISDKSAMPLES文件夾中的LESSONS.MAP點(diǎn)擊GISDK工具箱中的,彈出測(cè)試Add-In框,在Type of Add-In列表中點(diǎn)擊Macro,并在名稱文本框中鍵入 “l(fā)esson1”點(diǎn)擊,TransC

9、AD 查找在英里范圍內(nèi)的點(diǎn)的位置,并彈出含有一列相應(yīng)數(shù)據(jù)的內(nèi)。框,距離在前地圖Click OK. TransCAD closes the dialog box.點(diǎn)擊,TransCAD 關(guān)閉框中國(guó)上海高等第16頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程:添具箱課程2為用戶提供工具箱,用戶通過(guò)點(diǎn)擊地圖獲取點(diǎn)的坐標(biāo)工具箱是一個(gè)總顯示在屏幕最前端的交互式對(duì)地圖進(jìn)行操作的工具框,它含有可以讓用戶在調(diào)用工具箱,調(diào)用了課程1中開(kāi)發(fā)的獲取最近點(diǎn)的宏函數(shù)有意地在29行顯示GISDK碰到語(yǔ)法錯(cuò)誤在編譯過(guò)程中,排版時(shí)發(fā)生的情況中國(guó)上海高等第17頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程:添具箱轉(zhuǎn)換到

10、文本編輯器,打開(kāi)并檢查GISDKSAMPLES文件夾中的LESSON2.RSC文件轉(zhuǎn)換到TransCAD,點(diǎn)擊GISDK 工具箱的框,彈出編譯文件選擇GISDKSAMPLES文件夾中的LESSON2.RSC文件并點(diǎn)擊打 開(kāi), GISDK 編譯文件。當(dāng)GISDK編譯器遇到語(yǔ)法錯(cuò)誤時(shí),將會(huì)創(chuàng)建錯(cuò)誤,列出錯(cuò)誤中國(guó)上海高等第18頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程:添具箱再轉(zhuǎn)換到文本編輯器,去除29行中的閉括號(hào),并保存修改后的文件再轉(zhuǎn)換到TransCAD程序點(diǎn)擊GISDK 工具箱的,彈出編譯文件框選擇LESSON2.RSC 文件并點(diǎn)擊打開(kāi)。這時(shí), GISDK 將順利地編譯文件中國(guó)上海高等

11、第19頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程:添具箱點(diǎn)擊Lessons map ,使其為已激活的窗口點(diǎn)擊GISDK 工具箱,彈出測(cè)試Add-In框。在Type of Add-In中選中Macro,并在名稱文本框中鍵入“l(fā)esson2”點(diǎn)擊OK, add-in 開(kāi)始運(yùn)行并在屏幕中間顯示“Get Best Route” 工具箱點(diǎn)擊在地圖上點(diǎn)擊工具,然后點(diǎn)擊某地點(diǎn)5英里內(nèi)的地圖。 add-in將顯示一排最近點(diǎn)的相關(guān)數(shù)據(jù)將搜索距離改為1英里,點(diǎn)擊任意地點(diǎn)1英里外地方,add-in將顯示 “沒(méi)有點(diǎn)”的信息報(bào)告。關(guān)閉工具箱中國(guó)上海高等第20頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程3:

12、添加框點(diǎn)擊GISDK 工具箱的,彈出測(cè)試Add-In框,在Type ofAdd-In 中選中Macro ,并在名稱文本框中輸入“l(fā)esson3”點(diǎn)擊OK。 add-in 開(kāi)始運(yùn)行,并在屏幕中間彈出“獲取最優(yōu)路線”框在點(diǎn)擊地圖工具中點(diǎn)擊,然后在某個(gè)地點(diǎn)5英里內(nèi)點(diǎn)擊地圖。此時(shí), add-in 彈出一個(gè)帶有有滾動(dòng)列表的框選擇一個(gè)地點(diǎn)后點(diǎn)擊OK。 add-in 刷新地圖,縮放地圖以顯示您已點(diǎn)中的點(diǎn)和已選擇的城市。關(guān)閉工具箱中國(guó)上海高等第21頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程4:從菜單中工具箱工具箱,相面將通過(guò)在上面我們通過(guò)宏測(cè)試來(lái)TransCAD 菜單欄中添加菜單,來(lái)直接將源代碼保存在

13、序中的文件中,并將他們編譯到一個(gè)程另外一個(gè)文件LESSON4.LST,包含有要編譯的源代碼文件的列表中國(guó)上海高等第22頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程4:從菜單中工具箱文本編輯器打開(kāi)并練習(xí)GISDKSAMPLES文件夾中的LESSON4.RSC和LESSON4.LST文件在TransCAD中,點(diǎn)擊GISDK 工具箱的,彈出編譯文件框選擇GISDKSAMPLES文件夾中的LESSON4.LST文件, 點(diǎn)擊打開(kāi)。 GISDK 將開(kāi)始把所列的兩個(gè)文件編譯為單一的程序點(diǎn)擊Lessons 地圖,確認(rèn)其為激活的窗口中國(guó)上海高等第23頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程4:從

14、菜單中工具箱,彈出測(cè)試Add-In點(diǎn)擊GISDK 工具箱的框在名稱文本框中輸入“l(fā)esson4”點(diǎn)擊OK。Lesson 菜單將添加到菜單欄中,同時(shí)它有一個(gè)命令:獲取最優(yōu)路線選擇Lesson-Get Best Route, add-in 彈出在課程2創(chuàng)建的工具箱。這時(shí),您就可以像以前一樣使用工具箱了。至此,完成了add-in中國(guó)上海高等第24頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程5:安裝Add-in要使TransCAD 用戶可以應(yīng)用GISDK 程序,必須把源文件編譯為一個(gè)以不同的名稱命名的、單機(jī)可使用的UI數(shù)據(jù)庫(kù),并這樣,TransCAD的其他用戶就可以使用 UI數(shù)據(jù)庫(kù)用戶需要用Ad

15、d-Ins框中的Setup選項(xiàng),安裝add-in或用戶程序中國(guó)上海高等第25頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程5:安裝Add-in點(diǎn)擊GISDK 工具箱中的框,彈出UI 數(shù)據(jù)庫(kù)編譯選擇GISDKSAMPLES 文件夾中的LESSON4.LST 文件,點(diǎn)擊打開(kāi),彈出另存為框選擇含有TransCAD 程序文件的文件夾,鍵入“l(fā)esson4” 作為UI數(shù)據(jù)庫(kù)的名稱,點(diǎn)擊保存。 GISDK 將把文件編譯為課程4的UI數(shù)據(jù)庫(kù)中國(guó)上海高等第26頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程5:安裝Add-in選擇Tools-Add Ins ,彈出Add-Ins框點(diǎn)擊Setup,彈出安裝

16、 Add-Ins框點(diǎn)擊添加,創(chuàng)建新的add-in。默認(rèn)的描述為“UntitledAdd-in”,調(diào)用的宏默認(rèn)名稱為“Untitled”在單選列表中點(diǎn)擊Macro在Description 文本框中輸入“Get Best Route”中國(guó)上海高等第27頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程5:安裝Add-in在Name 文本框中鍵入“l(fā)esson4”在UI Database 鍵入“l(fā)esson4”點(diǎn)擊OK,安裝add-in ,之后返回Add-Ins框點(diǎn)擊取消, TransCAD 關(guān)閉Add-Ins框中國(guó)上海高等第28頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程5:安裝Add-in

17、,運(yùn)行安裝后的Add-in選擇Tools-Add Ins ,彈出Add-Ins框突出列表中的Get Best Route點(diǎn)擊OK, TransCAD 運(yùn)行add-in中國(guó)上海高等第29頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程6:創(chuàng)建用戶程序方便快速地啟動(dòng)含有用戶程序的TransCAD的方法, 就是創(chuàng)建用戶程序圖標(biāo)有兩種用戶程序,一種是完全用戶化的用戶界面,另 外一種是添加的標(biāo)準(zhǔn)界面既然您已經(jīng)將add-in 添加到了標(biāo)準(zhǔn)界面中,你可以再創(chuàng)建一個(gè)用戶程序圖標(biāo),這樣用戶就不需要做其他專 門(mén)的工作,就能夠啟動(dòng)add-in中國(guó)上海高等第30頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程6:

18、開(kāi)始創(chuàng)建用戶程序圖標(biāo)TransCAD關(guān)閉您的文本編輯器通過(guò)按住Ctrl 鍵的同時(shí),拖動(dòng)圖標(biāo)到新的地方,或者通過(guò)復(fù)制粘貼圖標(biāo),把TransCAD 程序圖標(biāo)到桌面上右擊新的程序圖標(biāo),選擇Properties,彈出屬性框點(diǎn)擊基本設(shè)置( General )項(xiàng),在編輯框中鍵入“TransCAD with Get Best Route”中國(guó)上海高等第31頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程6:完成創(chuàng)建用戶程序圖標(biāo)點(diǎn)擊Shortcut 項(xiàng),在目標(biāo)編輯框中輸入以下文字:-q -a lesson4 -ai lesson4 -n "TransCAD with Get Best Route“

19、-q選項(xiàng)為關(guān)閉TransCAD快速啟動(dòng)框, -a為備用UI數(shù)據(jù)庫(kù)后的名稱, -ai為宏啟動(dòng)名,而-n為程序窗口的新名稱點(diǎn)擊OK,關(guān)閉屬性框雙擊新程序圖標(biāo), TransCAD 就像用戶程序一樣,啟動(dòng)add-in中國(guó)上海高等第32頁(yè)2014/4/162快速啟動(dòng):GISDK示例課程6:有關(guān)用戶程序的信息如果在課程4已經(jīng)創(chuàng)建了完全用戶化的用戶界面,您可 以不用標(biāo)準(zhǔn)界面,而用-u 和-i選項(xiàng)或者您的用戶程序,就可以啟動(dòng)TransCAD用戶程序可以容易地?cái)U(kuò)展TransCAD功能您也可以使某些特殊用戶或者用途的界面簡(jiǎn)單化,比 如運(yùn)行交通需求模型的簡(jiǎn)單化環(huán)境,這種環(huán)境可以用 批處理工具生成中國(guó)上海高等第33頁(yè)

20、2014/4/16GISDK入門(mén)1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)中國(guó)上海高等第34頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ) 課程目標(biāo):學(xué)習(xí)如何用以下語(yǔ)言要素,編寫(xiě)Caliper Script 編程語(yǔ)言的說(shuō)明文件 Constants Variables Operators Keywords 用來(lái)編寫(xiě)說(shuō)明文件 Assignment Function call Flow control and comments常量變量運(yùn)算符關(guān)鍵字指派函數(shù)調(diào)用流程和注釋中國(guó)上海高等第35頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)語(yǔ)言要素語(yǔ)句,Calipe

21、r Script語(yǔ)句包含有4類的語(yǔ)言要素Constants Variables OperatorsKeywords常量變量運(yùn)算符關(guān)鍵字源文件,一組實(shí)現(xiàn)特定功能的語(yǔ)句中國(guó)上海高等第36頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)常量有數(shù)字:43, 257.941, 67.89E12字符串:"Hello", 'Goodbye'空:Null布爾數(shù)學(xué)體系的常量是一種特殊的數(shù)字常量,真1,否null或0在字符串常量中一些特殊字符,需要在其前端加上反斜線:"The next two words "have quotes" around the

22、m" 反斜線符號(hào): "c:windowssys.ini“中國(guó)上海高等第37頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量 名稱 以字母開(kāi)始,可以含有多個(gè)字母、數(shù)字以及下劃線 長(zhǎng)度任意:A_perfectly_good_name 區(qū)分大小寫(xiě):XY和xy是不一樣的類型由指派語(yǔ)句決定在用之前不需要特別在后續(xù)的指派說(shuō)明文件中,可以更改中國(guó)上海高等第38頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量保留字在Caliper Script 編程語(yǔ)言中有些關(guān)鍵字不能作為變量名,而且它們不區(qū)分大小寫(xiě)do ifFalse Return not nullRunMacro RunDbox True

23、中國(guó)上海高等第39頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量類型整型:在-2,147,482,648 到2,147,482,647之間的數(shù)實(shí)型:在+-3.4E-38到3.4E+38之間的雙精度浮點(diǎn)數(shù)字符串:盡管某些用途的字符串限制為1000個(gè)字符或者 但是實(shí)際上沒(méi)有最大的字符數(shù)限制數(shù)組:有很多要素,可以是一種混合型,中國(guó)上海高等第40頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量類型復(fù)合型:使程序的某些功能變得更簡(jiǎn)單的特殊對(duì)象布爾型:False (null or 0) or True (1)Null :空值;您可以使用TypeOf() ,查找變量類型中國(guó)上海高等第41頁(yè)2014/4/163

24、 GISDK語(yǔ)言基礎(chǔ)變量數(shù)組顯項(xiàng) 含有dim(維數(shù))的說(shuō)明文件: dim vars12, morevars10 將所有要素初始化為零隱項(xiàng) 使用括弧:short_list = "Point", "Line", "Area" 維數(shù)就是要素的數(shù)量您可以認(rèn)為數(shù)組是變量的一組箱子中國(guó)上海高等第42頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量數(shù)組可以是不同的類型mixedvars = 1, "Two", 3.0數(shù)組元素可以是數(shù)組dim two_lists2 two_lists1 = 1, 2, 3two_lists2 = &

25、quot;First", "Second", “Third”提取元素時(shí),需用方括號(hào)mixedvars3 is 3.0 two_lists21 is “First”中國(guó)上海高等第43頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量數(shù)組連接數(shù)組“+” x=1,2 y=3,4 z=x+y / z=1,2,3,4指派或者連接一個(gè)數(shù)組到另外一個(gè),并不是對(duì)數(shù)組進(jìn)行。相反CopyArray() 表示對(duì)數(shù)組的。數(shù)組名.length表示數(shù)組隊(duì)列長(zhǎng)度: ShowMessage(String(z.length) +' elements in z')可以在數(shù)組中應(yīng)用函數(shù)Su

26、barray(z, 2, 2) is 2, 3SortArray(), SaveArray(), LoadArray()中國(guó)上海高等第44頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量數(shù)組數(shù)組選項(xiàng)含有每一個(gè)子列的選項(xiàng) opts = "Color", ColorRGB(0,0,0), "Line Width", 4.5您可以使用點(diǎn)符號(hào)以某單一值進(jìn)行設(shè)置、獲取、添加和移除選項(xiàng) opts.Color=ColorRGB(255,0,0)/set value prev_wid=opts.Line Width /get value opts.Font="A

27、rial|12" /add option opts.Color=null/remove option您可以使用這些符號(hào)簡(jiǎn)易地以名稱屬性管理數(shù)據(jù)結(jié)構(gòu)中國(guó)上海高等第45頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)常量與變量的練習(xí)轉(zhuǎn)換到文本編輯器,打開(kāi)GISDKEXERCISE 文件夾中的源文件CONSTANTS AND VARIABLES.RSC檢查宏“Constants and Variables” ,查看將進(jìn)行哪些操作再轉(zhuǎn)換到TransCADShowMessage()或ShowArray()顯編譯并測(cè)試宏,框,點(diǎn)擊OK示的各個(gè)中國(guó)上海高等第46頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)

28、復(fù)合變量一種特殊的目標(biāo)對(duì)象,可以使某些函數(shù)更易編寫(xiě)很多函數(shù)需要以復(fù)合變量作為變量或者返回復(fù)合變量,或者兩者皆是每一個(gè)復(fù)合變量都由相應(yīng)的創(chuàng)建函數(shù)中國(guó)上海高等第47頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)復(fù)合變量坐標(biāo):在世界上的某方位,創(chuàng)建為Coord()顏色:某種顏色,創(chuàng)建為ColorRGB() 圓周:世上的圓形區(qū)域,創(chuàng)建為Circle()范圍:某一圖層或特性覆蓋的區(qū)域范圍,創(chuàng)建為Scope()填充類型:填充在地圖上某區(qū)域內(nèi)的圖案,創(chuàng)建為FillStyle()線型:地圖上的線條樣式,創(chuàng)建為L(zhǎng)ineStyle()中國(guó)上海高等第48頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)復(fù)合變量文檔處理:打開(kāi)文

29、件的相關(guān)關(guān)變量,用OpenFile()創(chuàng)建樣本點(diǎn):在地圖上顯示點(diǎn)的例子,用SamplePoint()創(chuàng)建 樣本線:在地圖上顯示線的例子,用SampleLine()創(chuàng)建樣本區(qū)域:在地圖上顯示區(qū)域的例子,用SampleArea() 創(chuàng)建中國(guó)上海高等第49頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)復(fù)合變量選擇器可以通過(guò)選擇器,取出或者修改復(fù)合變量的某些變量選擇器是一些緊隨變量名和周期的關(guān)鍵字您可以將選擇器應(yīng)用于數(shù)組元素和其他選擇器中國(guó)上海高等第50頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)復(fù)合變量選擇器坐標(biāo):經(jīng)度和緯度f(wàn)irstpoint.lon, xyarray3.lat顏色:紅,綠和藍(lán)areas

30、tyle.green圓周:半徑、圓心(不可設(shè)置)mycircle.center.lon范圍:中點(diǎn),寬度,長(zhǎng)度和旋轉(zhuǎn)度scopelist4.height中國(guó)上海高等第51頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)變量范圍除非特別說(shuō)明,變量作用范圍局限于某個(gè)宏或者框 靜態(tài)變量(Static):如局部變量,但是如果將它們以靜態(tài)說(shuō)明文件保留其值,下次使用GISDK 的宏或者框時(shí),仍然可以 共享變量(Shared):只要以共享說(shuō)明文件羅列出來(lái),可以應(yīng)用于所有宏或者框 全局變量(Global):可以應(yīng)用于所有宏或者在宏結(jié)束時(shí),局部變量將會(huì)失去其值框中國(guó)上海高等第52頁(yè)2014/4/163 GISDK語(yǔ)言基

31、礎(chǔ)復(fù)合變量和變量范圍的練習(xí)轉(zhuǎn)換您的文本編輯器,打開(kāi)GISDKEXERCISE文件夾源文件COMPOUND AND SCOPE.RSC檢查“Compound and Scope” 宏,查看進(jìn)行哪些操作再轉(zhuǎn)換到TransCAD中國(guó)上海高等第53頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)復(fù)合變量和變量范圍的練習(xí)打開(kāi)地圖文件,或者通過(guò)打開(kāi)地理文件創(chuàng)建新的地圖把COMPOUND AND SCOPE.RSC 編入U(xiǎn)I數(shù)據(jù)庫(kù),將其設(shè)置為新的add-in “Compound and Scope”選擇Tools-Add-Ins, 選擇下拉菜單中的add-in,點(diǎn)擊OK在顯示的地圖上拖動(dòng)一個(gè)矩形框,查看ShowM

32、essage()的各個(gè) 之后點(diǎn)擊OK框,中國(guó)上海高等第54頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)函數(shù)調(diào)用語(yǔ)法: return_value = FunctionName (Argument1, Argument2, .)函數(shù)名對(duì)不區(qū)分大小寫(xiě)并不是所有的函數(shù)都有自變量和返回值有些自變量可以忽略,以表示零、空值或者缺省值如果不只一個(gè)變量的話,必須要用逗號(hào)中國(guó)上海高等第55頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)函數(shù)調(diào)用有返回值的函數(shù)可以在表達(dá)式中應(yīng)用很多函數(shù)都有一個(gè)數(shù)組選項(xiàng)作為最后的自變量,每一個(gè)選項(xiàng)是子數(shù)組:第一元素:字符串形式的選項(xiàng)名稱第二元素:數(shù)組選項(xiàng)所需的數(shù)據(jù)中國(guó)上海高等第56頁(yè)201

33、4/4/163 GISDK語(yǔ)言基礎(chǔ)函數(shù)調(diào)用自變量的數(shù)量和表達(dá)式自變量可以為任意表達(dá)式,可以包括調(diào)用函數(shù)的返回值整型自變量必須獲取整型值實(shí)型自變量可以獲取實(shí)型或整型值中國(guó)上海高等第57頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)函數(shù)調(diào)用表達(dá)式表達(dá)式是一個(gè)含用常量、變量、運(yùn)算符以及函數(shù)調(diào)用的組合公式當(dāng)運(yùn)行表達(dá)式的時(shí)候,只能生成單一值表達(dá)式運(yùn)算符算術(shù)符:將整型與實(shí)型表達(dá)式組合起來(lái)相關(guān)性:返回真或假邏輯性:使用布爾型的操作數(shù),返回真或假 字符和隊(duì)列運(yùn)算符:+,用于串聯(lián)中國(guó)上海高等第58頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)算術(shù)運(yùn)算符示例+ : 加- : 減或負(fù)* : 乘/ : 浮點(diǎn)數(shù)相除如果運(yùn)算結(jié)果

34、為整型,則表達(dá)式也為整型,否則表達(dá) 式為實(shí)型中國(guó)上海高等第59頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)運(yùn)算符相等運(yùn)算符eq or = : 相等或指派ne or <> : 不相等可以用于整型、實(shí)型、字符串型,以及其他表達(dá)式,比如顏 色關(guān)聯(lián)對(duì)比運(yùn)算符gt or > : 大于lt or < : 小于ge or >= : 大于等于le or <= : 小于等于只能用于整型、實(shí)型、字符串型表達(dá)式中國(guó)上海高等第60頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)運(yùn)算符Between.and. :大于等于第一個(gè)表達(dá)式,并小于等于第二個(gè)表達(dá)式Like * 或? :字符串相等,和

35、通配符*與?相當(dāng)Contains:包含字符序列后兩個(gè)只能用于字符串表達(dá)式您可以在以下情況使用Not Not between.and. : opposite of between不在其間不相等的 Not like : opposite of like中國(guó)上海高等第61頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)運(yùn)算符&, && 或AND :邏輯與| 或OR :邏輯或! 或NOT:非邏輯運(yùn)算符對(duì)不區(qū)分大小寫(xiě)AND計(jì)算兩個(gè)操作數(shù),以查看表達(dá)式為真或?yàn)榧僦袊?guó)上海高等第62頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)運(yùn)算符運(yùn)算符優(yōu)先級(jí)1: 圓括號(hào)(內(nèi)到外)2: 乘,除,負(fù)3: 加、減

36、4: 比較(關(guān)聯(lián)運(yùn)算符)5: 非(邏輯運(yùn)算符)6: 與(邏輯運(yùn)算符)7: 或(邏輯運(yùn)算符)在運(yùn)算符優(yōu)先級(jí)相同時(shí),從左到右運(yùn)算中國(guó)上海高等第63頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)函數(shù)與表達(dá)式練習(xí)轉(zhuǎn)換到您的文本編輯器,打開(kāi)GISDKEXERCISE文件夾的源文件FUNCTIONS AND EXPRESSIONS.RSC檢查宏“Functions and Expressions” ,查看進(jìn)行哪些操作再轉(zhuǎn)換到TransCAD編譯并測(cè)試宏,查看ShowMessage()的各框后,點(diǎn)擊OK中國(guó)上海高等第64頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)語(yǔ)句將表達(dá)式與關(guān)鍵字起來(lái)可以在一行添加多個(gè)語(yǔ)句一個(gè)

37、語(yǔ)句也可以占用多行示例:Comments Assignment statements Function callsGoto statementsIf, For and While statements Return() function注釋指派語(yǔ)句函數(shù)調(diào)用Goto語(yǔ)句If, For和While語(yǔ)句Return()函數(shù)中國(guó)上海高等第65頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)注釋可以開(kāi)始于任何地方某行雙斜線(“/”)后的部分就是注釋x = 1 / This is a commenty = x _ / Comments in a multi-+ 100 / line statement/* 可以

38、用來(lái)中斷注釋文本,并以*/ 結(jié)束中斷中國(guó)上海高等第66頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)指派語(yǔ)句對(duì)變量或數(shù)組元素賦值可以用指派語(yǔ)句stop = start + 100 array2 = 'Caliper'可以用來(lái)對(duì)選擇器進(jìn)行賦值mycolor.red = 25000中國(guó)上海高等第67頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)函數(shù)調(diào)用語(yǔ)句By themselves are statements本身就是一種說(shuō)明If a function returns a value that is not assigned to a variable, the returned valu

39、e is ignored如果函數(shù)返回的值不是變量的賦值,則返回值可忽略CenterMap(, newcenter)color15 = ColorRGB(34567, 0, 23631)中國(guó)上海高等第68頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)Goto語(yǔ)句在同一個(gè)宏中,以表示將某操作轉(zhuǎn)換到另外一個(gè)地方可以緊跟任意字母序列、數(shù)字和下劃線,以及只跟隨目的文件的冒號(hào)if GetMaps() = null then goto skip map_list = GetMapNames()skip:中國(guó)上海高等第69頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)If語(yǔ)句如果表達(dá)式為真,執(zhí)行一個(gè)或者一組語(yǔ)句如果表

40、達(dá)式為假能夠執(zhí)行一個(gè)或者一組語(yǔ)句時(shí),也可以用Else子 句如果是一組語(yǔ)句,可以附上Do 和End子句if x>100 then do x=1y=y+1 end中國(guó)上海高等第70頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)If語(yǔ)句使用形式if expression then <statements> if expression thendo <statements> endif expression then <statements> else <statements>if expression thendo <statements>

41、; end else <statements>if expression then<statements> else do <statements> endif expression thendo <statements> endelse do <statements> end中國(guó)上海高等第71頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)For語(yǔ)句創(chuàng)建基于某計(jì)數(shù)變量的循環(huán)For variable = start_value to finish_value step step_sizedo <statements> endst

42、art_value, finish_value 和step_size必須為數(shù)值variable超過(guò)finish_value的制后,結(jié)束循環(huán)如果start_value 大于finish_value,循環(huán)結(jié)束,除非step_size為負(fù)值中國(guó)上海高等第72頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)For語(yǔ)句示例for i=1 to 100 doxyi= xi*2 endfor j=2 to site_count step 2 do RunMacro(“Select Sites”, j) endfor k=500 to 0 step -50 do RunDbox(“Countdown”, k)end

43、中國(guó)上海高等第73頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)While語(yǔ)句基于某條件開(kāi)始循環(huán)While expressiondo <statements> end當(dāng)布爾型值為False,或者循環(huán)回到第一次循環(huán),循環(huán)結(jié)束 示例:while not FileAtEOF(file_handle) do RunMacro("Get Next Record", file_handle) end中國(guó)上海高等第74頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)Return 函數(shù)停止對(duì)宏或框的操作后,返回某一個(gè)值或者零Return(expression), or Return()框

44、,比如OK或者在框中,只用于關(guān)閉整個(gè)Cancel 鍵示例:Return(“Done”) Return(x*1.414)中國(guó)上海高等第75頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)錯(cuò)誤程序運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤以信息報(bào)告形式顯示:發(fā)生錯(cuò)誤的源文件名稱檢測(cè)到錯(cuò)誤發(fā)生的行數(shù)九種錯(cuò)誤類型的代碼用戶進(jìn)行錯(cuò)誤的語(yǔ)句on exception goto labelon exception default / Cancels error handler on exception do <statements> goto label end on exception do < statements &

45、gt; Return() end中國(guó)上海高等第76頁(yè)2014/4/163 GISDK語(yǔ)言基礎(chǔ)語(yǔ)句和錯(cuò)誤練習(xí)轉(zhuǎn)換到文本編輯器,打開(kāi)GISDKEXERCISE文件夾的源 文件STATEMENTS AND ERRORS.RSC檢查宏“Statements and Errors” ,查看進(jìn)行哪些的操作再轉(zhuǎn)換到TransCAD編譯并測(cè)試宏,查看ShowMessage()顯示的各擊OK框后點(diǎn)中國(guó)上海高等第77頁(yè)2014/4/16GISDK入門(mén)1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)中國(guó)上海高等第78頁(yè)2014/4/164 源文件源文件用五種類型的創(chuàng)建源

46、文件是嵌入程序和自定義應(yīng)用程序的語(yǔ)言模塊,五種GISDK宏框工具欄工具箱菜單:主要是GISDK 宏和框框工具欄和工具箱是特殊的中國(guó)上海高等第79頁(yè)2014/4/164 源文件的類型GISDK宏:像其它程序語(yǔ)言的子程序框:確定框里的項(xiàng)以及它們的作用工具箱:始終在屏幕前端的doesnt take over the application框,不能連接到程序工具欄:在菜單欄下方的水平帶狀菜單:確定菜單或者子菜單框中國(guó)上海高等第80頁(yè)2014/4/164 源文件源文件編碼設(shè)計(jì)文本格式關(guān)鍵字和函數(shù)名不區(qū)分大小寫(xiě),函數(shù)名大寫(xiě)只是為了方便兩斜線(/)表示某行的余下部分為注釋一個(gè)源文件中可以有很多源中國(guó)上海高等

47、第81頁(yè)2014/4/164 源文件GISDK的宏含有一系列Caliper Script 編程語(yǔ)言的說(shuō)明執(zhí)行時(shí): 用戶選擇某菜單項(xiàng)或者點(diǎn)擊工具欄的某按鈕 由RunMacro() 函數(shù)調(diào)用宏GISDK包含有特殊的初始宏,可以內(nèi)含于框的源中中國(guó)上海高等第82頁(yè)2014/4/164 源文件GISDK宏結(jié)構(gòu)Macro "macroname" (argument1, argument2)<statements go here> endMacro宏名稱區(qū)分大小寫(xiě),可以是任何字母、數(shù)字以及空格的組合中國(guó)上海高等第83頁(yè)2014/4/164 源文件GISDK宏變量宏函數(shù)中最多可

48、以有八個(gè)可選擇的變量: 多余的變量被忽略的變量可以初始化為空值宏調(diào)用后,變量不可更改,除非: 變量是數(shù)組 變量通過(guò)前綴“&”進(jìn)行傳遞GISDK 宏可以通過(guò)共享變量或全局變量, 傳遞值中國(guó)上海高等第84頁(yè)2014/4/164 源文件GISDK宏返回值任何類型的單一值,包括數(shù)組,都可以通過(guò)Return() 函數(shù)返回如果宏以無(wú)返回值結(jié)束,那么它將返回null中國(guó)上海高等第85頁(yè)2014/4/164 源文件練習(xí)編寫(xiě)、編譯并測(cè)試一個(gè)宏: 設(shè)置x = 2 調(diào)用第二個(gè)宏,以x為自變量 通過(guò)ShowMessage() 和String() 輸出返回值第二個(gè)宏:變量相乘以Return() 函數(shù)返回結(jié)果中國(guó)上海高等第86頁(yè)2014/4/164 源文件框含有用戶交互式使用的執(zhí)行時(shí):器,以及表示程序邏輯性的宏用戶選擇某菜單項(xiàng)或者點(diǎn)擊工

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論