第22章 使用MapBasic
打开mapbasic窗口
要打开mapbasic窗口,选择选项》显示mapbasic窗口,mapbasic窗口就显示在屏幕上。
象其他窗口一样,你可以改变它的大小或移动到一个新位置。你可以在该窗口输入mapbasic代码或在集成mapinfo时阅读mapbasic代码。要知道mapinfo是怎样执行一个选定的语句,打开mapbasic窗口,然后打开世界地图表。选择查询》选择。敲入表达式:pop_1994>1000000。确定结果浏览窗口被选中,点击确定。 这些指令的语法将在mapbasic窗口显示:
Open Table ”C:\MAPINFO\DATA\WORLD\World.tab” Interactive
Map From World
select * from World where Pop_1994 > 1000000 into Selection
browse * from Selection
第一行是打开一张世界表;第二行是自动生成的,因为世界表默认是在地图窗口显示;第三行是选择语句的语法;第四行是检查浏览器的结果。你也可以在mapbasic窗口输入MapBasic语句。将你的光标置于选择语句下,键入以下语句
Map from Selection
在行末敲击回车,命令就执行了。你将会看到你选择的显示在地图窗口。如上所述,mapbasic窗口起初是为辅助mapbasic程序员的。本章的余下部分将集中讲述对mapinfo用户来说最有用的mapbasic命令的指令和例子
Buffer( )函数
目的
返回一个代表缓冲区的区域物体(在一个已经存在的物体一定范围内特定的缓冲区域)
语法
Buffer ( inputobject, resolution, width, unit_name )
inputobject是一个物体表达式
resolution是一个小整数值代表每个角的节点数目
width是一个浮精度值代表缓冲区的半径,如果宽度是负的,如果输入物体是一个封闭物体,返回的物体是比原物体稍小的物体
unit_name(单位名称)是指长度单位(如mi指英里,km指公里) 宽度所要用到的计量单位
返回值
返回一个区域
描述
Buffer( )函数返回代表缓冲区的一个区域
Buffer( )函数一次只能操作一个物体。如果创建一个物件集,???使用创建物体作为缓冲语句。
FrontWindow( )函数
目的
返回激活窗口的整数标记。这允许你在MapBasic窗口后更改最前面的窗口。
语法
FrontWindow( )
返回值
Integer 整数
描述
FrontWindow( )函数返回最前面的文件窗口(地图、浏览器、图形、版面输出)
例子
Print ”The window id is ” + str$(FrontWindow()).
Example
Print ”The window id is ” + str$(FrontWindow()).
CreateCircle( )函数
目的
返回代表圆的一个物体值
语法
CreateCircle( x , y , radius )
X是单精度值,代表圆心的x轴位置(如经度)
Y是单精度值,代表圆心的y轴位置(如纬度)
Radius是单精度值,代表圆心的半径
返回值
Object
物体
描述
CreateCircle( )函数返回代表圆的一个物体值
X、y参数使用MapBasic正在默认使用的坐标系统。MapBasic使用经纬度坐标系统,尽管Set CoordSys语句能够重新设置MapBasic来使用一个不同的坐标系统。注意MapBasic的坐标系统独立于任何map窗口的坐标系统。Radius参数标记圆的半径,不管MapBasic现在使用什么距离单位。MapBasic使用英里作为默认的距离单位,不过使用Set Distance Units语句可以设置MapBasic采用不同的距离单位。圆将采用现在选中的画笔方式。通过CreateCircle( )函数可以创建一个分配给物体变量的圆,储存在已有表的一行中(通过update刷新语句),或者插入到新的一行表中(通过插入语句)
注意:在一个布局窗口创建一个物体前,必须先声明Set CoordSys Layout语句。
CreateLine( )函数
目的
返回代表一条线的物体值
语法
CreateLine( x1 , y1, x2 , y2 )
X1是单精度值,代表线起点的x轴位置(如经度)
y1是单精度值,代表线起点的y轴位置(如纬度)
X2是单精度值,代表线终点的x轴位置(如经度)
Y2是单精度值,代表线终点的y轴位置(如纬度)
返回值
Object
描述
CreateLine( )函数返回代表一条线的物体值
X、y参数使用MapBasic正在默认使用的坐标系统。MapBasic使用经纬度坐标系统,通过Set CoordSys语句能够重新设置MapBasic来使用一个不同的坐标系统。注意MapBasic的坐标系统独立于任何map窗口的坐标系统。通过CreateLine( )函数可以创建一个分配给物体变量的线,储存在已有表的一行中(通过update刷新语句),或者插入到新的一行表中(通过插入语句)
注意:在一个布局窗口创建一个物体前,必须先声明Set CoordSys Layout语句
CreatePoint( )函数
目的
返回代表点的一个物体值
语法
CreatePoint( x , y )
X是单精度值,代表x轴位置(如经度)
Y是单精度值,代表y轴位置(如纬度)
x is a Float value, representing an x_position (e.g. Longitude)
y is a Float value, representing a y_position (e.g. Latitude)
返回值
Object
描述
CreatePoint( )函数返回代表点的一个物体值
X、y参数使用MapBasic正在默认使用的坐标系统。MapBasic使用经纬度坐标系统,不过Set CoordSys语句能够重新设置MapBasic来使用一个不同的坐标系统。注意MapBasic的坐标系统独立于任何map窗口的坐标系统。点将采用现在选中的符号方式。通过CreateCircle( )函数可以创建一个分配给物体变量的圆,储存在已有表的一行中(通过update刷新语句),或者插入到新的一行表中(通过插入语句)
注意:在一个布局窗口创建一个物体前,必须先声明Set CoordSys Layout语句。
CreateText( ) 函数
目的
返回一个特殊地图窗口的文字对象
语法
CreateText( window_id , x , y , text , angle , anchor , offset )
window_id是代表一个地图窗口的的整型窗口标志
X、y是单精度值,代表文字放置的x/y轴位置
Text是字符型值,代表组成文字对象的文字
Angle是单精度值,代表旋转的角度,如是水平文字,输入0
Anchor是从0到8的整型数值,控制文字与锚定位置的相对位置
Location输入以下代码中的一行
文本位置数字代码
居中 0
上左 1
上中 2
上右 3
中左 4
中右 5
下左 6
下中 7
下右 8
Offset是从0到50的一个整数值,代表文字与锚定位置的偏移值(象素),当锚定值为0时,offset可以忽略(居中)
返回值
Object
描述
CreateText( )函数返回一个特殊地图窗口的文字对象
文字对象使用现有的字体形式
当文字创建时,字高被现有的字体控制。不过,当文字创建后,它的大小依赖地图窗口的缩放,放大会使文字显得大一些。