MapBasic基础入门培训.pptx

上传人:莉*** 文档编号:87128058 上传时间:2023-04-16 格式:PPTX 页数:24 大小:165.12KB
返回 下载 相关 举报
MapBasic基础入门培训.pptx_第1页
第1页 / 共24页
MapBasic基础入门培训.pptx_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《MapBasic基础入门培训.pptx》由会员分享,可在线阅读,更多相关《MapBasic基础入门培训.pptx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、讲课主要内容讲课主要内容第一部分:Mapbasic简介第二部分:Mapbasic基础第三部分:Mapbasic实例第四部分:讨论第1页/共24页Mapbasic是Mapinfo公司在其桌面产品的基础上推出的二次开发工具,用于扩展MapInfo功能,实现程序的自动重复操作,并使MapInfo与其他应用软件集成等。一、Mapbasic简介MapBasicMapXMapXtremeSpatialWareMapinfo系列产品MapX性能价格比较好,功能较强的OCX控件,在标准可视化开始环境下(如VB,C+,.net等),通过其可以将地图对象嵌入到实际应用中。MapXtreme是面向企业的基于Inte

2、rnet/Intranet的地图应用服务器.充分利用ISAPI,NSAP和CGI的优越性,并可在任务Web服务器上运行,与Web服务器和浏览器有较好的兼容性。SpatialWare是在对象-关系数据库环境下,基于SQL进行空间查询和空间分析的空间信息管理系统。可将所有的空间数据作为对象进行存储,可以以现有的栅格图像文件为基础,利用Mapinfo专题图,山坡投影和着色技术生成三维图像。第2页/共24页一、Mapbasic简介MapBasic集成环境与特征文本编辑器程序编译器程序链接器联机帮助文本编辑器(Editor)用于程序的编辑与修改。程序编译器(Compiler)用于源程序编译,以生成可执行

3、程序。程序链接器(Linker)用于将若干独立的模块链接成一个应用程序。联机帮助(Help)则为程序员在线提供MapBasic的每条语句或函数的详细说明资料。第3页/共24页一、Mapbasic简介MapBasic的文本编辑大小有限制,不能超过64KB,可用以下三种方法解决:1、用其他的文本编辑器编辑程序文件,再用MapBasic的FileCompileFromFile编译该程序。2、把一个大的程序文件(.mb文件)分成两个或多个较小的文件,然后用MapBasic的Include语句把多个文件组合成一个应用程序。3、将一个大的程序文件(.mb文件)分成两个或多个较小的文件,然后通过一个项目文件

4、(ProjectFile)把这些小文件连接成一个应用程序。在某种程度上它与方法二有些相似,但方法三使用起来更有效,因为它可以单独编译每个模块,这就意味着如果你只修改了其中的一个模块,那么你只要对该模块进行重新编译就可以了第4页/共24页1、了解Mapbasic最基础的内容。(请参阅下页第二部分内容)2、充分利用自带帮助文档。(MapBasic提供了380多种函数和命令语句,可参见Mapbasic参考手册)3、借助Mapinfo的mapbasic窗口。(在Mapinfo每操作一步,源代码基本显示在mapbasic窗口,为mapbasic开发中最常用辅助方式,如下图:)一、Mapbasic简介学习

5、MapBasic开发一般方法:1、勾选2、打开3、查看第5页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数二、Mapbasic基础第6页/共24页二、Mapbasic基础1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数1注释用英文单引号“”来标记注释语句。2程序输写不分大小写。3一条语句可分两行或多行书写。4通过Define语句定义标识符,它等价于一个特殊的值。例如:DefineMY_COLORl6711680(Mapbasic.def中用Define语句定义了许多标准MapBasic的标识符。其中包括许多常用

6、的颜色(例如BLACK,WHITE,RED,GREEN,BLUE,CYAN,MAGENTA和YELLOW)和其他标识符,只要在程序开头一般需要输入下语句,就可以任意地使用这些标识符了:Include“mapbasic.def”)5Include语句的语法:Include“filename”(这里filename是一个包含有MapBasic语句的文本文件。Filename还可以包括一个目录路径,如果没有指定路径,则编译器在当前工作目录寻找该文件,如果没有发现,则编译器又会在MapBasic安装目录下寻找)第7页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程

7、8)函数1、字符串常量:用两个英文双引号括起来表示的,双引号不是字符串的一部分,字符串常量最长可以有65535个字符。2、数值常量:数值常量又分为整型常数(整型常量)和实型常数(实型常量)。3、逻辑常量:逻辑常量只有两个值True和False。True为1,False为0。4、日期型常量:2008年12月31日可以用两种方法表示。用八位整数“YYYYMMDD”表示,如20081231。也可以用一个字符串表达式“MM/DDYYYY”表示,如12312008。二、Mapbasic基础第8页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数1、全局变量:在

8、程序中的任何过程中使用,用Global定义。2、局部变量:只能在定义它的函数或过程中使用,用Dim定义。规则:(1)变量名必须以字母、下划线“_”或者“”号开头,后面可跟字母、数字、下划线“_”和“#”,变量名最多可含31个字符。不能用MapBasic的关键词作为变量名。(2)MapBasic支持数值类型(如Interger,Float等)、字符类型(如string等)、对象类型(Object,Alias)、逻辑型(Logical)、日期型(如Date)和样式类型(如Pen,Brush,Font,Symbol等)。(3)变量先声明再使用,并且保证声明的类型正确。Dim声明局部变量(dimIas

9、integer),Global声明全局变量(globaliiasinteger)。(4)MapBasic中只能定义一维数组变量,定义数组变量的方法是在变量后面加一对圆括号,圆括号中设定数组长度。如果在定义数组变量时,没有定义大小则不能赋值,必须用ReDim重新定义大小后才能使用。(5)用TypeEndType语句可以定义一个用户数据类型(CustomDateTypes)。用户数据类型是一个或多个常规变量类型的组。一般情况下,把TypeEndType放在程序的开始处。二、Mapbasic基础第9页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数表达式

10、是由一个或多个常量、变量、函数、表和运算符组成的式子。表达式即可以简单到用一个常量表达,也可以由多个变量、常量、函数、表和操作符组成。例如:一条SQL表达式select*from表XXwhereType=8888二、Mapbasic基础第10页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数运算符是作用于一个或多个常量、变量或其他值,从而产生一个结果,它的表达形式可以是一个字符(如+、*、)、一个词(如:And、Or、Not)或者是一个词组(如:Contains)。算术运算符(常用的有:+(加法)、-(减法)、*(乘法)、/(除法)、(整除)、Mo

11、d(取余)、(乘方))字符串运算符(常用的有:+、&、Like)“+”和“&”可把两个或多个字符串连接为更长字符串;“Like”执行字符串比较。字符串可含有通配符“_”和“%”,“_”表任意一字符,“%”表任意一或多个字符。日期运算符(常用的有:加号“+”和减号“-”)一个日期型值加上(或减去)一个整数,将返回一个日期型值,表示该日期以后(或之前)的一个日期。两个日期型值相减将返回一个整型值,表示两个日期之间相隔的天数。比较运算符(常用的有:=、=、BetweenAnd)比较运算符通过比较两个相同类型的项产生一个逻辑值:TRUE或FASLE。逻辑运算符(常用的有:And、Or、Not)逻辑运算

12、符对两个逻辑值进行运算,结果仍产生一个逻辑值。地理运算符(常用的有:Contains、Within、Intersects)在Mapbasic中,可以使用下列地理运算符对表对象运算,其结果是产生一个逻辑值,例如:运算符返回TRUE的情况Contains第一个对象包含第二个对象的中心Intersects两个对象相交注意:运算符的优先级就是指在一个包含多个运算符的复杂表达式中,决定哪一个运算符优先被执行。MapBasic在同一行中的运算符的优先级顺序是:最高优先级:圆括号();乘方;*,Mod,+,-,字符串连接(+,&)地理运算符,比较运算符,LikeNotAnd最低优先级:Or二、Mapbasi

13、c基础第11页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数流控制结构语句将影响到程序中语句的执行顺序,MapBasic主要有以下三种类型的流控制结构语句:(1)分支语句(IF.Then、GoTo、DoCase)If.Then语句Do.Case语句GoTo语句(2)循环语句(For.Next、Do.Loop、Do.While)For.Next语句DoLoop语句While.Wend语句(3)提供流控制的其他语句(EndProgram)结束程序(EndProgram)结束程序并退出MapInfo(EndMapInfo)二、Mapbasic基础第12

14、页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数一个典型的MapBasic程序由许多过程组成,每个过程都包含一组完成某一特定任务的语句。(1)主过程与子过程每个MapBasic程序至少有一个主过程,其余的过程(称为子过程)都必须由主过程或别的子过程来调用,DeclareSub语句声明下面将定义一个主过程或子过程。(2)过程的调用当MapInfo运行一个已编译好的应用程序时,会自动调用主过程Main。在主过程中又可以通过Call语句调用其他子过程。(3)带参数的过程调用如果一个子过程带有参数,那么它们要在DeclareSub语句和SubEndSub

15、语句中先进行声明。声明的方法是在过程名后面加上一对圆括号,括号里列出参数名及其类型。(4)形式参数传递MapBasic过程参数是以形式参数的方法传递的,使用形式参数应遵循以下规则:在Call语句中必须指定一个变量名作为形式参数。如果被调用的子过程赋了一个新的值给形式参数,那么这个新的值将自动存到调用者的变量中。换句话说,子过程可以通过形式参数把值返回给调用者。二、Mapbasic基础第13页/共24页1)基本语法规则2)常量3)变量4)表达式5)运算符6)流程控制结构7)过程8)函数1、标准BASIC函数例如Asc()、Format()、Val()等。2、MapInfo或MapBasic特有函

16、数例如Distance()、ObjectLen()、ObjectGeography()等。3、自定义用户函数定义用户函数语句的语法如下:Functionname(ByValparameterAsdatatype,ByValparameterAsdatatype.)Asreturn_typestatement_listEndFunction注意:应用程序中可以定义与标准MapBasic函数同名的用户函数。当程序调用这个名字的函数时,真正被调用的是用户函数而不是标准函数。二、Mapbasic基础第14页/共24页、在讲实例之前,我们了解一下如何创建MapBasic程序:1)运行MapBasic开发

17、环境。2)选择FileNew打开一个编辑窗口。3)在编辑窗口中输入一个MapBasic程序(书写代码)。4)选择File Save,保存该文件,并为该文件输入一个文件名,后缀名为.mb。5)选择project Compile Current File,MapBasic将编译你的程序,并自动生成一个相应的可执行文件(后缀名为.mbx)。6)启动MapInfo系统。7)选择Maplnfo主菜单中的文件,运行MapBasic程序,MapInfo提示你选择一个你想运行的程序。注意:双击MapBasic执行文件,可自动打开Mapinfo并加载程序。三、Mapbasic实例第15页/共24页、快速浏览经典

18、的程序模板:Include“mapbasic.def”include语句,调用通用定义文件其他的Includc语句,如include“menu.def”Type End Type 语句 定义用户数据类型 Declare Sub语句 定义过程,最少都有一个主过程 Declare sub main Declare Function语句 定义用户函数 Define语句 定义标识符 Global语句 定义全局变量 接下来是主过程定义 Sub Main Dim语句 局部定义变量 End Sub .接着是其他的子过程定义 Sub.Dim语句 End Sub .用户函数定义.Function.Dim语句 E

19、nd Function 三、Mapbasic实例第16页/共24页实例1:最简单的Mapbasic程序实例要点:体现Mapbasic程序的简易性及局限性:不能脱离Mapinfo平台实例1程序源码实例1程序运行三、Mapbasic实例第17页/共24页实例2:选择不存在的表实例要点:错误捕捉及信息显示或打印、注释等实例2程序源码实例2程序运行三、Mapbasic实例第18页/共24页实例3:改变编辑图层实例要点:创建按钮;if语句,实现改变编辑图层等实例3程序源码实例3程序运行三、Mapbasic实例第19页/共24页实例4:批量紧缩表实例要点:菜单,快捷键,do循环,变量使用,功能实现等实例4

20、程序源码实例4程序运行三、Mapbasic实例第20页/共24页实例5:符号化实例要点:对图形对象的操作等实例5程序源码实例5程序运行三、Mapbasic实例第21页/共24页四、讨论1、充分利用mapinfo里的mapbasic窗口,从这里就可以得到有价值的源代码。2、设置快捷键:如果Mapinfo里的快捷键,你的程序也用到的话,一般还是默认原来的,要更改快捷键,可到安装目录下,打开后缀名为.MNU的,把其对应的快捷键取消。(一般直接用其他没用到的快捷键,快捷键设置也可以通过查看.MNU获得)3、利用DOS命令可以做很多事:创建目录runprogramcmd/cmkdird:tab生成文本runprogramcmdd:temp.txt调用其他执行程序runprogramcmd/cd:xxx.mde第22页/共24页完毕!谢谢!完毕!谢谢!第23页/共24页2023/3/23谢谢您的观看!第24页/共24页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁