GISDK培训教材.doc

上传人:laozhun 文档编号:3690280 上传时间:2023-03-15 格式:DOC 页数:20 大小:216KB
返回 下载 相关 举报
GISDK培训教材.doc_第1页
第1页 / 共20页
GISDK培训教材.doc_第2页
第2页 / 共20页
GISDK培训教材.doc_第3页
第3页 / 共20页
GISDK培训教材.doc_第4页
第4页 / 共20页
GISDK培训教材.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《GISDK培训教材.doc》由会员分享,可在线阅读,更多相关《GISDK培训教材.doc(20页珍藏版)》请在三一办公上搜索。

1、GISDK培训教材北京友好创达科技有限公司一、 前言 GISDK全称为Geographic Information System Developers Kit。GISDK包含Caliper Script,一种功能强大的宏编程语言,用于增强和定制Caliper的GIS产品。1频繁使用Maptitude、Gis+或TransCAD的用户 熟悉其中的概念及用法,理解其中的(Map,Layer)、(dvw, dbf)、(Layout)专题图的概念及关系,大大有助于二次开发。2编程基础Basic,VB,C,或其他语言. 3想自动化或定制Maptitude、Gis+或TransCAD二、 介绍(共有600

2、多个函数) 1、三类程序:add-ins, custom application, server application、 Add-ins 在其中编写Macros或dialog boxes等,在其他程序中使用,通过加入Tools-Add ins菜单中。 Add-ins可简可繁 简:无任何交互界面 繁:加入Custom toolboxes、 Custom Applications包含自己的界面:菜单、工具条、工具盒及对话框启动方式 :加入Add-ins.txt中或 u。CA同样可简可繁:如mapt、Gis+、TransCAD就是最复杂的。、 Server Applications是为你的程序提供

3、数据、地图、分析函数的定制的应用。Client可是VB、C、C+或其他、甚至是宏语言(eg.、Execl).Server App无界面,后台运行,通过宏提供功能。使用一个启动宏来初始化服务器后等待Client请求。通过DDE同步或异步方式发送请求。另外Server App通过Clipboard、DDE或文件方式向Client端传送结果数据。 2、系统要求 Maptitude、GIS+、TransCAD平台。 maptitude不包含编辑器,可使用任何文本编辑器。 3、安装 安装 启动,Tools-Add Ins 选择Gis Developers Kit面版会出现。三、 快速练习1. Lesso

4、n 1. Addin1.rsc*大小写对宏名敏感。 开始 编辑 运行 2Lesson 2. Addin2.rsc 3. Lesson 3. 安装Add-in GISDK将编译后的资源文件存入一个特别的库叫user interface database,UI database。包含 * .1,2,3,4,5,6,.DBD 7个文件中。要发布定制的要编译为独立的UI 别名 database,再用set up 选项来设置。 创建一个UI database 名为test0001 4Lesson 4 创建一个定制应用。 Xfac1.rsc 含启动宏和菜单。 Xfac2.rcs 含其他宏和对话框。 编译可

5、使用一个list file,文本文件。Xfac.lst 名为testxface的UI库。 创建启动图标 -u testxfac 另一种安装方法四、 GISDK 结构1平台和UI库Platform 是GIS和 DBMS核心集,用于创建地图和分析UI是菜单、对话框和其他工具 平台包含exe程序文件(mapt.exe,Gisw.exe or Tcw.exe)和DLLs和其他支持文件。 UI含GIS_UI.dbs,1,2,3,4,5,6(中文版为GIS_CH.dbd,1,2,3,4,5,6) 两种方式。UI databaseResource compiler 2编译资源Resource fileThe

6、 platform mapt.exe gisw.exe tcw.exeCompleted application lst / rsc 文件 错误:Error file(.err) 编译方法:AGISDK toolbox Brscc.exe 命令行 CLoadresourcefile() 用GISDK toolbox 4种(p23).编译到test_ui库中,先清空。执行test_ui中的宏或DBOX编译为指定的ui库中直接执行gisdk中的函数或语句 rsccA Rscc -c u uidbname fname1.rsc 不含 c 只替换同名资源。含 c 清空B Rscc -c u uidbn

7、ame listfile1 listfile2C Rscc -c u uidbname menu.rsc macro.rsc rsc_list.txt 用函数leadresourcefile()在自己定制的应用中可以使用leadresourcefile()函数来编译资源文件,但不能使用listfile文件来指定资源文件,可以非常容易地编写一个循环来调入多个资源文件。可以用如下的两个宏,直接挂在两个菜单项上来编译资源文件。 Macro load a resource file (filename) shared rsc_file_name if filename = null then do/

8、Ask the user which file to compile.on escape do Return() endrsc_file_name = ChooseFile(Resource,*.rsc, Compile Resource, ReadOnly Box, No)on escape default end else rsc_file_name=filename SetCursor(Hourglass) / Do some basic error trapping. on notfound doResetCursor()Return() end on error doResetCur

9、sor()ShowMessage(Compilation Failed.)Return()end / Compile the resource file into the current UI database LoadResourceFile(,rsc_file_name,) ResetCursor()EndMacroMacro reload a resource fileshared rsc_file_name/ See if something has already been compiled.if rsc_file_name = null then ShowMessage(No re

10、source file was previously loaded.)else / Compile it again.RunMacro(load a resource file, rsc_file_name)EndMacro 用户定义的标志。(26个) NoneAB 可编译出不同的版本AB3安装GISDK应用 安装GISDK应用实际实在ADD-INS.TXT文件中加入不同的行来表示。每一行由四项,每一项的意义如下: a表明是什麽: Dbox,Macro或Interface. bUI库名 c宏或对话框的实际名,用于启动 d描述 下面是一个简单的例子:Macro,test_ui,my first

11、macro,Try This Add-InDbox, test_ui, my first dbox,Try It! Youll Like It!Interface, myapp1,Go,Sales Information CenterM, testui, my second macro,Heres another Add-In MacroD, testui, my first dbox,Heres another Add-In Dialog BoxI, myapp1,Go,Sales Information Center 安装运行 Add-Ins。 安装运行 Custon App所有的定制应用

12、都有一个启动宏。一般情况他们执行以下一至四种工作: 显示程序标题:Showbitmap(),Showsnapshot()初始化全程或共享变量:设置状态条:SetstatusBar(),SetStatus()设置缺省菜单和工具条:SetDefaults()mapt -u uidbname-I xfacmacroname n 窗口名称 4GISDK Toolbox介绍 立即运行Showmessage()SetLayer()DestroyProgressBar()SetMapScale()RunMacro() *exit() 退出mapt *赋值仅对全程变量有效 *return() 无效仅是从运行宏

13、退出。五、 资源可含多个资源可一起编译为Add-lis 或应用/为注释1 宏macros类似子过程,包含一系列描述语言,宏的运行。菜单按钮runmacro()函数 Macro“name”(arg1,) 大小写敏感 a最多8个参数 b参数只有是数组或&前导才可改变,其他为传值。D 用return返回值无则为null。2 Dialog boxes选menu点击button调用RunDbox函数 当对话框出现时,其它操作无法进行。 Dbox“name”(arg1) hpos,vpos,width,height option endDbox 参数 8个以下,不足为null。含初始化 init do e

14、nditem return() 返回,可有一任意类型的单值。 position hpos (x,left,right,center) vpos (x,top,bottom,center)以字符为单位 width height optionsTitle 标题Help F1的帮助 对话框条目push button,Edit item,Check box,Radio list,Frame,Text item,Scroll list,popdown menu,Sample.Type“item name” position-info optionsdo enditem名称不必需,除非用 disablei

15、tem(),enableitem(),hideitem(),showitem. 相关函数 3工具盒 toolboxes Dbox “Dbox name” Tool box End Dbox * 含No Keyboard 不保持键盘集点。 tool itemstool “item name” hpos , vpos options Icons: list-of-icons do enditem交互调用有 Clickcood() , clickline() update item 当updateDbox() 被调用时使用。 Close item 无此项 toolbox 无法关闭4 Toolbars

16、一次只能显示一个,但可有多个用 ShowDbox() HideDbox() 操作,与toolbox不同的只是没有位置。5 MenusMenu“menu name”options endmenu* options windows 窗口列表* Separator * 四种方式定义l Caliper 菜单名后有 表明有对话框六、语言要素常量 数字, 字符, null 变量 不需先定义,大小写敏感,随赋值类型可变*保留字 do, if, return, null, Runmacro, rundbox,大小写无关类型 Integer: -2147482648-2147482647 Real : +-3.

17、4E-38-3.4E+38 String : 512长度 Array : Compound: 组合,复合 Boolean Null 数组 dim定义 x=“Boston”, 元素类型可不同 多维数组 号相加 函数 Compound, Variables复合变量 Coord, Color, Circle, Scope, fillstyle, Linestyle, File Handle, Sample Point, Sample Line, Sample Area 变量作用范围(三种)Local, global, Shared global 定义全程变量 Shared 共享5. 函数调用 参数

18、一个数略即为null或缺省 Redrawmap() (null) ( “My Map”) 多个,分隔“ ,”号不能省,最好一定是空时使用null.6.表达式 数值. 关系., 逻辑.1. String, Array 时合并语句行 分行,多行, / 赋值 含数调用 goto if then else其中多行要加doend. for to step do end. while do endReturn(expression)或Return( ).8.错误控制(P73) 4种语句 种错误七管理窗口 类型:map, editor, figure, layout 格式:“window type | wi

19、ndow name”.1. 创建窗口 函数:CreateMap(string map_name, array options) 选项:Menu, Toolbar, Position, Size, Active Macro, Close Macro, CreateMap()Creates a new, empty map window CreateEditor()Creates a new editor window CreateEditorByQuery()Creates an editor displaying the results of an SQL query CreateFigure

20、()Creates a new figure window CreateLayout()Creates a new layout window OpenMap()Opens a map file and displays it in a map window OpenMapFromAnnotation()Creates a new map window from a map that appears in a layout OpenEditor()Creates an editor from a file OpenEditorFromAnnotation()Creates a new edit

21、or window from an editor that appears in a layout OpenFigure()Creates a figure from a file OpenFigureFromAnnotation()Creates a new figure window from a figure that appears in a layout OpenLayout()Creates a layout from a file2.Windows相关操作函数.3.关闭窗口4.控制窗口大小和位置5.关联菜单和工具条 Setdefaults( )6.窗口宏 Active macro

22、s Close macros Scale-change macros Hightlight macros7.保存和打开窗口八地图和图层1. 创建地图 使用函数CreateMap() 可以创建新的,空图. 创建时需要给出scope地图范围. 地图重名时将在新建的地图名称后加:1,:2, 创建新的地图后, 可以在其中加入地理图层, 图像层或各种装饰对象. 地图的比例尺scale,范围scope,单位unit,投影projection. 它们都有函数获取和设置. 其中scope是一个复合变量, 包含center,width,height,projection.2. 地图和图层 GISDK支持不同类型

23、的图层,包括标准格式,压缩格式和一些图像层.主要的函数有AddLayer(),AddCDFLayer(),AddImageLayer(),DropLayer().有时需要一些图层而又不想在任何地图窗中出现, 可以将它放入一个虚拟的工作空间,函数是AddLayerToWorkspace(),DropLayerFromWorkspace().在maptitude和GISDK中, 和当前view一样, 要有当前图层的概念, 有很多的操作都是针对当前图层进行的.3. 图层显示风格和设置GISDK提供了很多的函数来控制地图的显示. 可以控制图层的可视,不可视, 显示的风格, 以及自动比例尺等.在地图中加

24、入图层后,必须设置图层的现实风格style, 不同种的图层有不同的设置参数,如下:Layer typeStyle elementTo set the styleTo get the styleAreaBorder styleSetBorderStyle()GetBorderStyle()AreaBorder widthSetBorderWidth()GetBorderWidth()AreaBorder colorSetBorderColor()GetBorderColor()AreaFill colorSetFillColor()GetFillColor()AreaFill styleSetF

25、illStyle()GetFillStyle()AreaTransparencySetFillStyleTransparency() GetFillStyleTransparency()LineStyle SetLineStyle()GetLineStyle()LineWidth SetLineWidth()GetLineWidth()LineColorSetLineColor()GetLineColor()PointIcon SetIcon()GetIcon()PointIcon ColorSetIconColor()GetIconColor()Maptitude使用的点的符号类型是wind

26、ows的系统turetype的字体. 可以用专用软件制作.Maptitude使用的线形可以用函数LineStyle() 定义.Maptitude 使用的填充类型用函数FillStyle() 定义, 要先定义一个8*8的类型.选择集可以有自己的显示风格style, 和设置图层一样. 也可以设置为null, 表示继承图层的显示风格.4. 用户交互函数ClickCircle(),ClickCoord(),ClickDragAndShow(),ClickEllipse(),lickEllipseScope(),ClickLayout(),ClickAndDragLayout(),ClickLine()

27、,ClickPolyline(),ClickCurve(),ClickRect(),ClickRectScope(),ClickScope(),ClickShape(),ClickText(),GetClickShift(),GetClickControl() 5.专题图 6.手绘条目 7.选择集2. 图例 九表、视图和数据1. 表table和视图view table是包含一些被按行列组织的信息的一个磁盘文件. View 是一个虚拟表,有行列信息. 来自单独的表, 一个地理文件或不同来源并联的. 用view来read,write,display表或地理文件中的信息. 作为一个程序员可以将vie

28、w看作一个表,地理文件或并联视图的句柄”handle”. View如同名,则在名称后加:1,:2 View有些类似数据库中的记录集recordset2. 编辑器editormaptitude中的数据窗dataview, 实际上包含了view和editor两个部分.Editor是用来显示view的, 当保存一个editor时, 不存储实际数据, 而是保存了怎样显示view的信息. 显示的数据还是取自view.3. 视图、层和Join视图每个地图图层都有一个相应的包含表格信息的view.每个view不一定有相关的地图图层.一个地理图层可能有几个相关的view. 主要是来自join.平台将drop

29、a view,当它不在任何窗口中显示. 如当关闭一个editor时, 此editor关联的view即不在任一个editor中, 也没有和任何其他地图图层关联, 此view将被关闭.当撤销一个图层时, 与图层关联的每个view都将关闭.4. 读,写数据访问表格数据是通过view, 表达方式简单灵活. GISDK用record handle表示一个view中的一条记录取值表达式:x = view_name.field_name, view_name必须是一个字符串变量, 如:/ Neither will this.name = States.Name/ This, on the other han

30、d, works just fine.vw = States name = vw.Name字段名如要使用变量要如下表达:/ Here are two ways to read the state name.vw = Statesfld = Name/ These two statements do the same thing.name = vw.Namename = vw.(fld)/ I am going to read the values of three fields.fld_names = Name, Population, Incomevw = States/ Read the

31、three field values.name = vw.(fld_names1)pop = vw.(fld_names2)inc = vw.(fld_names3) 5.增加,删除记录 6.编辑,创建表结构3. ODBC表十其它Geographic Data and Geographic FilesUser Interface ProgrammingMath, String, and Array ManipulationTimers and StopwatchesSlide Shows & SnapshotsPrinting & Layouts Interprocess Communicat

32、ion十一Server applicatiens.嵌入地图使用地理或空间查询结果提供空间分析1. 概述包括Startup macro DDE Service macros 启动2. 要求服务格式3. 传递结果 保存到文件 保存到Clipboard DDE(a single string)4. 使用结果在Client程序中bitmapmetafileole object十二GIS二次开发和OLE Automation 1、 四种:二次开发工具 (GISDK、Mapbasic) 底层DLL调用开发 (mapGIS、泰坦) DDE、Ole automation ActiveX控件开发2、 The M

33、aptitude Object Maptitude.AutomationServer,如VB中: Dim mapt As Object Set mapt = CreateObject(Maptitude.AutomationServer)方法Methods: RunMacro() calls a GISDK function. RunUIMacro() calls a macro in a compiled GISDK UI Database. Coord(Long longitude, Long latitude) Scope(MacroVal center, Double width, D

34、ouble height, Double angle) Circle(MacroVal center, Double radius) 注:Coord、Scope、Circle返回MacroVal类型的对象例如: map_name=mapt.RunMacro(OpenMap, c:Maptitudemymap.map, Null)3、 The MacroVal ObjectMethods: Copy() IsEqual(MacroVal compare)Properties: PropertyTypeRelevant Caliper Script Compound Types Lat longc

35、oord Lon longcoord Center coordscope, circle Width doublescope Height doublescope Angle doublescope Projection arrayscope Radius doublecircle Red longcolor Green longcolor Blue longcolor十三函数参考 公共调用约定:1、 传递Null表示一个默认值。 例如,很多函数都使用一个地图名称作为一个参数,null代表当前地图。类似的有editor数据窗名称、layout布局名称、layer图层名称等。对于用于定义地图显示

36、的函数用null表示“没有改变”,如函数SetIconColor()在设置一个选择集的颜色时,表示没有变化仍使用图层的颜色。2、 确定地图、图层和选择集a、改变图层显示风格的函数用几种类型的字符串来确定被改变的是地图、图层或选择集:mapname|layername|setname 指定地图的指定图层的指定选择集layername|setname 当前地图的指定图层的指定选择集setname 当前地图的当前图层的指定选择集layername| 当前地图的指定层null 当前地图的当前图层 b、类似的情况是设置专题地图: layername|themename|class_id 修改指定图层、专

37、题图和类id themename|class_id 修改当前图层、专题图和类id c、有一些函数只能影响整个图层,而对选择集无效: mapname|layername layername null3、 确定view和sets很多函数是用于views和sets的,如getfirstrecord()在特定的view中的特定set获取第一条记录。Views和Sets有四种格式:Viewname|setname 特定名称的view中特定名称的setSetname 当前view中指定setViewname| 指定名称的view中的所有记录Null 当前view中的所有记录4、 确定字体对字体的指定有4种

38、格式:font_family|font_sizefont_family|Bold|font_sizefont_family|Italic|font_sizefont_family| Bold| Italic|font_size字体的大小以点数表示,可以是实数,如:”Times New Roman|Bold|17.5”5、 确定窗口当你使用一些可以对所有窗口可用的函数时(MinimizeWindow()),必须指定窗口类型和窗口名称,如:”Map|My First Map” 或 “Editor|Sales Data”。一个特别的类型”Frame|”特指maptitude主窗口。6、 确定表的字段

39、有时使用字段名称(GetFirstRecord()),有时使用字段表达式(CreateTheme())。7、 使用布尔值Caliper Script 使用字符串”True”和”False”来表示布尔值,但有时也会返回象”On”和”Off”这样的值,请参考文档。8、 使用选项数组很多函数使用可选的数组作为参数,其中的每一个元素都是由两个或更多的元素构成,第一个是选项的名称,第二个是它的值,如下:options_array=“Layer Name”, ”Counties”“Label”, “Counties of the Northeast” 如不需要一些选项,可用null。 下述的两个函数用于查

40、找特定选项和选项的值: FindOption() FindOptionValue() GISDK全称为Geographic Information System Developers Kit,是一种强大的宏编程语言,用于增强和定制Caliper公司的GIS产品。GIS大家庭的后起之秀Maptitude具有迄今为止最好的性能价格比,而其增值开发语言GISDK 更使其如虎添翼。GISDK由三部分组成:Caliper Script程序开发语言,用于应用程序编译和测试的交互开发工具以及客户服务器功能。 Caliper Script 程序语言是开发基于Maptitude应用程序的关键。由于其一组由命令组

41、成的程序流,隐含变量说明,灵活的数组处理,结构化的函数调用等等而使得类似BASIC语言的 GISDK别有特色。Caliper Script可以建立和管理诸如表、地图、地图要素、窗口、选择集以及工具、对话框、工具条等用户界面。此外, Caliper Script还包含多达 600个函数的函数库。高级函数调用充分调用Maptitude的功能 。1、 GISDK功能强大使用简单。即使具有很少程序经验的人都能很快掌握。2、 GISDK共有600多个函数和200多条语句。高级函数的应用可充分调用Maptitude的功能。3、 GISDK提供灵活的add-ins的方式。Add-ins可以使用户很方便地获取现有软件的功能,增强新的功能,add-ins可繁可简,简单的是一个当被点中即可运行的宏,而复杂的则可显示对话框,并能通过宏的运行选择系统配置。4、 GISDK可开发自己所需要的用户界面。象菜单、工具条、对话框等,用户还可以开发出满足特殊需要的应用程序以增强GISDK的功能,自行开发的程序的执行与在其它wi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号