




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作入門中國(guó)新一代交通上海高等研究中心2013年4月1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)什么是GISDK?地理信息系統(tǒng)二次開發(fā)工具包,GISDK(Geographic Information System Developers Kit)含有所有用來(lái)增強(qiáng)和自定義TransCAD功能的所有工具GISDK包括兩部分:Caliper Script(TM)編程語(yǔ)言,是GISDK的基礎(chǔ)和核心,其主要用途是和TransCAD進(jìn)行交互交流交互開發(fā)工具,用來(lái)編譯和測(cè)試程序通過(guò)Caliper Script編程語(yǔ)言,或其他編程語(yǔ)言通過(guò)自動(dòng)對(duì)象嵌入技術(shù)(OLE
2、)調(diào)用TrsnCAD平臺(tái)中的函數(shù)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)建、編輯及顯示什么是GISDK?嵌入程序(add-ins),可以擴(kuò)展TransCAD 的功能或者自動(dòng)重復(fù)操作自定義應(yīng)用程序(Custom application),用于擴(kuò)展
3、或者替代標(biāo)準(zhǔn)用戶界面,進(jìn)行自定義功能和操作服務(wù)程序,以Automation Server方式TransCAD ,以在您的應(yīng)用程序上添加制圖和交通分析功能 通過(guò).NET方法 通過(guò).COM組件TransCADTransCAD以批處理模式使用矩陣動(dòng)態(tài)連接庫(kù)嵌入程序介紹增加標(biāo)準(zhǔn)的用戶界面提供框,用戶可以進(jìn)行選擇和選項(xiàng)設(shè)置操作自定義工具箱,通過(guò)按鍵事先定義好的程序模塊自定義應(yīng)用程序介紹用戶可以利用GISDK編寫具有自定義的界面的GIS和應(yīng)用程序用戶自行定義菜單、工具條、工具箱及框,自行設(shè)計(jì)程序功能用戶可以利用TransCAD的交通功能模塊,自行設(shè)計(jì)程序功能這類用戶程序能很好地滿足不同用戶對(duì)應(yīng)用程序的環(huán)境
4、、界面、接口、功能等的要求用戶可以為GISDK用戶程序生成圖標(biāo)并加入到系統(tǒng)菜單中,使他們能跟其他Windows軟件一樣地執(zhí)行服務(wù)程序服務(wù)程序是一種能為用戶程序提供數(shù)據(jù)、地圖和地理分析功能的GISDK應(yīng)用程序可以用Visual basic、Visual C,C+,或其他語(yǔ)言(包括其他軟件如Excel等所帶的Macro語(yǔ)言)編寫用戶程序TransCAD在運(yùn)行,為客戶程序提供服務(wù)利用Windows剪貼板或metafile或OLE對(duì)象,服務(wù)程序向客戶程序傳送地圖,或利用DDE及磁盤文件傳送數(shù)據(jù)服務(wù)程序GISDK關(guān)宏程序您從別的編程語(yǔ)言寫的其他應(yīng)用程序中調(diào)用制圖函數(shù)和有可以用TransCAD提供的 .N
5、ET Classes,從任何 .NET語(yǔ)言寫的桌面應(yīng)用程序(Windows Form)中使用GISDK開發(fā)環(huán)境也可以通過(guò)COM接口從其他應(yīng)用程序中調(diào)用GISDK提供的函數(shù)和宏程序Batch Mode介紹TransCAD標(biāo)準(zhǔn)版可以提供用于以及物流程序的批處理模式和運(yùn)行程序您可以自定義結(jié)果編碼,以滿足您的需求Matrix DLLs介紹兩個(gè)動(dòng)態(tài)連接庫(kù)( DLLs )可以讓你通過(guò)TransCAD矩陣您可以通過(guò)C, C+,FORTRAN和JAVA語(yǔ)言的程序讀寫已有的矩陣的程序1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)如果您沒有打開TransCAD,請(qǐng)打
6、開選擇Tools-Add Ins ,顯示Add-Ins框在Add-Ins菜單中,突出顯示GISDK工具點(diǎn)擊OK。 TransCAD彈出GISDK工具箱課程1:地點(diǎn)搜索的宏程序及程序測(cè)試課程1的宏程序,可以搜索最近的點(diǎn),并計(jì)算出它們?cè)诰W(wǎng)絡(luò)上的距離在后面用戶界面的開發(fā)中,還會(huì)可以繼續(xù)調(diào)用這個(gè)宏通過(guò)編寫的宏,可以創(chuàng)建重復(fù)使用的宏功能庫(kù)課程1:地點(diǎn)搜索的宏程序及程序測(cè)試應(yīng)用文本編輯器,打開并練習(xí)GISDKSAMPLES文件夾中的LESSON1.RSC文件切換到TransCAD程序, 打開GISDK工具箱點(diǎn)擊GISDK工具箱中的,以顯示編譯文件框從GISDKSAMPLES文件夾中,選擇名為L(zhǎng)ESSON1
7、.RSC的文件,點(diǎn)擊打開,GISDK開始編譯文件課程1:地點(diǎn)搜索的宏程序及程序測(cè)試選擇File-Open 或點(diǎn)擊工具欄中的,選擇Map為文件類型,打開GISDKSAMPLES文件夾中的LESSONS.MAP點(diǎn)擊GISDK工具箱中的,彈出測(cè)試Add-In框,在Type of Add-In列表中點(diǎn)擊Macro,并在名稱文本框中鍵入 “l(fā)esson1”點(diǎn)擊,TransCAD 查找在英里范圍內(nèi)的點(diǎn)的位置,并彈出含有一列相應(yīng)數(shù)據(jù)的內(nèi)。框,距離在前地圖Click OK. TransCAD closes the dialog box.點(diǎn)擊,TransCAD 關(guān)閉框課程:添具箱課程2為用戶提供工具箱,用戶通過(guò)
8、點(diǎn)擊地圖獲取點(diǎn)的坐標(biāo)工具箱是一個(gè)總顯示在屏幕最前端的交互式對(duì)地圖進(jìn)行操作的工具框,它含有可以讓用戶在調(diào)用工具箱,調(diào)用了課程1中開發(fā)的獲取最近點(diǎn)的宏函數(shù)在編譯過(guò)程中,排版時(shí)發(fā)生的情況有意地在29行顯示GISDK碰到語(yǔ)法錯(cuò)誤課程:添具箱轉(zhuǎn)換到文本編輯器,打開并檢查GISDKSAMPLES文件夾中的LESSON2.RSC文件轉(zhuǎn)換到TransCAD,點(diǎn)擊GISDK 工具箱的框,彈出編譯文件選擇GISDKSAMPLES文件夾中的LESSON2.RSC文件并點(diǎn)擊打 開, GISDK 編譯文件。當(dāng)GISDK編譯器遇到語(yǔ)法錯(cuò)誤時(shí),將會(huì)創(chuàng)建錯(cuò)誤,列出錯(cuò)誤課程:添具箱再轉(zhuǎn)換到文本編輯器,去除29行中的閉括號(hào),并保
9、存修改后的文件再轉(zhuǎn)換到TransCAD程序點(diǎn)擊GISDK 工具箱的,彈出編譯文件框選擇LESSON2.RSC 文件并點(diǎn)擊打開。這時(shí), GISDK 將順利地編譯文件課程:添具箱點(diǎn)擊Lessons map ,使其為已激活的窗口點(diǎn)擊GISDK 工具箱,彈出測(cè)試Add-In框。在Type of Add-In中選中Macro,并在名稱文本框中鍵入“l(fā)esson2”點(diǎn)擊OK, add-in 開始運(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將
10、顯示 “沒有點(diǎn)”的信息報(bào)告。關(guān)閉工具箱課程3:添加框點(diǎn)擊GISDK 工具箱的,彈出測(cè)試Add-In框,在Type ofAdd-In 中選中Macro ,并在名稱文本框中輸入“l(fā)esson3”點(diǎn)擊OK。 add-in 開始運(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)閉工具箱課程4:從菜單中工具箱工具箱,相面將通過(guò)在上面我們通過(guò)宏測(cè)試來(lái)TransCAD 菜單欄中添加菜單,來(lái)直接將源代碼保存在序中的文件中,并將
11、他們編譯到一個(gè)程另外一個(gè)文件LESSON4.LST,包含有要編譯的源代碼文件的列表課程4:從菜單中工具箱文本編輯器打開并練習(xí)GISDKSAMPLES文件夾中的LESSON4.RSC和LESSON4.LST文件在TransCAD中,點(diǎn)擊GISDK 工具箱的,彈出編譯文件框選擇GISDKSAMPLES文件夾中的LESSON4.LST文件, 點(diǎn)擊打開。 GISDK 將開始把所列的兩個(gè)文件編譯為單一的程序點(diǎn)擊Lessons 地圖,確認(rèn)其為激活的窗口課程4:從菜單中工具箱,彈出測(cè)試Add-In點(diǎn)擊GISDK 工具箱的框在名稱文本框中輸入“l(fā)esson4”點(diǎn)擊OK。Lesson 菜單將添加到菜單欄中,同時(shí)
12、它有一個(gè)命令:獲取最優(yōu)路線選擇Lesson-Get Best Route, add-in 彈出在課程2創(chuàng)建的工具箱。這時(shí),您就可以像以前一樣使用工具箱了。至此,完成了add-in課程5:安裝Add-in要使TransCAD 用戶可以應(yīng)用GISDK 程序,必須把源的、單機(jī)可使用的UI數(shù)據(jù)庫(kù),并文件編譯為一個(gè)以不同的名稱命名這樣,TransCAD的其他用戶就可以使用 UI數(shù)據(jù)庫(kù)用戶需要用Add-Ins框中的Setup選項(xiàng),安裝add-in或用戶程序課程5:安裝Add-in點(diǎn)擊GISDK 工具箱中的框,彈出UI 數(shù)據(jù)庫(kù)編譯選擇GISDKSAMPLES 文件夾中的LESSON4.LST 文件,點(diǎn)擊打開
13、,彈出另存為框選擇含有TransCAD 程序文件的文件夾,鍵入“l(fā)esson4” 作為UI數(shù)據(jù)庫(kù)的名稱,點(diǎn)擊保存。 GISDK 將把文件編譯為課程4的UI數(shù)據(jù)庫(kù)課程5:安裝Add-in選擇Tools-Add Ins ,彈出Add-Ins框點(diǎn)擊Setup,彈出安裝 Add-Ins框點(diǎn)擊添加,創(chuàng)建新的add-in。默認(rèn)的描述為“UntitledAdd-in”,調(diào)用的宏默認(rèn)名稱為“Untitled”在單選列表中點(diǎn)擊Macro在Description 文本框中輸入“Get Best Route”課程5:安裝Add-in在Name 文本框中鍵入“l(fā)esson4”在UI Database 鍵入“l(fā)esso
14、n4”點(diǎn)擊OK,安裝add-in ,之后返回Add-Ins框點(diǎn)擊取消, TransCAD 關(guān)閉Add-Ins框課程5:安裝Add-in,運(yùn)行安裝后的Add-in選擇Tools-Add Ins ,彈出Add-Ins框突出列表中的Get Best Route點(diǎn)擊OK, TransCAD 運(yùn)行add-in課程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),這樣用戶就不需要做其他專門的工作,就能夠啟動(dòng)add-in課程6
15、:開始創(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),在編輯框中鍵入“TransCADwith Get Best Route”課程6:完成創(chuàng)建用戶程序圖標(biāo)點(diǎn)擊Shortcut 項(xiàng),在目標(biāo)編輯框中輸入以下文字:-q -a lesson4 -ai lesson4 -n "TransCAD with Get Best Route“-q選項(xiàng)為關(guān)閉TransCAD快速啟動(dòng)框, -a為備用UI數(shù)據(jù)庫(kù)
16、后的名稱, -ai為宏啟動(dòng)名,而-n為程序窗口的新名稱點(diǎn)擊OK,關(guān)閉屬性框雙擊新程序圖標(biāo), TransCAD 就像用戶程序一樣,啟動(dòng)add-in課程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)境可以用批處理工具生成1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù) 課程目標(biāo):學(xué)習(xí)如何用以下語(yǔ)言要素,編寫Caliper Sc
17、ript 編程語(yǔ)言的說(shuō)明文件 Constants Variables Operators Keywords 用來(lái)編寫說(shuō)明文件 Assignment Function call Flow control and comments常量變量運(yùn)算符關(guān)鍵字指派函數(shù)調(diào)用流程和注釋語(yǔ)言要素語(yǔ)句,Caliper Script語(yǔ)句包含有4類的語(yǔ)言要素常量變量運(yùn)算符關(guān)鍵字Constants Variables OperatorsKeywords源文件,一組實(shí)現(xiàn)特定功能的語(yǔ)句常量有數(shù)字:43, 257.941, 67.89E12字符串:"Hello", 'Goodbye'空:Nu
18、ll布爾數(shù)學(xué)體系的常量是一種特殊的數(shù)字常量,真1,否null或0在字符串常量中一些特殊字符,需要在其前端加上反斜線:"The next two words "have quotes" around them" 反斜線符號(hào): "c:windowssys.ini“變量 名稱 以字母開始,可以含有多個(gè)字母、數(shù)字以及下劃線 長(zhǎng)度任意:A_perfectly_good_name 區(qū)分大小寫:XY和xy是不一樣的類型 由指派語(yǔ)句決定 在用之前不需要特別 在后續(xù)的指派說(shuō)明文件中,可以更改變量保留字在Caliper Script 編程語(yǔ)言中有些關(guān)鍵字不能作為變
19、量名,而且它們不區(qū)分大小寫do ifFalse Return not nullRunMacro RunDbox True變量類型整型:在-2,147,482,648 到2,147,482,647之間的數(shù)實(shí)型:在+-3.4E-38到3.4E+38之間的雙精度浮點(diǎn)數(shù)字符串:盡管某些用途的字符串限制為1000個(gè)字符或者但是實(shí)際上沒有最大的字符數(shù)限制數(shù)組:有很多要素,可以是一種混合型,變量類型復(fù)合型:使程序的某些功能變得更簡(jiǎn)單的特殊對(duì)象布爾型:False (null or 0) or True (1)Null :空值;您可以使用TypeOf() ,查找變量類型變量數(shù)組顯項(xiàng) 含有dim(維數(shù))的說(shuō)明文件
20、: dim vars12, morevars10 將所有要素初始化為零隱項(xiàng) 使用括?。簊hort_list = "Point", "Line", "Area" 維數(shù)就是要素的數(shù)量您可以認(rèn)為數(shù)組是變量的一組箱子變量數(shù)組可以是不同的類型mixedvars = 1, "Two", 3.0數(shù)組元素可以是數(shù)組dim two_lists2two_lists1 = 1, 2, 3two_lists2 = "First", "Second", “Third”提取元素時(shí),需用方括號(hào)mixedv
21、ars3 is 3.0 two_lists21 is “First”變量數(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ù)Subarray(z, 2, 2) is 2, 3SortArray(), SaveArray(), LoadArray()變量數(shù)組數(shù)組選項(xiàng)含有每一個(gè)子列的選項(xiàng) opts = "
22、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="Arial|12" /add option opts.Color=null/remove option您可以使用這些符號(hào)簡(jiǎn)易地以名稱屬性管理數(shù)據(jù)結(jié)構(gòu)常量與變量的練習(xí)轉(zhuǎn)換到文本編輯器,打開GISDKEXERCISE 文件夾中的源文件CON
23、STANTS AND VARIABLES.RSC檢查宏“Constants and Variables” ,查看將進(jìn)行哪些操作再轉(zhuǎn)換到TransCADShowMessage()或ShowArray()顯編譯并測(cè)試宏,框,點(diǎn)擊OK示的各個(gè)復(fù)合變量一種特殊的目標(biāo)對(duì)象,可以使某些函數(shù)更易編寫很多函數(shù)需要以復(fù)合變量作為變量或者返回復(fù)合變量,或者兩者皆是每一個(gè)復(fù)合變量都由相應(yīng)的創(chuàng)建函數(shù)復(fù)合變量坐標(biāo):在世界上的某方位,創(chuàng)建為Coord()顏色:某種顏色,創(chuàng)建為ColorRGB()圓周:世上的圓形區(qū)域,創(chuàng)建為Circle()范圍:某一圖層或特性覆蓋的區(qū)域范圍,創(chuàng)建為Scope()填充類型:填充在地圖上某區(qū)域
24、內(nèi)的圖案,創(chuàng)建為FillStyle()線型:地圖上的線條樣式,創(chuàng)建為L(zhǎng)ineStyle()復(fù)合變量文檔處理:打開文件的相關(guān)關(guān)變量,用OpenFile()創(chuàng)建樣本點(diǎn):在地圖上顯示點(diǎn)的例子,用SamplePoint()創(chuàng)建樣本線:在地圖上顯示線的例子,用SampleLine()創(chuàng)建樣本區(qū)域:在地圖上顯示區(qū)域的例子,用SampleArea() 創(chuàng)建復(fù)合變量選擇器可以通過(guò)選擇器,取出或者修改復(fù)合變量的某些變量選擇器是一些緊隨變量名和周期的關(guān)鍵字您可以將選擇器應(yīng)用于數(shù)組元素和其他選擇器復(fù)合變量選擇器坐標(biāo):經(jīng)度和緯度f(wàn)irstpoint.lon, xyarray3.lat顏色:紅,綠和藍(lán)areastyle
25、.green圓周:半徑、圓心(不可設(shè)置)mycircle.center.lon范圍:中點(diǎn),寬度,長(zhǎng)度和旋轉(zhuǎn)度scopelist4.height變量范圍除非特別說(shuō)明,變量作用范圍局限于某個(gè)宏或者框靜態(tài)變量(Static):如局部變量,但是如果將它們以靜態(tài)說(shuō)明文件保留其值,下次使用GISDK 的宏或者框時(shí),仍然可以共享變量(Shared):只要以共享說(shuō)明文件羅列出來(lái),可以應(yīng)用于所有宏或者框全局變量(Global):可以應(yīng)用于所有宏或者框在宏結(jié)束時(shí),局部變量將會(huì)失去其值復(fù)合變量和變量范圍的練習(xí)轉(zhuǎn)換您的文本編輯器,打開GISDKEXERCISE文件夾源文件COMPOUND AND SCOPE.RSC檢
26、查“Compound and Scope” 宏,查看進(jìn)行哪些操作再轉(zhuǎn)換到TransCAD復(fù)合變量和變量范圍的練習(xí)打開地圖文件,或者通過(guò)打開地理文件創(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è)矩形框,查看ShowMessage()的各個(gè) 之后點(diǎn)擊OK框,函數(shù)調(diào)用語(yǔ)法: return_value = FunctionName (Argument1, Argument2, .)函數(shù)名對(duì)不區(qū)分大小寫并不是所有的
27、函數(shù)都有自變量和返回值有些自變量可以忽略,以表示零、空值或者缺省值 如果不只一個(gè)變量的話,必須要用逗號(hào)函數(shù)調(diào)用有返回值的函數(shù)可以在表達(dá)式中應(yīng)用很多函數(shù)都有一個(gè)數(shù)組選項(xiàng)作為最后的自變量,每一個(gè)選項(xiàng)是子數(shù)組: 第一元素:字符串形式的選項(xiàng)名稱 第二元素:數(shù)組選項(xiàng)所需的數(shù)據(jù)函數(shù)調(diào)用自變量的數(shù)量和表達(dá)式自變量可以為任意表達(dá)式,可以包括調(diào)用函數(shù)的返回值整型自變量必須獲取整型值實(shí)型自變量可以獲取實(shí)型或整型值函數(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ù),返回真或
28、假字符和隊(duì)列運(yùn)算符:+,用于串聯(lián)算術(shù)運(yùn)算符示例+ : 加- : 減或負(fù)* : 乘/ : 浮點(diǎn)數(shù)相除如果運(yùn)算結(jié)果為整型,則表達(dá)式也為整型,否則表達(dá)式為實(shí)型運(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á)式運(yùn)算符Between.and. :大于等于第一個(gè)表達(dá)式,并小于等于第二個(gè)表達(dá)式Like * 或? :字符串相等,和通
29、配符*與?相當(dāng)Contains:包含字符序列后兩個(gè)只能用于字符串表達(dá)式您可以在以下情況使用Not Not between.and. : opposite of between不在其間不相等的 Not like : opposite of like運(yùn)算符&, && 或AND :邏輯與| 或OR :邏輯或! 或NOT:非邏輯運(yùn)算符對(duì)不區(qū)分大小寫AND計(jì)算兩個(gè)操作數(shù),以查看表達(dá)式為真或?yàn)榧龠\(yùn)算符運(yùn)算符優(yōu)先級(jí)1: 圓括號(hào)(內(nèi)到外)2: 乘,除,負(fù)3: 加、減4: 比較(關(guān)聯(lián)運(yùn)算符)5: 非(邏輯運(yùn)算符)6: 與(邏輯運(yùn)算符)7: 或(邏輯運(yùn)算符)在運(yùn)算符優(yōu)先級(jí)相同時(shí),從左到右運(yùn)
30、算函數(shù)與表達(dá)式練習(xí)轉(zhuǎn)換到您的文本編輯器,打開GISDKEXERCISE文件夾的源文件FUNCTIONS AND EXPRESSIONS.RSC檢查宏“Functions and Expressions” ,查看進(jìn)行哪些操作再轉(zhuǎn)換到TransCAD編譯并測(cè)試宏,查看ShowMessage()的各框后,點(diǎn)擊OK語(yǔ)句將表達(dá)式與關(guān)鍵字起來(lái)可以在一行添加多個(gè)語(yǔ)句一個(gè)語(yǔ)句也可以占用多行示例: Comments Assignment statements Function calls Goto statements If, For and While statements Return() function
31、注釋指派語(yǔ)句函數(shù)調(diào)用Goto語(yǔ)句If, For和While語(yǔ)句Return()函數(shù)注釋可以開始于任何地方某行雙斜線(“/”)后的部分就是注釋x = 1 / This is a commenty = x _ / Comments in a multi-+ 100 / line statement/* 可以用來(lái)中斷注釋文本,并以*/ 結(jié)束中斷指派語(yǔ)句對(duì)變量或數(shù)組元素賦值可以用指派語(yǔ)句stop = start + 100 array2 = 'Caliper'可以用來(lái)對(duì)選擇器進(jìn)行賦值mycolor.red = 25000函數(shù)調(diào)用語(yǔ)句By themselves are statement
32、s本身就是一種說(shuō)明If a function returns a value that is not assigned to a variable, the returned value is ignored如果函數(shù)返回的值不是變量的賦值,則返回值可忽略CenterMap(, newcenter)color15 = ColorRGB(34567, 0, 23631)Goto語(yǔ)句在同一個(gè)宏中,以表示將某操作轉(zhuǎn)換到另外一個(gè)地方可以緊跟任意字母序列、數(shù)字和下劃線,以及只跟隨目的文件的冒號(hào)if GetMaps() = null then goto skip map_list = GetMapNames
33、()skip:If語(yǔ)句如果表達(dá)式為真,執(zhí)行一個(gè)或者一組語(yǔ)句如果表達(dá)式為假能夠執(zhí)行一個(gè)或者一組語(yǔ)句時(shí),也可以用Else子句如果是一組語(yǔ)句,可以附上Do 和End子句if x>100 then dox=1 y=y+1 endIf語(yǔ)句使用形式if expression then <statements> if expression thendo <statements> endif expression then <statements> else <statements>if expression thendo <statements&g
34、t; end else <statements>if expression then<statements> else do <statements> endif expression thendo <statements> endelse do <statements> endFor語(yǔ)句創(chuàng)建基于某計(jì)數(shù)變量的循環(huán)For variable = start_value to finish_value step step_sizedo <statements> endstart_value, finish_value 和step
35、_size必須為數(shù)值variable超過(guò)finish_value的制后,結(jié)束循環(huán)如果start_value 大于finish_value,循環(huán)結(jié)束,除非step_size為負(fù)值For語(yǔ)句示例for i=1 to 100 doxyi= xi*2endfor j=2 to site_count step 2 do RunMacro(“Select Sites”, j) endfor k=500 to 0 step -50 do RunDbox(“Countdown”, k) endWhile語(yǔ)句基于某條件開始循環(huán)While expressiondo <statements> end當(dāng)布
36、爾型值為False,或者循環(huán)回到第一次循環(huán),循環(huán)結(jié)束示例:while not FileAtEOF(file_handle) do RunMacro("Get Next Record", file_handle) endReturn 函數(shù)停止對(duì)宏或框的操作后,返回某一個(gè)值或者零Return(expression), or Return()框,比如OK或者在框中,只用于關(guān)閉整個(gè)Cancel 鍵示例:Return(“Done”) Return(x*1.414)錯(cuò)誤程序運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤以信息報(bào)告形式顯示: 發(fā)生錯(cuò)誤的源文件名稱 檢測(cè)到錯(cuò)誤發(fā)生的行數(shù) 九種錯(cuò)誤類型的代碼用戶進(jìn)行錯(cuò)誤的
37、語(yǔ)句on exception goto labelon exception default / Cancels error handler on exception do <statements> goto label end on exception do < statements > Return() end語(yǔ)句和錯(cuò)誤練習(xí)轉(zhuǎn)換到文本編輯器,打開GISDKEXERCISE文件夾的源文件STATEMENTS AND ERRORS.RSC檢查宏“Statements and Errors” ,查看進(jìn)行哪些的操作再轉(zhuǎn)換到TransCAD編譯并測(cè)試宏,查看ShowMessag
38、e()顯示的各擊OK框后點(diǎn)1 GISDK概述2快速啟動(dòng):GISDK示例3 GISDK語(yǔ)言基礎(chǔ)4 源文件5 GISDK函數(shù)源文件用五種類型的創(chuàng)建源文件是嵌入程序和自定義應(yīng)用程序的語(yǔ)言模塊,五種GISDK宏框 工具欄工具箱菜單:主要是GISDK 宏和框框工具欄和工具箱是特殊的的類型GISDK宏:像其它程序語(yǔ)言的子程序框:確定框里的項(xiàng)以及它們的作用工具箱:始終在屏幕前端的doesnt take over the application框,不能連接到程序工具欄:在菜單欄下方的水平帶狀菜單:確定菜單或者子菜單框源文件編碼設(shè)計(jì)文本格式關(guān)鍵字和函數(shù)名不區(qū)分大小寫,函數(shù)名大寫只是為了方便兩斜線(/)表示某行的
39、余下部分為注釋一個(gè)源文件中可以有很多源GISDK的宏含有一系列Caliper Script 編程語(yǔ)言的說(shuō)明執(zhí)行時(shí): 用戶選擇某菜單項(xiàng)或者點(diǎn)擊工具欄的某按鈕 由RunMacro() 函數(shù)調(diào)用宏GISDK包含有特殊的初始宏,可以內(nèi)含于框的源中GISDK宏結(jié)構(gòu)Macro "macroname" (argument1, argument2)<statements go here>endMacro宏名稱區(qū)分大小寫,可以是任何字母、數(shù)字以及空格的組合GISDK宏變量宏函數(shù)中最多可以有八個(gè)可選擇的變量: 多余的變量被忽略的變量可以初始化為空值宏調(diào)用后,變量不可更改,除非: 變
40、量是數(shù)組 變量通過(guò)前綴“&”進(jìn)行傳遞GISDK 宏可以通過(guò)共享變量或全局變量, 傳遞值GISDK宏返回值任何類型的單一值,包括數(shù)組,都可以通過(guò)Return() 函數(shù)返回如果宏以無(wú)返回值結(jié)束,那么它將返回null練習(xí)編寫、編譯并測(cè)試一個(gè)宏: 設(shè)置x = 2 調(diào)用第二個(gè)宏,以x為自變量 通過(guò)ShowMessage() 和String() 輸出返回值第二個(gè)宏: 變量相乘 以Return() 函數(shù)返回結(jié)果框含有用戶交互式使用的執(zhí)行時(shí):器,以及表示程序邏輯性的宏 用戶選擇某菜單項(xiàng)或者點(diǎn)擊工具欄的某按鈕 由RunDbox()函數(shù)調(diào)用框框-特性框可以連接程序An initialization mac
41、ro can be run to set up a dialog box before it isdisplayed在框彈出之前,可以初始化宏,設(shè)置框當(dāng)調(diào)用Return() 函數(shù)時(shí),用戶點(diǎn)擊OK或者Cancel 后,消失框從屏幕上框結(jié)構(gòu)Dbox "dboxname" (argument1, argument2,.) hpos, vpos, width, height options<dialog box items go here> endDbox與宏相似,框:名稱也區(qū)分大小寫,可以是任意字母、數(shù)字和空格符的組合 能夠有多達(dá)八個(gè)可選擇的自變量通過(guò)Return()
42、可以返回單一值框位置可以指置hpos 、 vpos :以字符作為;兩者的默認(rèn)位置都中心水平位置(hpos) 就是在左側(cè)邊緣,即較靠近框架的左邊,關(guān)鍵字為left, right 或者center垂直位置(vpos) 就是在頂端的邊緣,即較靠近框架的頂部,關(guān)鍵字為top, bottom 或者center框選項(xiàng)標(biāo)題:title_expression框的標(biāo)題必須是字符串 Evaluated after Init macro is executed; changes if the expression changes 執(zhí)行初始化宏后要進(jìn)行評(píng)價(jià),并隨著表達(dá)式的變化而變化 If omitted, the n
43、ame of the dialog box is used如果忽略,框的名稱采用原來(lái)的幫助: help_specThe topic in the help file to display if the user presses F1 如果用戶按F1鍵,將會(huì)彈出含有標(biāo)題的幫助文件位置:loc_x, loc_y, loc_width, loc_heightExpressions used to set the location of the dialog box設(shè)置框位置的表達(dá)式If stored (e.g. by declaring them as static), the dialog box
44、 will open at its new position the next time it is run如果保存(例如為靜態(tài)的框),在下一次運(yùn)行的時(shí)候,對(duì)話框就會(huì)在新位置打開框項(xiàng)目按下按鈕(Push buttons) : 標(biāo)準(zhǔn)的Windows按鈕;可以有名稱或者圖標(biāo)復(fù)選框( Checkboxes ): 可以選也可以不選的標(biāo)志框編輯項(xiàng)( Edit items ): 可以輸入值的地方滾動(dòng)列表( Scroll lists ): 在值列表中列出可供選擇的子窗口目錄結(jié)構(gòu)( Tree views ): 文件夾列表中列出可供查看或者選擇的子窗口框項(xiàng)目下方彈出菜單( Popdowns ): 也稱窗口的下拉
45、菜單,和菜單相似,可以在位置框的任意項(xiàng)( Spinners ):微調(diào) 為通過(guò)箭頭的移動(dòng),對(duì)值列表進(jìn)行排序而設(shè)計(jì)單選框列表( Radio lists ): 一組相互對(duì)立的按鍵,一次只能選取一個(gè)文本項(xiàng)( Text items ): 可選選擇添加文本框例子( Samples ): 示例在地圖上顯示點(diǎn)、線和面框項(xiàng)目例子按鈕( Sample buttons ): 示例項(xiàng),可以像按鍵一樣使用框架( Frames ): 對(duì)其他項(xiàng)目真實(shí)地組合并指定在一定大小的長(zhǎng)方形框中選項(xiàng)卡列表( Tab lists ): 以單頁(yè)組合在一起,一次只能顯示一頁(yè)宏項(xiàng)目( Macro items ):框中的宏初始項(xiàng)( Init i
46、tem ): 在框出現(xiàn)之前,運(yùn)行特殊的宏框Type "itemname" position_info options do<statements go here> endItemThe item name is only needed to disable, enable, hide or show anitem dynamically項(xiàng)目名項(xiàng)不可用、可用、隱藏或者顯示位置信息是必須的,大小信息是可選擇的位置與大小兩者可以是小數(shù) Can be fractional hpos 和 vpos可以為same 或after框的練習(xí)使用文本編輯器在GISDKEXERCIS
47、E 文件夾中打開源文件DBOXSAMPLER.RSC檢查源文件,以查看Caliper Script的“Dbox Sampler”程代碼再轉(zhuǎn)換到TransCAD框編編譯并測(cè)試源,試用框的所有項(xiàng)工具箱工具箱是一個(gè)出現(xiàn)在屏幕上的框,但是不與程序相連當(dāng)調(diào)用RunDbox() 函數(shù)時(shí),運(yùn)行初始宏,并且RunDbox() 函數(shù)調(diào)用后立即返回A toolbox is identified with the Toolbox option工具箱通過(guò)Toolbox選項(xiàng)來(lái)識(shí)別出現(xiàn)NoKeyboard選項(xiàng)說(shuō)明在交互使用時(shí),工具箱不能只保持鍵盤的焦點(diǎn)工具箱UpdateDbox() 和CloseDbox()函數(shù)可用時(shí),可
48、以激活特殊項(xiàng): 更新項(xiàng)用于更新工具箱 關(guān)閉項(xiàng)用于關(guān)閉工具箱工具項(xiàng)用于交互地操作地圖 一旦激活其中一個(gè),其他項(xiàng)就不能再激活 只有用戶在地圖上點(diǎn)擊時(shí),工具才可用,然后點(diǎn)擊函數(shù),確定交互操作工具欄工具欄是位于菜單欄下方的一組水平框項(xiàng)的工具欄通常是菜單項(xiàng)的快捷按鍵一次只能使用一個(gè)按鍵,但是多個(gè)按鍵可以同時(shí)出于活動(dòng)狀態(tài),可以輪流地顯示/隱藏當(dāng)與某窗口有關(guān)聯(lián)時(shí),工具欄可以自動(dòng)顯示工具欄Toolbar "toolbar name" (arg1, arg2,.)<dialog box items go here>endToolbar各項(xiàng)按一定的順序排序只能對(duì)各項(xiàng)的長(zhǎng)寬設(shè)置位置信
49、息SetDefaults()函數(shù)可以設(shè)定工具欄為某類型窗口的默認(rèn)工具欄菜單用于定義菜單或者子菜單菜單項(xiàng)用于定義菜單中的選項(xiàng)菜單項(xiàng)可以是: 目前的菜單項(xiàng) 事先指定菜單項(xiàng)的名稱 The keyword Separator (dont use in top levels) 關(guān)鍵器( Separator ),不用于頂級(jí)菜單Windows選項(xiàng)可以添加所有打開的窗口到該菜單菜單結(jié)構(gòu)"name" items go here><end菜單項(xiàng)有四種形式:Item "name" options“name”Item "name" options macro "name"Item "name" options dbox “name” Item "name
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理與經(jīng)濟(jì)法的相輔相成試題及答案
- 醫(yī)院規(guī)范化培訓(xùn)體系構(gòu)建與實(shí)施
- 制作鋁瓦合同范例
- 工程經(jīng)濟(jì)考試的知識(shí)分布與選擇試題及答案
- 項(xiàng)目團(tuán)隊(duì)合作與沖突協(xié)調(diào)試題及答案
- 公共關(guān)系學(xué)習(xí)資料試題及答案
- 水利水電工程關(guān)鍵環(huán)節(jié)控制與試題及答案
- 農(nóng)家樂合同范例
- 行政管理相關(guān)經(jīng)濟(jì)法試題及答案
- 光伏設(shè)備合同樣本
- 新能源項(xiàng)目糾紛法律適用與案例解析-筆記
- 安全生產(chǎn)合規(guī)性審核
- 鼓樂鏗鏘 課件-2024-2025學(xué)年高中音樂人音版(2019)必修 音樂鑒賞
- 腎衰竭病歷范文
- 建設(shè)項(xiàng)目全過(guò)程工程咨詢-第二次形成性考核-國(guó)開(SC)-參考資料
- 《中醫(yī)診斷學(xué)》-辨證
- 骨質(zhì)疏松用藥治療
- 2024信息安全意識(shí)培訓(xùn)課件完整版含內(nèi)容
- 2024國(guó)家電網(wǎng)公司(第二批)招聘國(guó)家電網(wǎng)公司華北分部管理單位遴選500模擬題附帶答案詳解
- 《汽車燈具的標(biāo)準(zhǔn)》課件
- 一例糖尿病酮中毒個(gè)案護(hù)理
評(píng)論
0/150
提交評(píng)論