版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Mapbasic基础培训,主讲:HT,2020/6/24,北京长地万方科技有限公司,1,讲课主要内容,第一部分:Mapbasic简介 第二部分:Mapbasic基础 第三部分:Mapbasic实例 第四部分: 讨论,2020/6/24,北京长地万方科技有限公司,2,Mapbasic是Mapinfo公司在其桌面产品的基础上推出的二次开发工具,用于扩展MapInfo功能,实现程序的自动重复操作,并使MapInfo与其他应用软件集成等。,一、Mapbasic简介,MapBasic,MapX,MapXtreme,SpatialWare,MapX性能价格比较好,功能较强的OCX控件,在标准可视化开始环境
2、下(如VB,C+,.net等),通过其可以将地图对象嵌入到实际应用中。,MapXtreme是面向企业的基于Internet/Intranet的地图应用服务器.充分利用ISAPI,NSAP和CGI的优越性,并可在任务Web服务器上运行,与Web服务器和浏览器有较好的兼容性。,SpatialWare是在对象-关系数据库环境下,基于SQL进行空间查询和空间分析的空间信息管理系统。可将所有的空间数据作为对象进行存储,可以以现有的栅格图像文件为基础,利用Mapinfo专题图,山坡投影和着色技术生成三维图像。,2020/6/24,北京长地万方科技有限公司,3,一、Mapbasic简介,MapBasic 集
3、成环境与特征,文本编辑器,程序编译器,程序链接器,联机帮助,文本编辑器(Editor)用于程序的编辑与修改。,程序编译器(Compiler)用于源程序编译,以生成可执行程序。,程序链接器(Linker)用于将若干独立的模块链接成一个应用程序。,联机帮助(Help)则为程序员在线提供MapBasic的每条语句或函数的详细说明资料。,2020/6/24,北京长地万方科技有限公司,4,一、Mapbasic简介,MapBasic的文本编辑大小有限制,不能超过64KB,可用以下三种方法解决: 1、用其他的文本编辑器编辑程序文件,再用MapBasic的FileCompile From File编译该程序。
4、 2、把一个大的程序文件(.mb文件)分成两个或多个较小的文件,然后用MapBasic的Include语句把多个文件组合成一个应用程序。 3、将一个大的程序文件(.mb文件)分成两个或多个较小的文件,然后通过一个项目文件(Project File)把这些小文件连接成一个应用程序。在某种程度上它与方法二有些相似,但方法三使用起来更有效,因为它可以单独编译每个模块,这就意味着如果你只修改了其中的一个模块,那么你只要对该模块进行重新编译就可以了,2020/6/24,北京长地万方科技有限公司,5,1、了解Mapbasic最基础的内容。(请参阅下页第二部分内容) 2、充分利用自带帮助文档。(MapBas
5、ic提供了380多种函数和命令语句,可参见Mapbasic参考手册) 3、借助Mapinfo的mapbasic窗口。(在Mapinfo每操作一步,源代码基本显示在mapbasic窗口,为mapbasic开发中最常用辅助方式,如下图:),一、Mapbasic简介,学习MapBasic开发一般方法:,2020/6/24,北京长地万方科技有限公司,6,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,7,二、Mapbasic基础,1)基本语法规则 2)常量 3)变量 4)表达式
6、5)运算符 6)流程控制结构 7)过程 8)函数,1注释用英文单引号“”来标记注释语句。 2程序输写不分大小写。 3一条语句可分两行或多行书写。 4通过Define语句定义标识符,它等价于一个特殊的值。 例如:Define MY_COLOR l6711680 (Mapbasic.def中用Define语句定义了许多标准MapBasic的标识符。其中包括许多常用的颜色(例如BLACK,WHITE,RED,GREEN,BLUE, CYAN,MAGENTA和YELLOW) 和其他标识符,只要在程序开头一般需要输入下语句,就可以任意地使用这些标识符了:Include “mapbasic.def”) 5
7、Include语句的语法: Include “filename” (这里filename是一个包含有MapBasic语句的文本文件。Filename还可以包括一个目录路径,如果没有指定路径,则编译器在当前工作目录寻找该文件,如果没有发现,则编译器又会在MapBasic安装目录下寻找),2020/6/24,北京长地万方科技有限公司,8,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,1、字符串常量: 用两个英文双引号括起来表示的,双引号不是字符串的一部分,字符串常量最长可以有65535个字符。 2、数值常量: 数值常量又分为整型常数(整型常量)
8、和实型常数(实型常量)。 3、逻辑常量: 逻辑常量只有两个值True和False。 True为1, False为0。 4、日期型常量: 2008年12月31日可以用两种方法表示。用八位整数“YYYYMMDD”表示,如20081231。也可以用一个字符串表达式“MM/DDYYYY”表示,如12312008。,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,9,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,1、全局变量: 在程序中的任何过程中使用,用Global定义。 2、局部变量: 只能在定义它的函数或过程中使用,用D
9、im定义。 规则: (1)变量名必须以字母、下划线“_”或者“”号开头,后面可跟字母、数字、下划线“_”和“#”,变量名最多可含31个字符。不能用MapBasic的关键词作为变量名。 (2)MapBasic支持数值类型(如Interger,Float等)、字符类型(如string等)、对象类型(Object, Alias)、逻辑型(Logical)、日期型(如Date)和样式类型(如Pen,Brush,Font,Symbol等)。 (3)变量先声明再使用,并且保证声明的类型正确。Dim声明局部变量(dim I as integer),Global声明全局变量(global ii as inte
10、ger)。 (4) MapBasic中只能定义一维数组变量,定义数组变量的方法是在变量后面加一对圆括号,圆括号中设定数组长度。如果在定义数组变量时,没有定义大小则不能赋值,必须用ReDim重新定义大小后才能使用。 (5)用Type End Type语句可以定义一个用户数据类型(Custom Date Types)。用户数据类型是一个或多个常规变量类型的组。一般情况下,把Type End Type放在程序的开始处。,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,10,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,表达
11、式是由一个或多个常量、变量、函数、表和运算符组成的式子。 表达式即可以简单到用一个常量表达,也可以由多个变量、常量、函数、表和操作符组成。 例如:一条SQL表达式 select * from 表XX where Type=8888,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,11,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,运算符是作用于一个或多个常量、变量或其他值,从而产生一个结果,它的表达形式可以是一个字符(如+、*、)、一个词(如:And、Or、Not) 或者是一个词组(如:Contains)。 算术运算
12、符(常用的有:+(加法)、-(减法)、*(乘法)、/(除法)、(整除)、Mod(取余)、(乘方)) 字符串运算符(常用的有:+、&、Like) “+”和“&” 可把两个或多个字符串连接为更长字符串; “Like” 执行字符串比较。字符串可含有通配符“_”和“%”, “_” 表任意一字符, “%”表任意一或多个字符。 日期运算符(常用的有:加号“+”和减号“-”) 一个日期型值加上(或减去)一个整数,将返回一个日期型值,表示该日期以后(或之前)的一个日期。 两个日期型值相减将返回一个整型值,表示两个日期之间相隔的天数。 比较运算符(常用的有:=、=、BetweenAnd) 比较运算符通过比较两个
13、相同类型的项产生一个逻辑值:TRUE或FASLE。 逻辑运算符(常用的有: And、Or、Not) 逻辑运算符对两个逻辑值进行运算,结果仍产生一个逻辑值。 地理运算符(常用的有:Contains 、Within 、Intersects ) 在Mapbasic中,可以使用下列地理运算符对表对象运算,其结果是产生一个逻辑值,例如: 运算符 返回TRUE的情况 Contains 第一个对象包含第二个对象的中心 Intersects 两个对象相交 注意: 运算符的优先级就是指在一个包含多个运算符的复杂表达式中,决定哪一个运算符优先被执行。 MapBasic在同一行中的运算符的优先级顺序是: 最高优先级
14、:圆括号(); 乘方 ; *,Mod, +,-, 字符串连接(+,&) 地理运算符,比较运算符,Like Not And 最低优先级:Or,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,12,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,流控制结构语句将影响到程序中语句的执行顺序,MapBasic主要有以下三种类型的流控制结构语句: (1)分支语句(IF.Then、GoTo、Do Case) If.Then语句 Do.Case语句 GoTo语句 (2)循环语句(For.Next、Do.Loop、Do.While)
15、For.Next 语句 DoLoop语句 While.Wend语句 (3)提供流控制的其他语句(End Program) 结束程序(End Program) 结束程序并退出MapInfo(End MapInfo),二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,13,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,一个典型的MapBasic程序由许多过程组成,每个过程都包含一组完成某一特定任务的语句。 (1)主过程与子过程 每个MapBasic程序至少有一个主过程,其余的过程(称为子过程)都必须由主过程或别的子过程来调
16、用 ,Declare Sub语句声明下面将定义一个主过程或子过程 。 (2)过程的调用 当MapInfo运行一个已编译好的应用程序时,会自动调用主过程Main。在主过程中又可以通过Call语句调用其他子过程。 (3)带参数的过程调用 如果一个子过程带有参数,那么它们要在Declare Sub语句和SubEnd Sub语句中先进行声明。声明的方法是在过程名后面加上一对圆括号,括号里列出参数名及其类型。 (4)形式参数传递 MapBasic过程参数是以形式参数的方法传递的,使用形式参数应遵循以下规则: 在Call语句中必须指定一个变量名作为形式参数。 如果被调用的子过程赋了一个新的值给形式参数,那
17、么这个新的值将自动存到调用者的变量中。换句话说,子过程可以通过形式参数把值返回给调用者。,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,14,1)基本语法规则 2)常量 3)变量 4)表达式 5)运算符 6)流程控制结构 7)过程 8)函数,1、标准BASIC函数 例如Asc()、Format()、Val()等。 2、MapInfo或MapBasic特有函数 例如Distance()、ObjectLen()、ObjectGeography()等。 3、自定义用户函数 定义用户函数语句的语法如下: Function name (ByVal parameter As da
18、tatype ,ByVal parameter As datatype.) As return_type statement_list End Function 注意: 应用程序中可以定义与标准MapBasic函数同名的用户函数。当程序调用这个名字的函数时,真正被调用的是用户函数而不是标准函数。,二、Mapbasic基础,2020/6/24,北京长地万方科技有限公司,15,、在讲实例之前,我们了解一下如何创建MapBasic程序: 1)运行MapBasic开发环境。 2)选择FileNew打开一个编辑窗口。 3)在编辑窗口中输入一个MapBasic程序(书写代码)。 4)选择File Save
19、,保存该文件,并为该文件输入一个文件名,后缀名为.mb。 5)选择project Compile Current File ,MapBasic将编译你的程序,并自动生成一个相应的可执行文件(后缀名为.mbx)。 6)启动MapInfo系统。 7)选择Maplnfo主菜单中的文件,运行MapBasic程序,MapInfo提示你选择一个你想运行的程序。 注意:双击MapBasic执行文件,可自动打开Mapinfo并加载程序。,三、Mapbasic实例,2020/6/24,北京长地万方科技有限公司,16,、快速浏览经典的程序模板: Include “mapbasic.def” include语句,调
20、用通用定义文件 其他的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语句 End Function,三、Mapbasic实例,2020/6/24,北京长地万方科技有限公司,17,实例1: 最简单的Mapbasic程序 实例要点:体现Mapbasic程序的简易性及局限性:不能脱离Mapinfo平台 实例1程序源码 实例1程序运行,三、Mapbasic实例,2020/6/24,北京长地万方科技有限公司,18,实例2: 选择不存在的表 实例要点:错误捕捉及信息显示或打印、注释等 实例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年药物经济学评价在药品定价中的应用
- 2026年智能门铃异业联盟合作方案
- 2026年农业技术市场现状分析报告
- 2026年物流配货工试题及答案解析
- 孵化中心体系研究报告
- 客流空间分布研究报告
- 教学课堂错误案例研究报告
- 横店东磁品牌研究报告
- 关于护城河的研究报告
- 股票期权营销策略研究报告
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 法拍司辅内部管理制度
- 高中数学三年教学规划
- 保卫科部门绩效考核标准
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
- 数字化转型战略规划纲要
- 国家安全教育大学生读本课件高教2024年8月版课件-第四章坚持以人民安全为宗旨
- 数字化全过程成本管理
- 二级烟草专卖管理师理论考试题库
- 2024年全国中学生生物学联赛试题含答案
评论
0/150
提交评论