版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——Mapinfo中准确输入点线面的方法
Mapinfo中确切输入点、线、面的方法
Mapinfo中确切输入点、线、面的方法
2023-10-7新闻来源:广西基础地理信息中心浏览人数:608发表评论查看评论
本文旨在说明在Mapinfo能够实现确切输入点、线、面的方法。
MapBasic对象方法
1、引言
目前,地理信息产品软件种类繁多,其中Mapinfo越来越受到国人的青睐,它不仅广泛应用于测绘、土地、水利、城建规划等部门,还广泛应用于商业部门。以其卓越的功能及较小的体积受广大用户使用。但美中之不足就是没有现成的确切输入图形对象的方法。有好多用户感到惋惜。我经过一段时间的摸索,找到了这种方法。现以Mapinfo编程工具MapBasic,简单制作了在Mapinfo中确切输入图形元素的方法,以供对Mapinfo感兴趣的读者。
2、建立界面准备
MapBasic语言中能够用坐标输入地理对象的种类和方法见下表一。
对象
方法
文本
CreateText,CreateText
点符号
CreatePoint,CreatePoint
直线
CreateLine,CreateLine
圆
CreateCircle,
矩形
CreateRect
圆角矩形
CreateRoundRect
弧
CreateArc
椭圆
CreateEllipse
多折线
CreatePline
面域
CreateRegion
表一
图一
椭圆和矩形的方法分别能生成圆和正方形,由于圆和正方形分别是椭圆和矩形的一个特例。
MapBasic编程工具,麻雀虽小却五脏具全。MapBasic能够生成很好的用户界面,一般常用的控件均有相应的语句生成,表二是能够生成的控件。
控件名称
用途
Button/OKButton/CancelButton
按扭;确定按钮;取消按钮
CheckBox
复式选择
EditBox
编辑文本
GroupBox
分类框架
ListBox,MultiListBox
从列表框中单项选择或多项选择
PenPicker/BrushPicker/SymbolPicker/FontPicker
选择线;填充;点;文本风格
RodioGroup
单项选择按钮
StaticText
标签文本
PopupMenu
下拉式列表选择
表二
虽然MapBasic提供了诸多种控件生成语句,但生成的界面还是不够理想,不尽人意,创立比较麻烦、费时。要想获得更友好的界面,建议用其它可视化高级语言生成对话框界面作为.dll(动态连接库),在Mapbasic中调用。
3、建立程序过程
3.1对话框的建立
用Dialog语句建立一个用户对话框,Contr
ol从句建立一个静态文本,一个文本编辑框,两个命令按钮。详细见程序清单及图一。
3.2工作原理分析
当用户单击OK按钮时程序处理文本编辑框内用户所输入的数据。编辑框内的数据由于是字符串型,所以必需转换为表示坐标点的实数值。转换方法有两种:其一,用分解字符串法。由于编
Mapinfo中确切输入点、线、面的方法
辑框的内容是存入一个字符串变量中,所以分开出X,Y坐标是一个必要工序。其二,建立一个临时文件作为交换区,把EditBox中的内容写入磁盘,然后再读出。本例用此方法,此法比较简单,程序代码简小,通俗易懂。
程序流程图
3.3数据格式和输入方法
数据格式要求,X坐标和Y坐标间用逗号分隔。直接输入法如需要换行时用Ctrl+Enter换行。如:
4568.598,5698.365
4575.657,5645.698
4598.247,5605.257
只要数据格式一致,数据源可以接受来自电子手簿或其他应用软件。最好用其他文字编辑器按格式输入坐标点后,拷贝到程序文本编辑框即可,避免直接输入失手。
3.4本程序的优点
本程序代码简小,通俗易懂,不需要读者具有深厚的编程基础。程序界面友好,操作简单明白。输入坐标点数是动态确定的,地图元素生成速度快。能使Mapinfo象AutoCAD一样,实现了确切坐标输入对象的方法。比较适合于地图的局部修测与更新维护等。
3.5本程序的缺点
本程序虽然较便利地实现了动态输入线对象。但还是存在不足。用户界面是用MapBasic语言生成,比较单调,不能跟其它可视化高级语言相比。能输入的坐标点数有限制性。以上曾提到过,用户是把坐标输入编辑框的,而编辑框数据是存入一个String型变量中,然而变量和EditBox控件容量是有限的。MapBasic中一个EditBox的最大容量为32767个字符,一个String变量最大长度等于32767个字节,假设一个坐标点最长字符串为24个字符算(XY坐标值字节数加一逗号加回车换行符),则32767/24约1300个坐标点。即用户一次输入点数不应大于1300个点,一般状况下已满足需要。假使你输入的坐标值位数比较短小,只要到千位数,那么你将可以输入远多于1300个坐标点。为了程序的简明,本例不参与属性的输入和线型及填充图案等代码,同时也不设置错误陷阱。
4、终止语
利用MapBasic编程工具编写确切输入面域对象也很简单,只要把本程序中Createplineintovariablemyobj改为CreateRegionintovariablemyobj重新编译即可。对于输入点、圆等其它对象都比较简单,这里不赘述,感兴趣的读者自行编写。
附:程序清单。
IncludeMAPBASIC.DEF'包含mapbasic标准定义
Declaresubmain
Submain
dimvalasstring
dimdirasstring
dimxasfloat,yasfloat
dimmyobjasobject
'生成对话框界面
dialog
width120height180title确切输入多折线
controlstatictext'控件描述
position16,6width90height8
ID1
ti
Mapinfo中确切输入点、线、面的方法
tleX,Y(Ctrl+Enter换行)
controledittext
position16,16width90height140
ID2
value
intoval
controlokbutton
controlcancelbutton
ifcommandinfo(CMD_INFO_DLG_OK)then'用户单击OK按钮
dir=TempFileName$(dir)'返回一个临时文件
openfiledirforoutputas#1'以写入TEXT控件数据
print#1,val
closefile#1
openfiledirforinputas#1
SetMapXYUnitsmDistanceUnitsmAreaUnitssqm
CoordSysNonEarthUnitsm'设置坐标系统和距离单位
'用变量建立一个零个节点的Pline对象
CreateplineIntoVariablemyobj0
whilenoteof(1)'循环读入数据构造Pline数据
input,#1,x,y
AlterObjectmyobj
NodeAdd(x,y)
wend
closefile#1
killdir'删除临时文件
AlterObjectmyobj'删除最终多余的一个点
Noderemoveposition1,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T-ZZB 2999-2022 法兰和对焊连接耐腐闸阀
- 2026烤漆印花工艺门项目商业计划书之数码喷印替代传统转印的成本效益深度研究报告
- 2026消费分级趋势下黑牡丹资料架项目高端定制化服务与社群运营模式创新报告
- 2026-2027学年第一学期小学名班主任工作室经验交流课件:单亲家庭学生的教育策略
- 2026年城市亮化工程中的传统文化元素创新表达
- 2026欧盟REACH法规更新对中国丁基密封胶出口合规性挑战与应对策略研报
- 2026新型软磁复合材料替代传统偏转线圈铁芯深度研究
- R语言和统计软件
- 2026吉林机关事业单位工人技术等级考试(高级电焊工)历年参考题库含答案详解
- 2026口腔医学期末复习-药理学(口腔医学)历年题库含答案详解
- 2026年基层医疗机构药品配备使用管理规范考试试卷试题及答案
- 2026年高中师德师风专题学习课件
- 肺动脉高压诊疗指南(2025版)
- 水发集团笔试试题及答案
- WJT9109-2026《工业电子雷管生产技术要求》
- 洗胃机急救操作完整流程
- 医院共青团工作制度制度
- 广铁机考题目
- 酒店好评培训
- 寿险公司反洗钱培训课件
- 广东工勤人员管理办法
评论
0/150
提交评论