《实习七总结任务与目标.ppt》由会员分享,可在线阅读,更多相关《实习七总结任务与目标.ppt(55页珍藏版)》请在三一办公上搜索。
1、实 习 七 总 结任务与目标,江苏省人口专题地图若干江苏省人口统计图,必要的准备工作,检查乡镇数据错误:重复数据、张冠李戴数据通过SQL查询获得县市人口统计数据,作为县市分区统计地图的专题数据,注意事项,表示方法的选择要科学图面视觉要美观结果保存为工作空间,第五章 GIS产品开发,GIS产品开发的一般步骤MapBasic编程设计,第一节 GIS产品开发的一般步骤,GIS产品开发可以分为四个主要步骤:,前期准备阶段,系统设计阶段,系统开发施工阶段,系统运行及维护阶段,前期准备阶段,立项调研可行性分析:经济、技术、法律、用户用户需求分析可利用资源、开发成本、开发进度、预期效益评估制定开发计划,系统
2、设计阶段,系统设计是GIS工程的技术核心总体设计/概要设计详细设计 对概要设计中每个模块要完成的工作进行具体的描述提供设计说明书,系统开发施工阶段,数据库的建立软件开发试运行、测试、调整撰写产品使用说明书,系统运行及维护阶段,产品投入正式使用,MapBasic编程设计,程序设计的一般规则MapBasic 基础MapBasic 菜单设计MapBasic 对话框设计MapBasic 按钮条设计窗口,用户界面主要内容,程序设计的一般规则,源程序文档化命名名副其实注释清楚明了视觉层次分明数据说明规范化语句结构简单、直观,第二节 MapBasic 基础,MapBasic 主要特色MapBasic 开发环
3、境MapBasic 语言结构,MapBasic语言结构,程序结构变量Define及Include语句表达式流程控制过程,变 量,变量的概念:在程序运行过程中将要发生变化的量变量命名规则变量类型变量的定义,MapBasic开发环境,MapBasic程序编辑(编辑器)生成后缀名为mb的文件,其大小限制为64K。MapBasic程序编译(编译器)生成后缀名为mbx的可执行文件连接多个模块成一个项目(链接器)联机帮助,MapBasic主要特色,功能强大,MapBasic提供了380多种函数和命令语句(联机帮助)。与其他应用程序链接扩展MapInfo功能,定制MapInfo的界面具有更强大的数据存取功能
4、一种类Basic语言,简单易学MapBasic在线帮助MapInfo的MapBasic交互命令窗口,Define 与Include语句,Define语句让你可以定义一个容易记忆的标识符,在编译时这个标识符被它的实际值所替代。语法:Define identifier definition Include语句:用以说明某文本文件为MapBasic程序的一部分。程序编译时,该文本文件的全部内容将被全部插入到程序源文件中。语法:Include filename,Mapbasic支持的变量类型,SmallInt 整型(2个字节)(-32767至+32767)Integer 整型(4个字节)(-21474
5、83647 至+2147483647)Float 浮点型(8个字节)String 可变长字符串(最多可有32767个字符)String*length 固定长字符串(最多可有32767个字符)Logical 逻辑型(TRUE或FALSE)Date 日期型(MM/DD/YYYY)Object 图形对象,MapBasic对各种变量的声明,Global name as string(全局变量)Dim x,y as float(局部变量)n as integer start_date(10)as dateRedim(扩充数组变量的长度)TypeEnd Type(用户数据类型)Undim x,y,变量命名
6、规则,每个变量名最多可以包含31个字符,可以包含字母、数字及多种符号变量名不能含有空格变量名不可以用数字开头,必须以字母、_、号开头可以包含$,%,&,!,#,and,但只能作为结束字符Mapbasic的关键字不能作为变量名:add,alter,call,dim,do,global,get,set,表达式,表示若干常量、变量及函数之关系的式子数学运算符:+、*、/、mod、等字符串运算符(&)、Like等日期运算符:、比较运算符=、=、BetweenAnd等逻辑运算符And、Or、Not 等地理运算符(图形操作符):,图形操作符,Contains 第一个对象包含第二个对象的中心Contain
7、Part第一个对象包含第二个对象的一部分Contain Entire第一个对象包含整个第二个对象Within第一个对象的中心在第二个对象内Partly Within第一个对象的一部分在第二个对象内Entirely Within第一个对象的完全在第二个对象内Intersects两个对象在某处相交,流 程 控 制,循环语句:1.For(Exit For).Next 2.DoLoop 3.WhileWend分支语句:1.IfThen 2.Do Case 3.Goto其它流程控制语句:1.End Program 2.Terminate Application 3.End Mapinfo,WhileWe
8、nd语句,While condition statement_list Wend,DoLoop语句,语法一Do statement_list Loop Until|While condition 语法二Do Until|While condition statement_list Loop,过 程,定义一个过程 Declare subsubEnd Sub调用过程Call退出过程Exit Sub主过程Main,过 程 示 例,declare sub maindeclare sub report_subsub main Alter Menu id 3 id 3=QueryAdd Weekly Re
9、portCalling report_subend subsub report_subNote Welcome to Report!end sub,ForNext 与 IfThen 语句,Open Table applpath+world as worlddim nrows,n as integerdim Max_pop,Min_pop as float Max_pop=0 Min_pop=2000000000 nrows=tableinfo(world,tab_info_nrows)for n=1 to nrows fetch rec n from world if Max_popworld
10、.pop_1994 then Min_pop=world.pop_1994 end if end if next,程 序 结 构,Include filename“Declare sub sub_procDeclare Function fnameDefine identifier definition Global var_name As var_type Dim var_name As var_type,Sub Main Dim var_name As var_type other statementsEnd SubSub sub_proc Dim other statementsEnd
11、SubFunction fname Dim other statementsEnd Function,全局级声明,主过程定义,其它过程定义,自定义函数,Do Case 语句,do case commandinfo(CMD_INFO_MENUITEM)case 1 select*from world where continent=asiainto 亚洲 map from 亚洲 max case 2 select*from world where continent=africa into 非洲 map from 非洲 max end case,第三节 MapBasic 菜单设计,一.事件驱动模
12、式1.鼠标点击等 产生事件例:当用户选择了一个菜单项时,我们说用户已经产生了一个菜单选择事件(Menu choose event);而当用户关闭了一个窗口时,我们说用户产生一个窗口关闭事件2.执行事件处理程序 事件被驱动例:若用户产生一个菜单选择事件,应用程序可能需要显示一个对话框;若用户产生一个窗口关闭事件,应用程序可能需要对一个菜单项灰化或隐藏整个菜单。,二.菜单术语,Menu Bar,Menu,Menu Item,三、编辑菜单条(Menu Bar),1.创建菜单条create menu bar as 分类查询,条件查询,分类统计,统计图,专题地图2.在菜单条上添加一个菜单Alter Me
13、nu bar Add maps 3.在菜单条上删除菜单Alter Menu Bar Remove help 4.恢复MapInfo原菜单条Create Menu Bar as Default,四、菜单(Menu)编辑,1.创建菜单 Create Menu maps As Layer Control Calling 8012.添加菜单项 Alter Menu table Add Color Coded Maps Calling 3073.删除菜单项 Alter Menu id 1 Remove 1044.改变菜单项状态 Alter Menu Item 1610 text 目标,第四节 MapBa
14、sic 对话框设计,一、MapInfo 对话框形式二、对话框语法三、对话框控件类型四、对话框变量传递,二、对话框语法,Dialog 语句 Dialog Title title Width w Height h Position x,y Calling handler Control control_clause Control control_clause.,Dialog Title 根据地块类型查找Control StaticTextTitle 请输入地块类型:Control EditTextInto s_LandTypeControl OkButtonTitle 查找Position 30
15、,30Control CancelButtonTitle 取消Position 90,30,三、对话框控件类型,命令按钮(Button)。包括一般命令按钮和OK按扭、Cancel按钮。它是最普通的对话框控件,每个对话框都至少有一个命令按钮。通过命令按钮可以让完成某一操作。静态文本框(StaticText)。通常提供一些文字说明,给用户提示,是一个非交互式控件。编辑文本框(EditText)。让用户直接在此区域输入一些信息。,单选按钮集(RadioGroup)。用来显示选项,每次只能选择一组选项中的一个,也就是说,当用户选择了某一选项,在该组的其它选项将自动失效。组合框(GroupBox)。将完
16、成某一功能的按钮用矩形框圈起来,并用文字加以描述,只是起一个分隔的作用。检查框(CheckBox)。通常用来提供Yes/No或True/False选项,可以用检查框来提供多项选择,从而在其中选择一项或多项。,列表框(ListBox)和多项列表框(MultiListBox)。通常提供一组信息,让用 户选择其中的一项或者多项。弹出式按钮(PopupMenu)。是一个右边带下箭头的按钮,当用户单击按钮时,将弹出一个文本列表,供用户选择。线型、填充图案、符号、字体选择按钮。MapInfo为图形对象专门提供的几个按钮,以便用户选择所需的图文式样(线型、填充图案、符号和字体),供绘图之用。,RadioGr
17、oup,EditText,GroupBox,StaticText,CheckBox,Button,penPicker,BrushPicker,Popupmenu,Listbox,请看示例程序,Prog11.mb,四、对话框变量传递,Into s_LandTypeReadControlValue()函数If CommandInfo(CMD_INFO_DLG_OK)ThenCall subSeach(s_LandType)End If Control OkButtonTitle“查找”Position 30,30Calling OkHandler,Sub SearchDialogDim s_Lan
18、dType As StringDialog Title“根据地块类型查找”Control StaticTextTitle“请输入地块类型:”Control EditTextInto s_LandTypeID 12Control OkButtonTitle“查找”Position 30,30Calling OkHandlerControl CancelButtonTitle“取消”Position 90,30,If CommandInfo(CMD_INFO_DLG_OK)ThenCall subSeach(s_LandType)End IfEnd SubSub OkHandlerIf ReadC
19、ontrolValue(12)=”ThenNote“请在编辑文本框中输入一地块类型!”Dialog PreserveEnd IfEnd Sub,第五节 MapBasic 按钮条设计,一、按钮条类型二、创建按钮条三、改动按钮条,一、按钮条类型,触发式按钮(PushButton),当用户单击一个触发式按钮时,按钮会弹回来,执行相应的处理程序。例如:图层控制按钮。开关式按钮(ToggleButton),当用户单开关式按钮时,按钮变成两种状态的一种,按下或没按下。例如:图例窗口显示/隐藏按钮。工具按钮(ToolButton),当用户单击工具按钮时,一个工具将处于激活状态,并将始终保持这种状态直到用户选
20、择了另外一个工具。例如:放大工具处于激活状态,并且用户在地图窗口、浏览窗口或布局窗口单击时,才会作出响应。,二、创建按钮条,Create ButtonPad Utils As PushButton HelpMsg“显示查询对话框”Calling button_sub_proc Icon MI_ICON_ZOOM_QUESTION ToolButton HelpMsg“新画一条路线”Calling tool_sub_proc Icon MI_ICON_CROSSHAIR DrawMode DM_CUSTOM_LINE,ToggleButton HelpMsg“切换开关状态”Calling tog
21、gle_prox_check Icon MI_ICON_RULER Check Title“用户工具”Width 3 Show,三、改动按钮条,1.删除按钮条上按钮 Alter ButtonPad ID 4 Remove 101 Alter ButtonPad ID 4 Remove 1022.添加按钮 Alter ButtonPad ID 2 Add ToolButton Calling DrawDoubleLine Icon Cursor DrawMode DM_CUSTOM_LINE HelpMessege 画一条双线n双线,3.隐藏按钮条 Alter ButtonPad ID 2 Hide4.重新显示按钮条 Alter ButtonPad ID 2 Show,第六节 窗口设置,Show or hide a window:Open Window,Close Window,Set WindowOpen a new window:Map,Browse,Graph,Layout,Create Redistricter,Create Legend,Create Cartographic Legend,