Mapbasic
用2007画扇区源码-mapbasic

Create Menu "CELL工具" As
"导入excel表" Calling 导入程序
Alter Menu Bar Add "CELL工具"
End Sub
Sub 导入程序
Dim sxls,stab,基站类型,是否室内外 as String
Dim i,j As Integer
Else
getArcENDX=0
End If
End Function
Function getArcENDY(byval obj as object) as float
If objectinfo(obj,OBJ_INFO_TYPE )=1 then
'此处的方向角是经过处理后的方向角
Create Arc into Variable arc_obj (minx,miny) (maxx,maxy) start_angle end_angle
dim xx1,yy1,xx2,yy2 as float
Exit sub
End If
Register Table sxls TYPE XLS Titles Range "工参" Into stab
Open Table stab as ~xls
Create Map For ~xls
i=1
j=TableInfo(~xls,TAB_INFO_NROWS)'表的行数
End If
End Function
End If
stab=PathToFileName$(sxls)
stab=left$(stab,len(stab)-4)&"TAB"
(完整word版)MapBasic中文参考手册

Mapbasic中文参考手册******************************************************************************* 一从功能查函数和语句二各个语句和函数的功能说明三参考手册原文关于句法字体的约定******************************************************************************* Mapbasic参考手册索引这本手册对MapBasic 编程语言中的每个语句和函数都进行了详细说明, 要学习MapBasic 语言编程的基本概念或者要学习开发环境的应用,请参考《用户手册》。
******************************************************************************* 1、Mapbasic语言概述 (2)1.1、基本语法 (2)1.1.1、变量 (2)1.1.2、循环和分枝 (2)1.1.3、输出和打印 (3)1.1.4、过程(Main和Sub) (3)1.1.5、错误处理 (3)1.2、函数 (3)1.2.1、定制函数 (3)1.2.2、数据转换函数 (3)1.2.3、日期和时间函数 (4)1.2.4、数学函数 (4)1.2.5、字符串函数 (4)1.3、表的操作 (4)1.3.1、建立和编辑表 (4)1.3.2、表的查询 (5)1.3.3、远程数据操作 (5)1.4、非表文件操作 (5)1.4.1、文件的输入与输出 (5)1.4.2、文件与目录 (6)1.5、Map和Graphy对象的操作 (6)1.5.1、创建Map对象 (6)1.5.2、编辑Map对象 (6)1.5.3、查询Map对象 (7)1.5.4、对象样式的操作 (7)1.5.5、Map窗的操作 (7)1.6建立用户介面 (7)1.6.1、按钮板(工具条) (7)1.6.2、对话框 (8)1.6.3、菜单 (8)1.6.4、窗口 (8)1.6.5、系统事件处理器 (8)1.7、与别的应用程序的通讯 (9)1.7.1、DDE(动态数据交换,仅Windows) (9)1.7.2、集成图(只限在Windows下) (9)1.7.3、苹果机事件(只限在Macintosh下) (9)1.8、特殊语句和函数 (9)2、Mapbasic各函数和语句的名称及其作用 (10)2.1、A (10)2.2、B (10)2.3、C (11)2.4、D (12)2.5、E (13)2.6、F (13)2.7、G (14)2.8、H---K (14)2.9、L (14)2.10、M (14)2.11、N (15)2.12、O (15)2.13、P (16)2.14、R (16)2.15、S (17)2.16、T (19)2.17、U (19)2.18、V---Y (19)3、约定 (20)******************************************************************************* 1、Mapbasic语言概述1.1、基本语法1.1.1、变量声明局部变量和全局变量Dim,Global扩大或缩小数组变量Redim,Ubound(),UnDim声明定制的数据结构Type1.1.2、循环和分枝循环For...Next,Exit for,Do...Loop,Exit Do,While...Wend分支If...Then,Do Case,Go To其它流程控制End Program,Terminate Application,End Mapinfo1.1.3、输出和打印打印窗口内容PrintWin输出文本到信息窗口Print设置页面窗口Layout,Create Frame,Set Window输出一个窗口内容到文件中Save Window1.1.4、过程(Main和Sub)定义一个过程Declare Sub,Sub...End Sub调用一个过程Call退出一个过程Exit SubMain过程Main1.1.5、错误处理设置一个错误控制OnError返回当前错误信息Err(),Error$()从错误处理器返回Resume摸拟一个错误Error1.2、函数1.2.1、定制函数定义一个定制函数Declare Function,Function...End Function退出一个函数Exit Function1.2.2、数据转换函数转换字符串为代码的函数Asc()转换代码为字符串的函数Chr$()转换字符串为数字的函数Val()数字转换成字符串的函数Str$(),Format$()把数字或字符串转换成日期的函数NumberToDate(),StringToDate() 对象类型转换函数ConvertToRegion(),ConvertToPline()字符串比较函数Like(),StringCompare(),StringCompareIntl()重复字符串序列Space$(),String$()把标注转换为文本的函数Lablelinfo()1.2.3、日期和时间函数获取当前日期CurDate()抽取日期的某个部分Day(),Month(),Weekday(),Year()获取系统时间Timer()数值或字符串转换成日期函数NumberToDate(),StrintToDate(),FormatDate$() 1.2.4、数学函数三角函数Cos(),Sin(),Tan(),Acos(),Asin(),Atn()地理函数Area(),Perimeter(),Distance(),ObjectLen()随机函数Randomize,Rnd()符号函数Abs(),Sgn()取整函数Fix(),Int(),Round()其它数学函数Exp(),Log(),Minimum(),Maximum(),Sqr()1.2.5、字符串函数大小写函数UCase$(),LCase(),Proper$()子串查找函数InStr()字符串提取函数Left$(),Right$(),Mid$(),MidByte$()删除字符串首尾空格函数LTrim$(),RTrim$()把数值格式化为字符串Format$(),Str$(),Set Format,测定字符串长度Len()把字符转换为代码Chr$(),Asc$()字符串比较函数Like(),StringCompare(),StringCompareIntl()重复字符串序列Space$(),String$()获取单位名UnitAbbr$(),UnitName$()1.3、表的操作1.3.1、建立和编辑表打开一个已存在的表Open Table关闭一个或多个表Close Table,Close All建立一个新的空表Creat Table把一个文件转换为一个表Register Table表/文件的输入/输出Import,Export修改表的结构Alter Table,Add Column,Creat Index,Drop Index,Creat Map,Drop Map 增加,编辑或删除行Insert,Update,Delete紧缩表(删除空记录行) Pack Table控制表设置Set Table保存表的最新编辑Commit Table放弃表的最新编辑Rollback重命名一个表Rename Table删除一个表Drop Table1.3.2、表的查询定位行光标Fetch,EOT()迭择数据,操作选择命令Select,SelectionInfo()按地址查找图对象Find,Find Using,CommandInfo()按位置查找图对象SearchPoint(),SearchRect(),SearchInfo()获取表的信息NumTables(),TableInfo()获取列的信息NumCols(),ColumnINfo()查询一个表的元数据GetMetadata$(),Metadata查询无缝表TableInfo(),GetSeamlessSheet()1.3.3、远程数据操作与服务器通讯Server_Connect()开始远程服务器操作Server Begin Transaction分配本机内存Server Bind Column获取列信息Server_ColumnInfo(),Server_NumCols()发送一个SQL语句Server_Execute()定位行光标Server Fetch,Server_EOT()保存变化Server Commit放弃改变Server Rollback释放远程资源Server Close把远程数据变为可成图的Server Creat Map改变对象格式Server Ser Map使联结表同步Server Refresh建立一个联结表Server Link Table断开联结表Unlink取消与服器的联结Server Disconnect恢复驱动器信息Server_DriverInfo(),Server_NumDrivers()获取QELib的联结句柄Server_GetqeHConn()获取QELib的语句句柄Server_GetqeHStmt()ODBC联结Server_GetodbcHConn(),Server_GetodbcHStmt() 1.4、非表文件操作1.4.1、文件的输入与输出打开或建立一个文件Open File关闭一个文件Close File删除一个文件Kill重命名一个文件Rename File复制一个文件Save File从文件中读取数据Get,Seek,Input #,Line Input #向一个文件写入数据Put,Print #,Write #测定一个文件的状态EOF(),LOF(),SeeK(),FileAttr(),FileExists()转变一个文件成表Register Table克服共享错误Set File Timeout1.4.2、文件与目录返回系统目录ProgramDirectory$(),HomeDirectory$(),ApplicationDirectory$()提取文件名的某个部分PathToTableName$(),PathToDirectory$(),PathToFileName$()返回完整文件名TrueFileName$()让用户选择文件FileOpenDlg(),FileSaveAsDlg()返回临时文件名TempFileName$()1.5、Map和Graphy对象的操作1.5.1、创建Map对象创建语句Create Arc,Create Ellipse,Create Frame,Create Line,Create Pline,Create Point,Create Rect,Create Region,Create RoundRect,Create Text,AutoLabel 创建函数CreateCircle(),CreateLine(),CreatePoint(),CreateText()高级操作Create Object,Buffer()存对象于表中Insert,Update1.5.2、编辑Map对象改变对象属性Alter Object改变对象类型ConvertToRegion(),ConvertToPLine()设置编辑目标Set Target擦除对象某部分Objects Erase,Erase(),Objects Intersect合并对象Objects Combine,Combine(),Creat Object,Objects Split分离对象Objects Split在交接部位增加结点Objects OverLay,OverLayNodes()控制对象分辨率Set Resolution存贮对象于表中Insert,Update1.5.3、查询Map对象返回计算值Area(),Perimeter(),Distance(),ObjectLen(),Overlap(),AreaOverlap(),ProportionOverlap()返回坐标值ObjectGeography(),MBR(),ObjectNodeX(),ObjectNodeY(),Centroid(),CentroidX(),CentroidY(),ExtractNodes(),IntersectNodes() 设置测量单位Set Area Unites,Set Distance Unites,Set Paper Unites,UnitAbbr$(), UnitName$()设置坐标系统Set CpprdSys返回样式设置ObjectInfo()查询一个图层的标注LabelFindByID(),LabelFindFirst(),LabelFindNext(),Labelinfo() 1.5.4、对象样式的操作返回当前样式CurrentPen(),CurrentBrush(),CurrentSymbol(),CurrentFont()返回样式属性StyleAttr(),PenPattern()建立样式值MakePen(),MakeBrush(),MakeFont(),MakeSymbol(),MakeCustomSymbol() MakeFontSymbol(),Set Style,RGB()查询对象的样式ObjectInfo()修改对象样式Alter Object重载符号样式Reload Symbol样式子句Pen clause,Brush clause,Symbol clause,Font clause1.5.5、Map窗的操作打开一个Map窗Map增加一个图层Add Map除去一个图层Remove Map标注一个图层的对象AutoLabel查询一个图的设置MapperInfo(),LayerInfo()改变一个图的设置Set Map建立或编辑专题图层Shade,Set Shade,Create Ranges,Create Styles查询一个图层的标注LabelfindByID(),LabelFindFirst(),LabelfindNext(),Labelinfo() 1.6建立用户介面1.6.1、按钮板(工具条)建立一个新按钮板Creat ButtonPad修改一个按钮板Alter ButtonPad修改一个按钮Alter Button查询按钮板状态BottonPadInfo对按钮使用的响应CommandInfo恢复标准(默认)按钮板Creat ButtonPads As Default1.6.2、对话框显示标准对话框Ask(),Note, ProgressBar,FileOpenDlg(),FileSaveAsDlg(),GetSeamlessShet()显示定制对话框Dialog对话框处理器操作Alter Control,TriggerControl(),ReadControlValue(),Dialog Preserve, Dialog remove检测用户是否按击OK CommandInfo(CMD_INDO_DIG_OK)使进度条不可用SetProgressBars修改一个标准MAPINFO对话框Alter MapInfoDialog1.6.3、菜单定义一个新菜单Create Menu重定义菜单条Create Menu Bar修改一个菜单Alter Menu,Alter Menu Item修改菜单条Alter Menu Bar,Menu Bar执行菜单命令MenuitemInfoByHandler()查询某个菜单项的状态MenuitemInfoByID()1.6.4、窗口显示或隐藏一个窗口Open Window,Close Window,Set window打开一个新窗口Map,Browse,Graph,Layout,Create Redistricter,Create Legend检测一个窗口的标识FontWindow(),WindowID()修改一个已存在的窗口Set Map,Shade,Add Map,Remove Map,Set Browse,Set Graph,Set Layout, Create Frame,Set Legend,Set Redistricter,StatusBar 返回一个窗口的设置WindowInfo(),MapperInfo(),LayerInfo()打印一个窗口PrintWin控制窗口重画Set Event Processing,Update Window计算窗口数NumWindows(),NumAllWindows()隐藏浏览窗口中的列Reproject1.6.5、系统事件处理器对选择的反应SetChangeHandler对关闭窗口的反应WinClosedHandler对图窗变化的反应WinChangeHandler对窗口活化的反应WinfocusChangedHandler对DDE请求的反应RemoteMsgHandler,RemoteQueryHandler()对OLE自动化方法的反应RemoteMapGenHandler提供定制工具ToolHandler对应用程序结束的反应EndHandler对MAPINFO获得或失去活化窗口的反应forgroundTaskSwitchHandler 使事件处理器不可用Set Handler1.7、与别的应用程序的通讯1.7.1、DDE(动态数据交换,仅Windows)开始一个动态数据交换对话DDEInitiate()发送一个动态数据交换命令DDEExecute经由DDE(动态数据交换)发送一个值DDEPoke经由DDE(动态数据交换)接收一个值DDERequest$()关闭一个DDE(动态数据交换)对话DDETerminate,DDETerminateAll 对一个请求的响应RemoteMsgHandler, RemoteQueryHandler,CommandInfo(CMD_INFO_ MSG)1.7.2、集成图(只限在Windows下)设置MAOINFO父窗口Set Application Window设置一个Map窗的父窗口Set Next Document建立一个图例窗口Create Legend1.7.3、苹果机事件(只限在Macintosh下)开始一个对话AEInitiate()发送DoScript事件AEExecute()响应一个事件RemoteMsgHandler1.8、特殊语句和函数运行另外的程序Run Program返回系统信息SystemInfo()把一个字符串作为解释命令执行Run Command保存一个工作现场文件Save Workerspace装入一个工作现场文件或MBX文件Run Application设置数字化板Set Digitizer发送一个声音到扬声器Beep通过CommandInfo设置数据可读Set Command Info设置拖位对象的延迟时间Set Drag Threshold投影和坐标系统ChooseProjection$()******************************************************************************* 2、Mapbasic各函数和语句的名称及其作用2.1、AAbs()---返回一个数的绝对值Acos()---返回一个数的反余弦值Add Column---在打开的表中,增加一临时的新列,或者用别的表的数据来更新一个已有的列Add Map---向Map窗加一图层AEExecute()---发送一个DoScript事件给萍果事件服务程序AEInitiate()---建立一个通过AEExecute()函数发送苹果事件时要用的苹果事件通道说明符Alter Botton---使按钮板(工具条)上的一个按钮可用,不可用,被选择或脱离选择Alter BottonPad---显示或隐藏按钮板,增加或去除按钮Alter Control---改变活化的定制对话框内控件的状态Alter MapInfoDialog---使Mapinfo标准对话框中的控件不可用,隐匿或被赋予新值Alter Menu---从一存在菜单中增加或去除某一菜单项Alter Menu Bar---增加或去除菜单条上的菜单Alter Menu Item---改变指定菜单项的状态(可用或不可用)Alter Object---修改一个对象的形状,位置或图形式样Alter Table---改变表结构(不能用于链结表)ApplicationDirectory$()---返回当前正在执行的MapBasic应用程序的路径字串Area()---面积函数,返回一个对象的地理面积AreaOverlap()---返回两个封闭对象重叠的面积Asc()---返回字符串头一字符的字符码[如Asc("Abcde")为65]Asin()---返回一个数的反正弦值Ask()---显示一个对话框给用户提出一个回答Yes/No(OK/Cancel )的问题Atn()---返回一个数的反正切值AutoLabel()---给出Map窗中的标注,并把标注存入装饰层2.2、BBeep---发出一个哔声Browse---打开一新的Browser窗口Brush---为图形对象指定一种填充式样Buffer()---返回代表一个缓冲区的区域对象(在已有对象的指定缓冲距离内的区域)BottonPadInfo()---返回有关按钮板的信息2.3、CCall ---调用过程或外部子程序Centroid()---返回对象的形心(中心点)CentroidX()---返回对象形心的X坐标CentroidY()---返回对象形心的Y坐标CharSet ---指定MapBasic用哪一套字符集作为解释字符码ChooseProjection$()---显示选择投影对话框并返回用户选择的坐标系统Chr$() ---返回对应指定字符码的单字符字串Close ALL---关闭所有打开的表Close File ---关闭一个打开的文件Close Table---关闭一个打开的表Close Window---关闭或隐藏一个窗口ColumnInfo()---返回一打开表中某列的信息Combine()---返回代表两个对象联合的一个区域或折线CommandInfo()---返回最近事件的有关信息Commit Table()---把最新的编辑存盘或保存一个表的备份Continue---继续执行MapBasic程序(在Stop语句后)Control Button/OKButton/CancelButton---Dialog(对话框)语句的一部分,把一弹性按钮控件加到对话框内Control CheckBox---Dialog 语句的一部分,把一检查框控件加到对话框中Control EditText---Dialog语句的一部分,把一个编辑文本控件加到对话框中Control GroupBox---Dialog语句的一部分增加一个带标题的矩形框到对话框内Control ListBox/MultiListBox---Dialog语句的一部分,把一个列表控件加到对话框内,ListBox(列表框内)控件与MultiListBox(多选框)控件的区别仅在于用户可以在后者中通过Shift-Click一次选取多个项Control PenPicker/BrushPicker/SymbolPicker/FontPicker---Dialog语句的一部分,加上一个钮以显示线形,充填,符号(点)或字体(文本)的样式Control PopupMenu---Dialog语句的一部分,把一个弹出式菜单控件加到对话框内Control RadioGroup---Dialog语句的一部分,把一组无线电按钮加到对话框内Control StaticText ---Dialog语句的一部分,把一个标注按钮加到对话框中ConvertToPline()---返回一个形状近似于某个对象的折线对象ConvertToRegion()---返回一个形状近似于某个对象的区域对象CoordSys---确定坐标系统Cos()---返回一个数的余弦Create Arc---创建一个弧Create ButtonPad---创建按钮板(工具条)Create ButtonPads As Default---创建系统默认的按钮板(工具条)恢复标准按钮板(如M ain按钮板)到它的默认状态Create Circle()---返回表示一个园的对象值Create Ellipse---创建一个椭园或园对象Create Frame---在页面窗中创建新框架Create Index---在一个打开表中为某列创建一个索引Create Legend---创建一个新的,与特定Map或Graph窗相连系的图例窗口CreateLine()---返回表示一条线的对象值Create Line---创建一个线对象Create Map---修改表的结构,使之可以以图形的形式显示Create Menu---新建或重定义一个菜单Create Menu Bar---重构整个菜单条(用可获得的菜单)Create Object ---用Buffer、Merge、Intersect或Union操作来创立一个或多个区域对象Create Pline ---创建一个折线对象CreatePoint() ---返回表示一个点的对象值Create Point---创建一个点对象Create Ranges---计算专题的各个区间值并将其存贮一数组中,然后能用于Shade语句中Create Rect ---创建一个矩形或正方形Create Redistricter ---开始一个重新分区操作Create Region---创建区域对象Create Roundrect---创建一个圆角矩形对象Create Styles---组建一套线、充填或符号式样并将其贮存到一数组中Create Table---创建一新(属性)表CreateText() ---返加一个为某特定Map窗创建的文本对象Create Text ---为Map或Layout窗口创建一文本对象,如标题之类CurDate() ---返回当前日期(以YYYYMMDD格式)CurrentBrush()---返回当前正用的充填式样CurrentFont()---返回当前正用于Map和Loyout窗的字体式样CurrentPen()---返回当前正用的线型CurrentSymbol()---返回当前正用的符号式样2.4、DDay()---返回日期表达式年月日中的日(部分)DDEExecute---通过一个打开的DDE通道发送一条命令DDEInitiate()---初始化一个新的DDE通道并返回一个连结的通道号DDEPoke---发送一个数据值到DDE服务器应用程序中的某个项目DDERequest$()---返回一个从DDE通话中获得的数据值DDETerminate---关闭一个动态数据交换通话DDETerminateALL---关闭先前被某些MapBasic程序打开的所有动态数据交换通话Declare Function---定义一个函数的名称及参数表Declare Sub---标识一个子过程的名字及参数表Define---用常数值定义一个定制的关键字(保留字)DeformatNumber$() ---从表示一个数的字串中去除格式化Delete---从一个表中删除一个或多个图形对象,或一个或多个整行Dialog---显示一个定制对话框Dialog Preserve---在用户按击了OK或Cancel之后重新活化一个定制对话框Dialog Remove---从屏上移去一对话框Dim---定义一个或多个变量Distance()---返回两个位置之间的距离Do Case...End Case---根据一表达式的当前变量来决定执行哪一组语句Do...Loop---定义一个循环,它将执行到指定的条件变为TRUE(或FALSE)为止Drop Index---删除一个表的索引Drop Map 193 删除一个表中所有图形对象(不能用于链结表)Drop Table 194 全面地删除一个表2.5、EEnd MapInfo---结束MAPINFOEnd Program---结束MAPBASIC应用程序EndHandler---保留的过程名,一个应用程序结束时自动调用EOF()---如果MapBasic试图读一个文件尾返回TRUE,否则返回FALSEEOT()---如果MapBasic已经到达指定表的表尾返回TRUE,否则返回FALSEErase()---返回通过擦除另一对象的一部分而建立的一个对象Err()---返回代表当前错误的一个数字代码Error---仿真错误条件的出现Error$()---返回一个描述当前错误的信息Exit Do---提前结束DO循环Exit For---提前结束FOR循环Exit function---退出一个Functrion...End Function 结构Exit Sub---退出一个Sub过程Exp()---返回e 的指定方次的一个数Exprot ---把表输出成另一种文件格式ExtractNodes() ---返回一个由已存在的对象的结点子集建立的折线或区域2.6、FFetch---设置一个表的光标位置(即哪一行是当前行)FileAttr()---返回一打开文件的信息FileExists()---返回表示某个文件是否存在的逻辑值FileOpenDlg()---显示一个File Open对话框并返回用户所选择的文件名FileSaveAsDlg()---显示一个Save As对话框并返回用户所输入的文件名.Find---查找可成图的表中的一个位置Find Using---规定在随后的Find操作中要搜索哪些表和哪些列Fix()---返回一个通过去掉一个十进制值的小数部分得到的整数值Font---指定一个文本式样For...Next---定义一个循环,它将执行指定的次数ForegroundTaskSwitchHandler---一个保留的过程名,它是在MapInfo获得了焦点(有了活化的应用程序)或失去了焦点(另一个应用程序变活)时自动调用的Format$() ---返回一个表示定制格式的数的字串FormatNumber$() ---返回一个表示含有千分位分隔符和小数点分隔符的数的字串(分隔符的样式与用户的系统配置相关)FrontWindow---返回活动窗口的整数标识Function...End function ---定义一个定制函数2.7、GGet---从一个以二进制或随机存取模式打开的文件中读取GetMetadata$()---从一个表的中获取元数据GetSeamlessSheet()---提示用从无缝表中选择一个片,并返回被选片的名字Global ---定义一个或多个全程变量Goto---跳转到由标号标识的另一个位置(在同一过程内)Graph---打开一新Graper窗口2.8、H---KHomeDirectory$()---返回一个表示用户的home目录路径的字串If...Then---根据一个或多个表达式决定执行哪一个语句块Inport---通过输入一个过去输出的文件,例如DXF文件建立一个新的MapInfo表Include---包进一个单独的文本文件的内容,使之成为一个MapBasic程序的一部分Input #---读文件中的数据并将其保存在变量中Insert ---向一个打开的表追加新行InStr()---返回指示一子串第一次出现在另一字串内的字符位Int() ---返回去掉十进制小数部分的整数值InterSectNodes()---计算两个对象相交的点集,并返回一个包含各交点的折线对象Kill---删除文件2.9、LLabelFindbyID()---初始化一个内部标注指针,以便你能查询图层某个指定行的标注LabelFindFirst()---初始化一个内部标注指针,以便能查询某个图层的第一个标注LabelFindNext()---推进内部的标注指针,以便你能查询某个图层的下一个标注LabelInfo()---返回一个图的某个标注信息LayerInfo()---返回某Map窗的一图层的信息Layout---打开一新的页面窗口LCase$()---返回一字串的小写字符串Left$()---返回一个字符串的一部分或全部,从字符串的左端开始Len()---返回一个字符串的字符个数或一个变量的字节数Like()---返回TRUE或FALSE以表明一字符串是否符合格式匹配标准Line Input---从一个连续的文本文件中读一行赋给一个变量LOF()---返回一打开的文件的长度Log()---返回一个数的自然对数LTrim$()---去除字符串左端空格字符并返回结果2.10、MMain---一个应用程序运行时调用的第一个过程MakeBrush()---返回填充图案值MakeCustomSymbol()---返回基于一个BMP文件的符号值MakeFont()---返回一个字体值MakeFontSymbol()---返回一个符号值,用出自TrueType字体的一个字符作为符号MakePen() ---返回一线型值MakeSymbol()---返回一符号值,用出自MapInfo3.0版符号集的字符Map---打开一新Map窗MapperInfo()---返回一Map窗的坐标或距离Maximum()---返回两个数中之较大者MBR()---返回一矩形对象,代表限制另一对象的最小矩形Menu Bar---显示或隐藏菜单条MenuitemInfoByHandler()---返回MAPINFO菜单项的信息MenuitemInfoByID()---返回MAPINFO菜单项的信息Metadata---管理一个Table的元数据Mid$()---返回从另一字符串中间抽出的一个字符串MidByte$() ---访问双字节系统的一个字符串中的单个字节Minimum()---返回两个数中的较小者Month()---返回年月日中的月(1-12)2.11、NNote---显示一个简单的信息于对话框中NumAllWindows()---返回MapInfo占有的窗口数,包括按钮板和信息窗之类的特殊窗口NumberToDate()---给定一个整数,返回一日期值NumCols()---返回一指定表的列数NumTables()---返回当前已打开表的个数Numwindows()---返回已打开的文档窗口的个数(Map,Browse,Graph,Layowt)2.12、OObjectGeography()---返回一描述一图形对象的坐标或角度信息ObjectInfo()---返回描述一图形对象的线型,填充式样或其他值ObjectLen()---返回一直线或折线对象的地理长度ObjectNodeX()---返回区域或折线对象一接点的X坐标ObjectNodeY()---返回区域或折线对象一接点的Y坐标Objects Combine---联合在一个Table中的对象,与MapInfo的Objects>Combine 对应Objects Erase ---删除目标对象被选择的部分;与Object>Erase对应Objects Intersect---删除未被选择的目标对象部分;与Object>EraseOutside对应Objects Overlay---在目标对象与当前所选对象相交的位置,向目标对象上增加结点Object Split---分离目标对象,用当前选择的对象作“切割器”OnError---使一错误处理子程序可用Open File---打开文件供输入或输出(input/ortput)Open Table ---打开MapInfo 表供input/outputOpen Window---打开或显示一窗口Overlap()---返回一对象,代表两对象的地理相交部分,结果类似于MapInfo的Object>Erase OutsideOverlayNodes() ---返回基于先存对象的一个对象,在它与第二个对象相交的地方加上了新结点2.13、PPack Table---提供MapInfo的Table>Maintenance>Pack Table命令的功能PathToDirectory$()---给定一个文件标识,返回该文件目录PathToFileName$()---给定一个文件标识,仅返回文件名(不带目录)PathToTableName$()---给定一个完整的文件标识,返回一个代表Table别名的字符串,如"-1995-Data"Pen---为图形对象指定一种线型Penpattern () frnction---返回线条格式Perimeter() ---返回图形对象的周长Print ---在信息窗口中显示一个提示或状态信息Print # ---把数据写入一个以顺序模式打开的文件(Output 或Append)PrintWin---打印一存在的窗口ProgramDirectory$()---返回安装MAPINFO的目录路径ProgressBar---显示一个带有CANCEL按钮和横向进度条的对话框Proper$() ---返回大小写混合的字符串,每个词仅第一个字母大写ProportionOverlap()---返回一对象被另一对象履盖的百分比(数字)Put ---把一个MAPINFO变量的内容写到一个打开的文件中2.14、RRandomize---初始化MapInfo的随机数函数ReadControlValue()---读取活化对话框中某一控件的当前状态ReDim---重定义数组变量Register Table---由电子表格/数据库/文本文件(不由栅格映象)构造MapInfo TableReload Symbols---打开并重新装载MapInfo符号文件;这能改变显示于Options>Symbol Style对话框中的符号集RemoteMapGenHandler---一个保留的过程名,在OLE自动化的客应用程序调用MapGenHandler---自动化方法时被调用RenotemsgHandler---一个保留的过程名,远端应用程序发送一个执行信息时调用RemoteQueryHandler()---一个特殊的函数,当一个MapInfo程序起着DDE的服务器作用,并且这个DDE客应用程序执行一个"Peek"请求时调用Remove Map---从Map窗中移去一个或多个图层Rename File---改变一个文件的名字Rename Table---改变构成一个Table的多个文件的名字(和位置)Reproject---指定(在被浏览的表中)下一次要显示的列Resume---从OnError错误处理器返回RGB()---返回由红、绿、兰三组份计算出的RGB彩色值Right$()---返回从一字符串右端开始的部分或全部字符Rnd()---返回一随机数Rollback---放弃一个Table的未存盘编辑Round()---返回由另一个数舍入而成的数RTrim$()---去除字符串右边的空格,返回其结果Run Application---运行一个MapBasic应用程序或增加一个MapInfo的工作现场Run Command---运行一个用字符串表示的MapBasic命令Run Menu Command---运行一个MapInfo菜单命令,如同用户选择一个菜单项,也能用于选择一个按钮板上的按钮Run Program 382 运行一可执行程序2.15、SSave File---复制一个文件Save Window---把一窗口图像存盘为一文件,与File>SaveWimdow As对应Save Workerspace---创建一个表示当前MapInfo操作的工作现场文件SearchInfo()---返回SearchPomt()或SeachRect()产生的搜索结果信息SearchPoint()---搜索给定X、Y坐标位置上的Map对象SearchRect()---搜索绘完矩形范围内的Map对象Seek()---返回当前文件的位置Seek---设置当前文件位置,为下一个文件的输入输出作准备SelChangedHandler---一个保留的过程,被选择的若干行发生变化时自动调用Select---从一个或多个打开的表选择特定的若干行和列,并把所得的结果处理为一个单独的临时表,还提供数据排序和小计的功能SelectionInfo---返回有关当前选择的信息。
mapbasic教程

MapBaSiC语言及其应用一、MapBasic概述在上一篇中,我们已对MapInfo地理信息系统的使用作了具体介绍。
虽然MapInfo系统对各种地图信息及数据提供了强大的处理功能,并且能够很好地与其他数据库进行连接,但毕竟MapInfo是面向专业人员的一个人—机交互式系统。
要很好地使用它,必须具有一定的计算机水平和一定的地理信息系统知识,这对于普通用户显然过于苛刻。
为了解决这个问题,MapInfo提供了一个用户系统开发工具MapBasic,人们可以用MapBasic来设计、建立符合自己工作特点和要求的纯用户化的应用系统。
作为一种功能强大、易于使用的结构化程序设计语言,MapBasic提供了380多种函数和命令语句。
与传统的GIS相比,良好的软件集成环境、面向对象和事件处理式的编程思想,都是MapBasic的显著特征。
1.MapBasic的集成环境与特征MapBasic的软件集成环境主要包括文本编辑器(Editor)、程序编译器(Compiler)、程序链接器(Linker)和联机帮助(Help)四个部分。
文本编辑器用于程序的编辑与修改;程序编译器用于源程序编译,以生成可执行程序:程序链接器用于将若干独立的模块链接成一个应用程序:联机帮助则为程序员在线提供MapBasic的每条语句或函数的详细说明资料。
针对各类用户的不同需求,用MapBasic可以迅速制定出用户所需的菜单、按钮或对话框等;用户不仅可以修改标准的MapInfo菜单,而且可以在原来的菜单栏上增加新的菜单项;利用MapBasic用户可以方便、准确地绘制经、纬线,避免手工绘制的烦琐以及可能引起的误差;此外,用户也可以自行设计各种新的图形符号。
MapBasic中提供了一系列SQL函数和许多非常实用的语句,大大增强了对数据库进行操作的能力。
例如,仅用一条非常南单的Select语句,就可进行数据库的查询工作,实现对数据排序、求和、过滤等操作。
mapinfomapinfo产品以及开发平台介绍

MapInfo产品白皮书MapInfo 公司介绍................................................. 1.MapInfo 产品线概述............................................ 2.MapInfo Professional 8.5......................................2.1 产品概述 .................................................2.2主要功能..................................................2.3最小系统要求..............................................3. MapBasic......................................................3.1 产品概述 .................................................3.2 MapInfo MapBasic特性.....................................3.3 最小系统要求 .............................................4 MapInfo MapXtreme 2005........................................4.1产品概述..................................................4.2 主要功能 .................................................4.3 最小系统要求: ........................................... 5.MapInfo MapXtreme for Java 4.8................................5.1 产品概述 .................................................5.2 主要功能 .................................................5.3 系统结构 .................................................5.4 最小系统要求 ............................................. 6.SpatialWare 4.9...............................................6.1 产品概述 .................................................6.2 软件组成 .................................................6.3 主要功能 .................................................6.4 数据库和操作系统需求 ..................................... 7.MapX Mobile 5.0...............................................7.1 产品概述 .................................................7.2 目标客户 .................................................7.3 功能和优势: ..............................................7.4 系统需求 ................................................. 8.MapX 5.0......................................................8.1 产品概述 .................................................8.2 产品特性 .................................................8.3 最小系统要求 .............................................MapInfo 公司介绍MapInfo成立于1986年,1994年上市,是一间全球性的软件公司。
mapbasic程序有详细的解释

河道比降计算程序mapinfo=================================================================== ' 项目:河道比降计算' 作者:崔军明' 版本:2.2' 日期:2009-12-23'' 使用说明:' 1、新建图层,绘制主河道(也可以复制水系,然后整理出主河道)。
' 2、确定高程的单位(米/分米)。
如果与主河道相交的等高线的高程单位不统一,则将其修改一致。
' 3、运行此程序,打开需要的表,设置计算选项,计算河道比降。
' 4、如果遇到错误,根据提示将河道上的节点吸附在等高线上,并保存河道表(Stream)。
' 关闭全部表(不必保存),重新运行程序。
' 5、程序运行结束后,保存计算结果,然后浏览比降计算表(Gradient)。
' (1) 复查高程列(Elev)的单位是否统一,确认设置计算选项时所作的选择是正确的。
' 6、注意,计算某个流域的河道比降时,只需打开对应部分的等高线图层。
如果等高线图层太大,会大大影响计算速度。
'==================================================================='---------------------------------------------------------------------------------'MapBasic的调试方法:' (1) 在出错或需要的地方,使用Note(或Print)语句将变量的值显示出来。
' (2) 在MapInfo中,打开MapBasic窗口,回车就会执行当前语句。
''MapBasic中SQL的特性:' (1) Delete 语句,执行的是无条件删除,即删除表中的全部记录。
第五章 MapBasic开发环境

主过程定义
Sub Main Dim 语句 … End Sub
其它过程定义
Sub … Dim 语句 … End Sub
自定义函数
Function… Dim 语句 … End Function
过程的使用方法
过程的声明
主过程的声明
Declare Sub Main
Sub Main Note “Hello!” End Sub Declare Sub 过程名(参数)
在Function…End Function结构中的函数名 作为一个形式参数,在函数体中可以赋一个值 给函数名,它是返回给函数调用者的值。
以用户自定义函数的 方法完成求和功能
Declare Sub Main Declare Function sum (ByVal n As Integer) As Integer
End If
Else
counter=counter-1
End If
Do Case
Dim counter As Integer .. Do Case counter Case 1
Goto
Dim counter As Integer
…
If counter<0 Then Goto L1 End If … L1: … …
数组变量
定义 使用 Dim x(10) As Integer 数组名(元素号) x(5)=10
改变数组的大小
ReDim x(20) As Integer
注意:MapBasic只支持一维数组,下标从1开始
自定义数据类型
是一个或多个变量类型的集合,定义了一 个自定义数据类型,就可以声明这种这种类型 的变量。 定义方式
Dim temp,i As Integer temp=0 For i =1 To n temp=temp+ i
基于MapBasic的城市部件数据档案管理工具的开发与应用

基于MapBasic的城市部件数据档案管理工具的开发与应用摘要:本文从北京市东城区城市监督管理中心对于城市部件数据档案管理的需求出发,基于城市部件空间数据库,利用MapBasic语言进行二次开发扩展MapInfo系统功能,设计实现了城市部件数据档案管理工具,完全满足东城区城市监督管理中心的要求,极大地方便了城市监督员的部件管理工作。
关键词:数字城管城市部件档案管理MapBasic 二次开发“数字城管”建设作为城市管理工作信息化的标志,采用万米单元网格管理法和城市部件、事件管理法相结合的方式,应用、整合多项数字城市技术,创建城市管理监督中心和指挥中心两个轴心的管理体制,再造城市管理流程,从而实现精确、敏捷、高效、全时段、全方位覆盖的城市管理模式。
为了开展上述工作,北京市东城区按照行政区域划分管理权限,从纵向层面,将东城区的管理区域划分为四个层面:街道办事处、社区居委会、监督员责任区、万米单元网格。
其中街道办事处10个,社区居委会126个,监督员责任区92个、万米单元网格1593个。
东城区城市部件按照城市管理功能划分,共分为六大类一共60种,城市部件的大类包括:公用设施类、道路交通类、市容环境类、园林绿化类、房屋土地类及其他类。
根据统计东城区部件总数为168339个,此外还有各种参照物、兴趣点、地址等数据,整个东城区城市部件的管理任务落实到92个监督员身上,每个监督员平均要管理1800多个城市部件。
为了让每个监督员做到对自己辖区范围的部件种类、部件标识码及部件所在的万米单元网格编码心中有数,能对城市部件进行迅速查找和定位,建立一套城市部件档案势在必行。
鉴于东城区城市监督管理中心使用的是MapInfo系统,因此本文选用MapInfo的二次开发语言MapBasic对MapInfo系统进行功能扩展,基于城市部件空间数据库,设计了城市部件数据档案管理工具,完全满足东城区城市监督管理中心的要求。
1 程序设计方案1.1 设计思路城市部件数据档案管理工具的功能要求主要包括:用户可以根据街道办事处名称、社区居委会名称、监督员责任区名称、或万米单元网格编码对该区域的部件进行查询统计;计算该查询区域内各类部件的总数及该查询区域内各部件的详细信息;将查询的结果最终保存为xls格式的数据。
mapinfo基础应用第8章

Module=F:\zhuenli\query.mbo ⑤ 重复第④步,直到包括了所有模块。
⑥ 另存文件,文件类型为“mbp”即工程文 件。
③ 选择“Project”→“Link Project File”链接 应用程序。MapBasic依次读入在项目文件中列 出的目标文件。
8.3 使用帮助例程
图8-14 MapBasic联机帮助
图8-15 使用索引
8.4 习题
一、 思考题 1. 如何解决MapBasic的文本限制问题? 2. 工程文件与一般文件的区别在哪里?
所示。 ② 在空白窗口中输入程序语句。例如,输入一
个“Note ”Welcome to MapBasic“”。该语句可以 在
MapInfo中产生一个含有一个简单消息的对话框。
图8-4 新建程序窗口
图8-5 保存程序菜单
③ 保存该程序。选择“File”→“Save”,将 文件保存起来。如图8-5所示。
① 装入MapBasic光盘,双击“setup”图 标, 显示“MapBasic安装界面”。如图8-1所示。 ② 选择“典型安装”(Typical)。 如图 82所示。
图8-1 MapBasic安装界面
图8-2 选择典型安装界面
③ 单击“Next”按钮,系统自动安装MapBasic 软 件。如图8-3所示。
二、 上机练习 1. 在MapInfo中打开MapBasic窗口,操作
MapInfo菜单,注意其中的MapBasic代码。
2. 利用MapBasic的程序编辑器制作一个 小程序,并编译、运行它。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重装符号式样Reload Symbol
希望能描述清楚一些。
+++++++++++++++++++------------------------------------------------------------------------------------------------
地理信息系统世界
一从功能查函数和语句
二各个语句和函数的功能说明
表/文件的输入/输出Import,Export
修改表的结构Alter Table,Add Column,Creat Index,Drop Index,Creat Map,Drop Map增加,编辑或删除行Insert,Update,Delete
整理表(删除空记录行) Pack Table
控制表设置Set Table
按位置查找图对象SearchPoint(),SearchRect(),SearchInfo()
获取表的信息NumTables(),TableInfo()
获取列的信息NumCols(),ColumnINfo()
查询一个表的元数据GetMetadata$(),Metadata
查询无缝表TableInfo(),GetSeamlessSheet()
远程数据操作
与服务器通讯Server_Connect()
开始远程服务器操作Server Begin Transaction
分配本机内存Server Bind Column
获取列信息Server_ColumnInfo(),Server_NumCols()
发送一个SQL语句Server_Execute()
ODBC联结Server_GetodbcHConn(),Server_GetodbcHStmt()
5.非表文件操作
文件的输入与输出
打开或建立一个文件Open File
关闭一个文件name File
复制一个文件Save File
从文件中读取数据Get,Seek,Input #,Line Input #
字符串比较函数Like(),StringCompare(),StringCompareIntl()
重复字符串序列Space$(),String$()
把标注转换为文本的函数Lablelinfo()
日期和时间函数
获取当前日期CurDate()
抽取日期的某个部分Day(),Month(),Weekday(),Year()
向一个文件写入数据Put,Print #,Write #
测定一个文件的状态EOF(),LOF(),SeeK(),FileAttr(),FileExists()
转变一个文件成表Register Table
克服共享错误Set File Timeout
文件与目录
返回系统目录ProgramDirectory$(),HomeDirectory$(),ApplicationDirectory$()
mapxtreme是mapinfo公司提供的用于webgis发布的功能组件。在服务器端安装并运行服务后,可以在网络中发布你的图形信息。以前用过mapxtreme3.0,现在mapinfo公司推出了mapxtreme2004等版本,加大了对webgis的支持力度。不过后来就一直没再用过了。
至于楼主说要开发电子地图,我没大明白你的意思。是要画图,还是要在已有的图的基础上提供一些编辑操作和查询统计等的功能,还是什么。
数据转换函数
转换字符串为代码的函数Asc()
转换代码为字符串的函数Chr$()
转换字符串为数字的函数Val()
数字转换成字符串的函数Str$(),Format$()
把数字或字符串转换成日期的函数NumberToDate(),StringToDate()
对象类型转换函数ConvertToRegion(),ConvertToPline()
-------------------------------------------------------------------------------------------------------------------------------
mapinfo mapxtreme mapx分别是mapinfo公司推出的三款产品,有着不同的功能
建立一个联结表Server Link Table
断开联结表Unlink
取消与服器的联结Server Disconnect
恢复驱动器信息Server_DriverInfo(),Server_NumDrivers()
获取QELib的联结句柄Server_GetqeHConn()
获取QELib的语句句柄Server_GetqeHStmt()
CentroidX(),CentroidY(),ExtractNodes(),IntersectNodes()
设置测量单位Set Area Unites,Set Distance Unites,Set Paper Unites,UnitAbbr$(),
UnitName$()
设置坐标系统Set CpprdSys
返回式样属性StyleAttr(),PenPattern()
建立式样值MakePen(),MakeBrush(),MakeFont(),MakeSymbol(),MakeCustomSymbol()
MakeFontSymbol(),Set Style,RGB()
查询对象的式样ObjectInfo()
三参考手册原文关于句法字体的约定
Mapbasic参考手册索引
这本手册对MapBasic编程语言中的每个语句和函数都进行了详细说明,要学习MapBasic语言编程的基本概念或者要学习开发环境的应用,请参考《用户手册》.
一.Mapbasic语言概述TOP
1.基本语法
变量
声明局部变量和全局变量Dim,Global
扩大或缩小数组变量Redim,Ubound(),UnDim
声明定制的数据结构Type
循环和分枝
循环For...Next,Exit for,Do...Loop,Exit Do,While...Wend
分枝If...Then,Do Case,Go To
其它流程控制End Program,Terminate Application,End Mapinfo
创建Map对象
创建语句Create Arc,Create Ellipse,Create Frame,Create Line,Create Pline,Create
Point,Create Rect,Create Region,Create RoundRect,Create Text,AutoLabel
设置编辑目标Set Target
擦除对象某部分Objects Erase,Erase(),Objects Intersect
合并对象Objects Combine,Combine(),Creat Object,Objects Split
分离对象Objects Split
在交接部位增加结点Objects OverLay,OverLayNodes()
重复字符串序列Space$(),String$()
获取单位名UnitAbbr$(),UnitName$()
4.表的操作
建立和编辑表
打开一个已存在的表Open Table
关闭一个或多个表Close Table,Close All
建立一个新的空表Creat Table
把一个文件转换为一个表Register Table
返回式样设置ObjectInfo()
查询一个图层的标注LabelFindByID(),LabelFindFirst(),LabelFindNext(),Labelinfo()
对象式样的操作
返回当前式样CurrentPen(),CurrentBrush(),CurrentSymbol(),CurrentFont()
保存表的最新编辑Commit Table
放弃表的最新编辑Rollback
重命名一个表Rename Table
删除一个表Drop Table
表的查询
定位行光标Fetch,EOT()
迭择数据,操作选择命令Select,SelectionInfo()
按地址查找图对象Find,Find Using,CommandInfo()
提取文件名的某个部分PathToTableName$(),PathToDirectory$(),PathToFileName$()
返回完整文件名TrueFileName$()
让用户选择文件FileOpenDlg(),FileSaveAsDlg()
返回临时文件名TempFileName$()
6.Map和Graphy对象的操作
Main过程Main
错误处理
设置一个错误控制OnError
返回当前错误信息Err(),Error$()
从错误处理器返回Resume
摸拟一个错误Error
2.函数
定制函数
定义一个定制函数Declare Function,Function...End Function
退出一个函数Exit Function
输出和打印
打印窗口内容PrintWin
输出文本到信息窗口Print
设置页面窗口Layout,Create Frame,Set Window
输出一个窗口内容到文件中Save Window
过程(Mn和Saiubs)
定义一个过程Declare Sub,Sub...End Sub
调用一个过程Call