




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Mapbasic基础培训 主讲 HT 讲课主要内容 第一部分 Mapbasic简介第二部分 Mapbasic基础第三部分 Mapbasic实例第四部分 讨论 Mapbasic是Mapinfo公司在其桌面产品的基础上推出的二次开发工具 用于扩展MapInfo功能 实现程序的自动重复操作 并使MapInfo与其他应用软件集成等 一 Mapbasic简介 MapBasic MapX MapXtreme SpatialWare MapX性能价格比较好 功能较强的OCX控件 在标准可视化开始环境下 如VB C net等 通过其可以将地图对象嵌入到实际应用中 MapXtreme是面向企业的基于Internet Intranet的地图应用服务器 充分利用ISAPI NSAP和CGI的优越性 并可在任务Web服务器上运行 与Web服务器和浏览器有较好的兼容性 SpatialWare是在对象 关系数据库环境下 基于SQL进行空间查询和空间分析的空间信息管理系统 可将所有的空间数据作为对象进行存储 可以以现有的栅格图像文件为基础 利用Mapinfo专题图 山坡投影和着色技术生成三维图像 一 Mapbasic简介 MapBasic集成环境与特征 文本编辑器 程序编译器 程序链接器 联机帮助 文本编辑器 Editor 用于程序的编辑与修改 程序编译器 Compiler 用于源程序编译 以生成可执行程序 程序链接器 Linker 用于将若干独立的模块链接成一个应用程序 联机帮助 Help 则为程序员在线提供MapBasic的每条语句或函数的详细说明资料 一 Mapbasic简介 MapBasic的文本编辑大小有限制 不能超过64KB 可用以下三种方法解决 1 用其他的文本编辑器编辑程序文件 再用MapBasic的 File CompileFromFile 编译该程序 2 把一个大的程序文件 mb文件 分成两个或多个较小的文件 然后用MapBasic的Include语句把多个文件组合成一个应用程序 3 将一个大的程序文件 mb文件 分成两个或多个较小的文件 然后通过一个项目文件 ProjectFile 把这些小文件连接成一个应用程序 在某种程度上它与方法二有些相似 但方法三使用起来更有效 因为它可以单独编译每个模块 这就意味着如果你只修改了其中的一个模块 那么你只要对该模块进行重新编译就可以了 1 了解Mapbasic最基础的内容 请参阅下页第二部分内容 2 充分利用自带帮助文档 MapBasic提供了380多种函数和命令语句 可参见 Mapbasic参考手册 3 借助Mapinfo的mapbasic窗口 在Mapinfo每操作一步 源代码基本显示在mapbasic窗口 为mapbasic开发中最常用辅助方式 如下图 一 Mapbasic简介 学习MapBasic开发一般方法 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 二 Mapbasic基础 二 Mapbasic基础 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 1 注释用英文单引号 来标记注释语句 2 程序输写不分大小写 3 一条语句可分两行或多行书写 4 通过Define语句定义标识符 它等价于一个特殊的值 例如 DefineMY COLORl6711680 Mapbasic def中用Define语句定义了许多标准MapBasic的标识符 其中包括许多常用的颜色 例如BLACK WHITE RED GREEN BLUE CYAN MAGENTA和YELLOW 和其他标识符 只要在程序开头一般需要输入下语句 就可以任意地使用这些标识符了 Include mapbasic def 5 Include语句的语法 Include filename 这里filename是一个包含有MapBasic语句的文本文件 Filename还可以包括一个目录路径 如果没有指定路径 则编译器在当前工作目录寻找该文件 如果没有发现 则编译器又会在MapBasic安装目录下寻找 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 1 字符串常量 用两个英文双引号括起来表示的 双引号不是字符串的一部分 字符串常量最长可以有65535个字符 2 数值常量 数值常量又分为整型常数 整型常量 和实型常数 实型常量 3 逻辑常量 逻辑常量只有两个值True和False True为1 False为0 4 日期型常量 2008年12月31日可以用两种方法表示 用八位整数 YYYYMMDD 表示 如20081231 也可以用一个字符串表达式 MM DD YYYY 表示 如12 31 2008 二 Mapbasic基础 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 1 全局变量 在程序中的任何过程中使用 用Global定义 2 局部变量 只能在定义它的函数或过程中使用 用Dim定义 规则 1 变量名必须以字母 下划线 或者 号开头 后面可跟字母 数字 下划线 和 变量名最多可含31个字符 不能用MapBasic的关键词作为变量名 2 MapBasic支持数值类型 如Interger Float等 字符类型 如string等 对象类型 Object Alias 逻辑型 Logical 日期型 如Date 和样式类型 如Pen Brush Font Symbol等 3 变量先声明再使用 并且保证声明的类型正确 Dim声明局部变量 dimIasinteger Global声明全局变量 globaliiasinteger 4 MapBasic中只能定义一维数组变量 定义数组变量的方法是在变量后面加一对圆括号 圆括号中设定数组长度 如果在定义数组变量时 没有定义大小则不能赋值 必须用ReDim重新定义大小后才能使用 5 用Type EndType语句可以定义一个用户数据类型 CustomDateTypes 用户数据类型是一个或多个常规变量类型的组 一般情况下 把Type EndType放在程序的开始处 二 Mapbasic基础 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 表达式是由一个或多个常量 变量 函数 表和运算符组成的式子 表达式即可以简单到用一个常量表达 也可以由多个变量 常量 函数 表和操作符组成 例如 一条SQL表达式select from表XXwhereType 8888 二 Mapbasic基础 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 运算符是作用于一个或多个常量 变量或其他值 从而产生一个结果 它的表达形式可以是一个字符 如 一个词 如 And Or Not 或者是一个词组 如 Contains 算术运算符 常用的有 加法 减法 乘法 除法 整除 Mod 取余 乘方 字符串运算符 常用的有 Like 和 可把两个或多个字符串连接为更长字符串 Like 执行字符串比较 字符串可含有通配符 和 表任意一字符 表任意一或多个字符 日期运算符 常用的有 加号 和减号 一个日期型值加上 或减去 一个整数 将返回一个日期型值 表示该日期以后 或之前 的一个日期 两个日期型值相减将返回一个整型值 表示两个日期之间相隔的天数 比较运算符 常用的有 Between And 比较运算符通过比较两个相同类型的项产生一个逻辑值 TRUE或FASLE 逻辑运算符 常用的有 And Or Not 逻辑运算符对两个逻辑值进行运算 结果仍产生一个逻辑值 地理运算符 常用的有 Contains Within Intersects 在Mapbasic中 可以使用下列地理运算符对表对象运算 其结果是产生一个逻辑值 例如 运算符返回TRUE的情况Contains第一个对象包含第二个对象的中心Intersects两个对象相交注意 运算符的优先级就是指在一个包含多个运算符的复杂表达式中 决定哪一个运算符优先被执行 MapBasic在同一行中的运算符的优先级顺序是 最高优先级 圆括号 乘方 Mod 字符串连接 地理运算符 比较运算符 LikeNotAnd最低优先级 Or 二 Mapbasic基础 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语句 Do Loop语句 While Wend语句 3 提供流控制的其他语句 EndProgram 结束程序 EndProgram 结束程序并退出MapInfo EndMapInfo 二 Mapbasic基础 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 一个典型的MapBasic程序由许多过程组成 每个过程都包含一组完成某一特定任务的语句 1 主过程与子过程每个MapBasic程序至少有一个主过程 其余的过程 称为子过程 都必须由主过程或别的子过程来调用 DeclareSub语句声明下面将定义一个主过程或子过程 2 过程的调用当MapInfo运行一个已编译好的应用程序时 会自动调用主过程Main 在主过程中又可以通过Call语句调用其他子过程 3 带参数的过程调用如果一个子过程带有参数 那么它们要在DeclareSub语句和Sub EndSub语句中先进行声明 声明的方法是在过程名后面加上一对圆括号 括号里列出参数名及其类型 4 形式参数传递MapBasic过程参数是以形式参数的方法传递的 使用形式参数应遵循以下规则 在Call语句中必须指定一个变量名作为形式参数 如果被调用的子过程赋了一个新的值给形式参数 那么这个新的值将自动存到调用者的变量中 换句话说 子过程可以通过形式参数把值返回给调用者 二 Mapbasic基础 1 基本语法规则2 常量3 变量4 表达式5 运算符6 流程控制结构7 过程8 函数 1 标准BASIC函数例如Asc Format Val 等 2 MapInfo或MapBasic特有函数例如Distance ObjectLen ObjectGeography 等 3 自定义用户函数定义用户函数语句的语法如下 Functionname ByVal parameterAsdatatype ByVal parameterAsdatatype Asreturn typestatement listEndFunction注意 应用程序中可以定义与标准MapBasic函数同名的用户函数 当程序调用这个名字的函数时 真正被调用的是用户函数而不是标准函数 二 Mapbasic基础 在讲实例之前 我们了解一下如何创建MapBasic程序 1 运行MapBasic开发环境 2 选择 File New 打开一个编辑窗口 3 在编辑窗口中输入一个MapBasic程序 书写代码 4 选择 File Save 保存该文件 并为该文件输入一个文件名 后缀名为 mb 5 选择 project CompileCurrentFile MapBasic将编译你的程序 并自动生成一个相应的可执行文件 后缀名为 mbx 6 启动MapInfo系统 7 选择Maplnfo主菜单中的 文件 运行MapBasic程序 MapInfo提示你选择一个你想运行的程序 注意 双击MapBasic执行文件 可自动打开Mapinfo并加载程序 三 Mapbasic实例 快速浏览经典的程序模板 Include mapbasic def include语句 调用通用定义文件 其他的Includc语句 如include menu def Type EndType语句 定义用户数据类型DeclareSub语句 定义过程 最少都有一个主过程DeclaresubmainDeclareFunction语句 定义用户函数Define语句 定义标识符Global语句 定义全局变量 接下来是主过程定义 SubMainDim语句 局部定义变量EndSub 接着是其他的子过程定义Sub Dim语句EndSub 用户函数定义 Function Dim语句EndFunction 三 Mapbasic实例 实例1 最简单的Mapbasic程序实例要点 体现Mapbasic程序的简易性及局限性 不能脱离Mapinfo平台实例1程序源码实例1程序运行 三 Mapbasic实例 实例2 选择不存在的表实例要点 错误捕捉及信息显示或打印 注释等实例2程序源码实例2程序运行 三 Mapbasic实例 实例3 改变编辑图层实例要点 创建按钮 if语句 实现改变编辑图层等实例3程序源码实例3程序运行 三 Mapbasic实例 实例4 批量紧缩表实例要点 菜单 快捷键 do循环 变量使用 功能实现等实例4程序源码实例4程序运行 三 Mapbasic实例 实例5 符号化实例要点 对图形对象的操作等实例5程序源码实例5程序运行 三 Mapba
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业协作模式对土砂石开采环境影响的探讨-洞察阐释
- 湖南工商大学《场地规划与设计》2023-2024学年第二学期期末试卷
- 岩本智能科技(苏州)有限公司介绍企业发展分析报告模板
- 兰州资源环境职业技术大学《科技英语写作与沟通》2023-2024学年第二学期期末试卷
- 电子科技大学《三笔字》2023-2024学年第二学期期末试卷
- 湖北恩施学院《英语国家概况二》2023-2024学年第二学期期末试卷
- 武昌首义学院《当代绘画主题创作》2023-2024学年第二学期期末试卷
- 郑州西亚斯学院《朝鲜语论文写作与研究方法导论》2023-2024学年第二学期期末试卷
- 合肥经济学院《钢琴基础理论》2023-2024学年第二学期期末试卷
- 电子科技大学成都学院《中学数学案例分析》2023-2024学年第二学期期末试卷
- 2025至2030中国年龄相关性黄斑变性行业产业运行态势及投资规划深度研究报告
- 2025年河北省中考麒麟卷生物(一)及答案
- 2025年河北省万唯中考定心卷地理(一)
- 创造性思维与创新方法(大连民族大学)知到网课答案
- 2024北京西城区四年级(下)期末数学试题及答案
- 中国慢性阻塞性肺疾病基层诊疗指南(2024年)解读
- PCO行业卫生杀虫剂[通用]
- 铝合金门窗钢副框安装过程图解1课件
- (演唱)大母鸡花公鸡
- XY-44C型立轴式岩芯钻机使用说明书
- 药物溶出度数据处理软件
评论
0/150
提交评论