使用mapbasic画基站扇区

合集下载

几种mapinfo插件的使用

几种mapinfo插件的使用

MAPINFO介绍错误!未定义书签。

●主界面错误!未定义书签。

●图层控制错误!未定义书签。

●创建点错误!未定义书签。

●创建专题地图错误!未定义书签。

几种插件的使用方法错误!未定义书签。

●载入插件错误!未定义书签。

●Piano的使用方法错误!未定义书签。

●MIPT的使用方法错误!未定义书签。

●Easywork的使用方法错误!未定义书签。

●利用插件对NEMO和TEMS路测文件进行拉线分析错误!未定义书签。

几种MAPINFO插件的使用MAPINFO是一种广泛使用的绘图和地理分析软件,可实现多种复杂的地理分析功能,在GSM网络优化中也可利用其进行CM和PM数据分析。

下面对MAPINFO的基本使用方法和几种常见插件进行简单的探讨。

MAPINFO介绍●主界面:主要包括主要工具栏、绘图工具栏、常用工具栏和插件工具栏(如Piano_30工具等)在主界面左下角显示当前状态:可以根据情况调整为光标位置,地图比例和缩放(窗口宽度)另外可以选定图层进行信息编辑,在图一中该处显示为“无”,则绘图工具栏内图标均显示为灰色,无法进行编辑;选定SITE_070119层后图标显示为黑色,可以进行编辑:●图层控制:我们常用的PIANO层中包括小区的信息有CI,LAC,BSC,BCCH…等,通过图层控制我们可以方便改变小区的标注,右键点击后会弹出一菜单,选择图层控制后出现对话窗口:点击标注按钮出现下面窗口:有时候我们会发现图中的一些小区无标注,可能是由于重名或名字重叠导致无法显示,这时候我们可以将“允许文本重复”和“允许文本重叠”选中,就可以看到标注项的内容。

点击上图红圈所示的样式图标,出现如下“文本样式”窗体:在此可对标注项进行编辑。

另外,按照以下步骤可对图形的显示属性进行编辑:●创建点:有时候会需要对大批的地理坐标导入电子地图,这里就可以使用MAPINFO的创建点来实现。

首先在EXCEL表格里面录入需要显示地点的名字,经纬度然后在MAPINFO打开文件,打开文件类型选择*.xls导入到MAPINFO后如图:之后就可以创建点了:点击创建点弹出窗口:可以看到创建点的信息来自与我们导入的“新建_Microsoft_Excel_工作表”点击使用符号右边按钮,可以调整创建点的显示属性取得X、Y坐标的列应和经度、纬度所在列对应确定后就在电子地图上生成了我们所要的点●创建专题地图:通过创建专题地图我们可以对地图数据进行分析和显示,下面以建立小区LAC 视图为例进行说明:步骤1:选择专题地图类型,对于LAC我们选择为独立值步骤二:选择相应的表及字段,这里选择site_070119中的LAC字段步骤三:确定不同LAC的显示属性,通过点击样式我们可以调整不同LAC显示为不同颜色:以下为按LAC进行专题划分后的电子地图显示:几种插件的使用方法●载入插件:使用插件之前首先要载入,方法如下:如果只是临时使用,以后不常用,可直接打开*.MBX文件,或从“工具->运行MapBasic程序打开”,如果是经常使用,可从“工具—>工具管理器”中点击增加工具来载入,方法如下:如上图示,在增加工具窗口中,标题可自定义工具名称,位置可通过框右侧如红圈示浏览按钮选择,然后点击确定。

用2007画扇区源码-mapbasic

用2007画扇区源码-mapbasic
Sub Main
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"

画基站扇区的一种方法

画基站扇区的一种方法

画基站扇区的一种方法开发环境:VB + MapX代码:'创建扇区Private Function FeatureFactoryCell(ByVal longitude As Double, ByVal latitude As Double, ByVal angle As Integer, ByVal Lac As Integer, ByVal sectorSign As Integer) As FeatureDim FeatureRegion As FeatureDim FeatureCircular As FeatureDim FeatureSector As FeatureDim pointCenter As New PointDim pointTemp As New PointDim pointRegion As New PointsDim angleInteger As IntegerDim angleMod As IntegerDim angleTemp1 As IntegerDim angleTemp2 As IntegerpointCenter.Set longitude, latitudeIf (angle < 0 Or angle > 360) ThenMsgBox "基站小区角度存在误差"End If'增加扇区的中心点pointTemp.Set longitude, latitudepointRegion.Add pointTemp'三角形的右上角坐标,并添加到点集angleTemp1 = angle + 30If (angleTemp1 > 360) ThenangleTemp1 = angleTemp1 - 360End IfangleInteger = angleTemp1 \ 90angleMod = angleTemp1 Mod 90Select Case angleIntegerpointTemp.Set longitude + distanceRegion * Sin(angleMod / 180 * 3.1415926535897 9),latitude + distanceRegion * Cos(angleMod / 180 * 3.14159265358979)Case 1pointTemp.Set longitude + distanceRegion * Cos(angleMod / 180 * 3.1415926535897 9),latitude - distanceRegion * Sin(angleMod / 180 * 3.14159265358979)Case 2pointTemp.Set longitude - distanceRegion * Sin(angleMod / 180 * 3.1415926535897 9),latitude - distanceRegion * Cos(angleMod / 180 * 3.14159265358979)Case 3pointTemp.Set longitude - distanceRegion * Cos(angleMod / 180 * 3.1415926535897 9),latitude + distanceRegion * Sin(angleMod / 180 * 3.14159265358979)Case 4pointTemp.Set longitude + distanceRegion * Sin(angleMod / 180 * 3.1415926535897 9),latitude + distanceRegion * Cos(angleMod / 180 * 3.14159265358979)End SelectpointRegion.Add pointTemp'三角形的左上角坐标,并添加到点集angleTemp1 = angle - 30If (angleTemp1 < 0) ThenangleTemp1 = angleTemp1 + 360End IfangleInteger = angleTemp1 \ 90angleMod = angleTemp1 Mod 90Select Case angleIntegerCase 0pointTemp.Set longitude + distanceRegion * Sin(angleMod / 180 * 3.1415926535897 9),latitude + distanceRegion * Cos(angleMod / 180 * 3.14159265358979)Case 1pointTemp.Set longitude + distanceRegion * Cos(angleMod / 180 * 3.1415926535897 9),latitude - distanceRegion * Sin(angleMod / 180 * 3.14159265358979)pointTemp.Set longitude - distanceRegion * Sin(angleMod / 180 * 3.1415926535897 9),latitude - distanceRegion * Cos(angleMod / 180 * 3.14159265358979)Case 3pointTemp.Set longitude - distanceRegion * Cos(angleMod / 180 * 3.1415926535897 9),latitude + distanceRegion * Sin(angleMod / 180 * 3.14159265358979)Case 4pointTemp.Set longitude + distanceRegion * Sin(angleMod / 180 * 3.1415926535897 9),latitude + distanceRegion * Cos(angleMod / 180 * 3.14159265358979)End SelectpointRegion.Add pointTempIf sectorSign = 1 ThenSet FeatureRegion = Map1.FeatureFactory.CreateRegion(pointRegion)Set FeatureCircular = Map1.FeatureFactory.CreateCircularRegion(miCircleTypeMap, pointCen ter, 0.1, , 15) '(圆形)Set FeatureSector = Map1.FeatureFactory.IntersectFeatures(FeatureRegion, FeatureCircula r) '(组合图元)ElseSet FeatureRegion = Map1.FeatureFactory.CreateRegion(pointRegion)Set FeatureCircular = Map1.FeatureFactory.CreateCircularRegion(miCircleTypeMap, pointCen ter, 0.3, , 15) '(圆形)Set FeatureSector = Map1.FeatureFactory.IntersectFeatures(FeatureRegion, FeatureCircula r) '(组合图元)End If'连接数据库,设置扇区样式Dim SQL As StringDim cn As New ADODB.ConnectionDim rs As New ADODB.Recordsetcn.Provider = "Microsoft.Jet.OLEDB.4.0"cn.ConnectionString = "Data Source=" & App.Path & "\data.mdb"cn.OpenSQL = "select LAC,RED,BLUE,GREEN from laccolor"Set rs = New ADODB.RecordsetSet rs.ActiveConnection = cnrs.Open SQLrs.MoveFirstWhile Not rs.EOFIf Lac = rs.Fields.Item("LAC") ThenFeatureSector.Style.RegionColor = RGB(rs.Fields.Item("RED"), rs.Fields.Item("BLUE"), rs.Fiel ds.Item("GREEN"))'rs.MoveLastEnd Ifrs.MoveNextWendrs.Closecn.CloseSet FeatureFactoryCell = FeatureSectorEnd Function。

Mapinfo_在网络规划中常用操作指导

Mapinfo_在网络规划中常用操作指导

Mapinfo在网络规划中常用操作指导目录1. 我如何根据工参制作一幅基站拓扑图? (3)2.我不想生成扇区图,我只想生成点状的基站分布图,怎么做? (7)3. 我想给基站拓扑图赋上颜色,最好不同的扇区颜色不同,怎么做? (8)4. 如何制作专题制图? (9)5. 我想做一幅区域划分图,怎么做? (13)6. 我想要获取一幅地图图元的经纬度,怎么做? (15)7. 如何在地图上获取一块区域的面积? (20)8. 如何在地图上查询特定的图元? (22)9. 我在下面地市办公,可是暂时还没有买到电子地图,可工作又需要一定的地图进行辅助,怎么办? (27)1. 我如何根据工参制作一幅基站拓扑图?所需:Mapinfo、sitesee插件、工参表(包含经纬度)⑴首先打开Mapinfo选择Tools—Run MapBasic Program,找到sitesee.mbx所在位置,点击打开后。

在Table菜单下增加了WFI Sitesee子菜单。

⑵打开工参表(示例)由于Mapinfo打开xls文件时较为复杂,我们通常是将xls转换为txt后再导入Mapinfo 中。

打开工参表后,点击“文件—另存为”注意选择保存类型为“文本文件(制表符分隔)(*.txt)”。

而后在Mapinfo中,点击“文件—打开”注意打开文件类型选择,点击打开后,注意如下对话框中红色部分的选择字体的设置设置为不用转换,并采用第一行作为列标题。

点击OK后即成功导入表。

⑶点击Table—WFI SiteSee—Create Site Boundaries将表中各个字段填写完全,点击OK后生成tab文件并提示填选文件保存位置。

⑷点击File—Open打开生成的Tab文件如图2.我不想生成扇区图,我只想生成点状的基站分布图,怎么做?⑴按照生成基站拓扑图的所讲的方法将工参数据转换成txt格式文件并用Mapinfo打开⑵点击Table—Create Points注意选择好x、y坐标分别采用的数据的列名,通常我们均采用经度作为x轴,纬度作为y 轴。

MAP INFO6.0基础使用介绍

MAP INFO6.0基础使用介绍

MAP INFO6.0使用基础介绍无线网络优化工作需要精确的电子地图来展示不同基站不同天线的相邻关系,MAPINFO 工具是生成电子地图的一种强有力的工具,充分利用MAPINFO 工具来制作各个项目的电子地图,从而为网络优化工作提供数据分析平台,是非常必要的。

下面将以制作上海MAP INFO 来说明电子地图的制作过程。

1、 首先,准备好制作电子地图的基站信息表,基站信息表如下图:说明:每个基站的每个扇区信息用一行文字表示,如图中的红色框内的内容为一个基站的三个扇区,其中的radius 表示在地图中需要表示的天线方向的大小,一般选择0.003m 左右,所谓Latitude/Longtitude 表示基站的纬度/个端点的纬度/2、 基站信息表中对于扇区线3、 将经纬度等基站信息做成EXCEL 表格,并利用EXCEL ,将表格存成EXCEL95工作簿的形式!!说明:由于MAP INFO 只能认识EXCEL95和97的格式,所以必须要先转化。

4、打开mapinfo 后,按下打开按钮(文件夹张开的那个按钮),在文件类型中选择*.xls 。

找到第一步中做好的excel 表格, 打开,然后出现如下对话框:说明:由于我们所做的表格,第一行为标题行,而不是数据,所以要把A1改为A2,意思是从第二行开始导入基站信息。

5、选择菜单中的table---create points ,如图1、先在此处打勾2、选择other3、把此处原来的A1改成A2将基站信息表存储成95格式其他不用选。

选完后按ok 。

说明:选择longitude 和latitude ,意思是以longitude (经度)为横坐标,latitude (纬度)为纵坐标,将表格中的数据建立为点。

longitude 和latitude 是表格中自己起的字段名。

6、选择菜单栏中Table---Maintance---Table Structure ,然后选中Table is Mapable 复选项表示该表可以作为地图使用,再根据需要选择需要索引的字段,如下图所示:说明:注意字段类型,如果对于类似于经纬度等信息,需要用Float 字段表示,否则无法正常显示地图中的基站信息7、选择菜单栏中window---new map window,基站位置就会显示出来。

使用mapbasic画基站扇区

使用mapbasic画基站扇区

'##############################################################'函数申明Include "MapBasic.def"Global Length as floatGlobal Path as stringDeclare SUB MainDeclare SUB Create_BCCHDeclare SUB Create_900'declare SUB Create_1800Declare SUB Create_SiteNameDeclare SUB Create_CellIDDeclare SUB Create_BCCH_NameCIDeclare Function Alterlon (ByVal 经度 as string,ByVal 纬度 as string,ByVal 方向角 as string,ByVal 定位长度 as string,ByValFileName as string) as integer'##############################################################'########################### MAIN程序#############################'##############################################################SUB MainLength=0.0025 '控制总体大小Path="D:\2"Call Create_900' Call Create_BCCH' Call Create_SiteName' Call Create_CellIDEND SUB'##############################################################'########################画基站 GSM900的扇区子程序#######################'##############################################################SUB Create_900Dim x0,y0,x1,y1,x2,y2 as floatDim ABC as ObjectDim ABC1 as ObjectDim i as IntegerDim MyRow as IntegerDim Length1 as FloatDim Row as IntegerDim Freq as StringDim Sitestytle as IntegerDim BSC as StringDim SiteStyle as IntegerDim BCCH as StringDim SiteName as StringDim CellID as StringDim FillBrush as BrushDim BSCwang as StringDim RowPi as FloatDim ObjCellID as ObjectMyRow=1Open Table Path+"\Rio2" As RFinfo1 Interactive'打开基站信息表Create Map For RFinfo1 ' 'select * from rfinfo where RFinfo.BSC网类="GSM900" into rfinfo1Create Table RF2 (NNN integer) File Path+"\Temp"Create Map For RF2Fetch First From RFinfo1 ‘设置一个表的光标位置(即哪一行是当前行)Do While Not EOT(RFinfo1)FillBrush=MakeBrush(2, white, Blue) ‘返回填充图案值Length1=Length ‘Length=0.0025 '控制总体大小Set Style Pen MakePen(1, 2, Black)‘返回一线型值,Pen为图形对象指定一种线型Row=RFinfo1.AzimuthX0=RFinfo1.LonY0=tX1=X0+Cos(3.14/4)*Length1Y1=Y0+Sin(3.14/4)*Length1X2=X0+Cos(3.14/4+3.14)*Length1Y2=Y0+Sin(3.14/4+3.14)*Length1‘定位扇形的三个点坐标'BCCH=RFinfo1.BCCHSiteName=RFinfo1.CellNameCellID=RFinfo1.CI'BSCwang=RFinfo1.BSCSitestytle=1'画定向天线的方向角Create Arc Into Variable ABC ( X1 , Y1 ) ( X2 , Y2 ) (60-Row) (120-Row) Pen(6, 2, Red)ABC=ConvertToRegion ( ABC )‘=ConvertToRegion ( ABC )返回一个形状近似于某个对象的区域对象Alter Object ABC Info OBJ_INFO_BRUSH, FillBrush Node Add ( X0, Y0 )Update RFinfo1 Set Obj = ABC Where RowID= MyRow''' row=90-row' rowpi=(row/180)*3.14'' length1=length'' if row=0 or row=-90 or row=-270 or row=-180 then' length1=length*1.1' end if'' y2=y0+length1*sin(rowpi)' x2=x0+length1*cos(rowpi)''写字Insert Into RF2 select SiteName from RFinfo1Create Text Into Variable ObjCellID SiteName (x2 , y2) ((x2+length1) , (y2+length1))Update RF2 Set Obj=ObjCellID Where RowID=MyRow' insert into drawbcch values(x0,y0,bcch,row,sitestyle) ' insert into drawsitenamevalues(sitename,x0,y0,cellid,row,sitestyle)' Insert Into RF2 (Object) values(ObjCellID )MyRow=MyRow+1Note MyRowFetch Next From RFinfo1LoopCommit Table RFinfo1Map From RFinfo1END SUB'###########################################################'改变经纬度Function alterlon (ByVal 经度 as string,ByVal 纬度 as string,ByVal 方向角 as string,ByVal 定位长度 as string,ByVal filename as string) as integerdim x0,y0,x2,y2 as floatdim drawobj as objectdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bcch as stringmyrow=1open table path+"\"+filename as filename1fetch first from filename1do while not EOT(filename1)length1=val(定位长度) '频点位置X0=val(经度)Y0=val(纬度)if filename="drawbcch" thenrow=90-val(方向角)rowpi=(row/180)*3.14if row=0 or row=-90 or row=-270 or row=-180 then length1=length1*1.1end ify2=y0+length1*sin(rowpi)x2=x0+length1*cos(rowpi)elserow=val(方向角)y2=y0-length1*sin((row/180)*3.14)x2=x0+length1*cos((row/180)*3.14)end ifCreate Point Into Variable drawobj (X2 ,Y2) Symbol(22,white,1)update filename1 set 经度=x2 where rowid=myrowupdate filename1 set 纬度=y2 where rowid=myrowupdate filename1 set obj=objbcch where rowid=myrowMyRow=MyRow+1fetch next from filename1Loopcommit table filename1Add Map Auto Layer filename1alterlon=1end function'###########################################################'画各扇区频点,基站名字,基站cellidsub create_bcch_namecidim drawlength as floatdim return as integer'画基站频点'open table path+"\drawbcch" as filenamedrawlength=lengthreturn=alterlon("drawbcch.jindubcch","drawbcch.weidubcch","drawbcch.f angxiangjiaobcch",drawlength,"drawbcch")'画基站名字'open table path+"\drawsitename" as filenamedrawlength=length*0.3return=alterlon("drawsitename.jindusitename","drawsitename.weidusiten ame",10,drawlength,"drawsitename")'画基站cellid'open table path+"\drawcellid" as filenamedrawlength=length*0.3return=alterlon("drawcellid.jinducellid","drawcellid.weiducellid",50, drawlength,"drawcellid")end sub'########################################################### '??????sub create_bcchdim x0,y0,x2,y2 as floatdim objbcch as objectdim i as integerdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bcch as stringlength=length*0.7myrow=1open table path+"\drawbcch" as drawbcchfetch first from drawbcchdo while not EOT(drawbcch)' if drawbcch.bscwangxing="DCS1800" then'??1800?900????' length1=length*0.5' elselength1=length' end ifX0=drawbcch.jindubcchY0=drawbcch.weidubcchrow=90-val(drawbcch.fangxiangjiaobcch)rowpi=(row/180)*3.14if row=0 or row=-90 or row=-270 or row=-180 then length1=length1*1.1end ify2=y0+length1*sin(rowpi)x2=x0+length1*cos(rowpi)Create Point Into Variable objbcch (X2 ,Y2) Symbol(22,white,1)update drawbcch set jindubcch=x2 where rowid=myrow update drawbcch set weidubcch=y2 where rowid=myrow update drawbcch set obj=objbcch where rowid=myrow MyRow=MyRow+1fetch next from drawbcchLoopcommit table drawbcchAdd Map Auto Layer drawbcchbrowse * from drawbcchend sub'###########################################################'??????sub Create_SiteNamedim x0,y0,x1,y1,x2,y2 as floatdim objsitename as objectdim i as integerdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bsc as stringdim sitestyle as stringdim bcch as stringdim sitename as stringdim cellid as stringdim ci as integermyrow=1open table path+"\drawsitename" as drawsitenamefetch first from drawsitenamedo while not EOT(drawsitename)length1=length*0.3 '???X0=drawsitename.jindusitenameY0=drawsitename.weidusitenamesitestyle=drawsitename.zhanxingsitenamecellid=drawsitename.cisitenamesitename=drawsitename.sitenamesitenameci=val(left$(cellid, 1))y1=y0-length1*sin((10/180)*3.14) '10 ???????x1=x0+length1*cos((10/180)*3.14)'y2=y0-length2*sin((10/180)*3.14)'x2=x0+length2*cos((10/180)*3.14)if ci=1 thenCreate Point Into Variable objsitename (X1 ,Y1) Symbol(22,white,1)update drawsitename set jindusitename=x1 where rowid=myrowupdate drawsitename set weidusitename=y1 where rowid=myrowupdate drawsitename set obj=objsitename where rowid=myrowend ifMyRow=MyRow+1fetch next from drawsitenameLoopcommit table drawsitenameAdd Map Auto Layer drawsitenamebrowse * from drawsitenameend sub'###########################################################'????cellidsub Create_CellIDdim x0,y0,x1,y1,x2,y2 as floatdim objcellid as objectdim i as integerdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bsc as stringdim sitestyle as stringdim bcch as stringdim sitename as stringdim cellid as stringdim ci as integermyrow=1open table path+"\drawcellid" as drawcellidfetch first from drawcelliddo while not EOT(drawcellid)length1=length*0.3 '??X0=drawcellid.jinducellidY0=drawcellid.weiducellidsitestyle=drawcellid.zhanxingcellidcellid=drawcellid.cicellidsitename=drawcellid.sitenamecellidci=val(left$(cellid, 1))y1=y0-length1*sin((50/180)*3.14) '50 ??????? x1=x0+length1*cos((50/180)*3.14)'y2=y0-length2*sin((40/180)*3.14)'x2=x0+length2*cos((10/180)*3.14)if ci=1 thenCreate Point Into Variable objcellid (X1 ,Y1) Symbol(22,white,1)update drawcellid set jinducellid=x1 where rowid=myrowupdate drawcellid set weiducellid=y1 where rowid=myrowupdate drawcellid set obj=objcellid where rowid=myrowend ifMyRow=MyRow+1fetch next from drawcellidLoopcommit table drawcellidAdd Map Auto Layer drawcellidbrowse * from drawcellidend sub。

三维基站 卫星地图的制作

三维基站 卫星地图的制作

GOOGLE EARTH在日常网络优化中在应用一.效果图二.三维地图的制作2.1 工具:制作此地图需要用到的工具有GOOGLE EARTH ,MAPINFO,MAPINFO 插件MIPT2.1,Mapinfo2Google插件,基站站点生成工具,基站扇区绘制工具。

2.2 原理:三维基站地图由A,B,C三个GOOGLE EARTH图层组成。

A图层由二维的MAPINFO导出,主要实现在卫星地图上显示基站频点的功能。

B 图层由基站站点生成工具生成,实现在卫星地图上显示基站站点及其基本信息如BSC CI等功能。

C图层由googleearth基站扇区绘制工具生成,实现在卫星地图上显示基站三维扇区的生成以及站高,基站基覆盖范围等的信息的生成。

2.3地图制作流程:STEP1:A图层的制作:1.使用MIPT2.1插件制作基站的二维基站地图。

2.使用Mapinfo2Google插件将制作好的二维基站地图导出生成GOOGLE EARTH的KML格式文件。

(注意,在转换成KML格式文件时,MAPINFO地图的窗口要用最小模式,否则可能会遇到不能转换的情况)。

制作好的图层如下:注意:我们只需要A图层中的MIPTCELL层,在导入后将MIPTSITE层的标记去掉即可。

STEP2:B图层的制作:1.将基站数据导入基站站点制作模版。

经纬度填写基站的经纬度,标注标题下填写基站的中文名字,地点描述根据实际工作需要任意进行添加。

保存为KML格式文件。

将制作好的KML打开,效果图如下:STEP3:C图层的制作:1.将基站数据导入扇区制作工具。

在小区名称处填写基站中文名,编号处填CI,经纬度处填写基站经纬度,方位角出填写扇区方位角,其他信息可根据实际工作需要进行填写。

2.点击生成KML文件,按照提示将各个信息属性进行选择然后选择确定进行转换。

希望这项新技术能为我们日常网络优化工作提供更多的帮助。

mapbasic中文参考手册

mapbasic中文参考手册

Mapbasic(中文)参考手册1、MAPBASIC语言概述1.1、基本语法1.1.1、变量1.1.2、循环和分枝1.1.3、输出和打印1.1.4、过程(Mn和Saiubs)1.1.5、错误处理1.2、函数1.2.1、定制函数1.2.2、数据转换函数1.2.3、日期和时间函数1.2.4、数学函数1.2.5、字符串函数1.3、表的操作1.3.1、建立和编辑表1.3.2、表的查询1.3.3、远程数据操作1.4、非表文件操作1.4.1、文件的输入与输出1.4.2、文件与目录1.5、MAP和GRAPHY对象的操作1.5.1、创建Map对象1.5.2、编辑Map对象1.5.3、查询Map对象1.5.4、对象式样的操作1.5.5、Map窗的操作1.6建立用户介面1.6.1、按钮板(工具条)1.6.2、对话框1.6.3、菜单1.6.4、窗口1.6.5、系统事件处理器1.7、与别的应用程讯序的通讯1.7.1、DDE(动态数据交换,仅Windows) 1.7.2、集成图(只限在Windows下)1.7.3、萍果机事件(只限在Macintosh下)1.8、特殊语句和函数2、MAPBASIC各函数和语句的名称及其作用2.1、A2.2、B2.3、C2.4、D2.5、E2.6、F2.7、G2.8、H---K2.9、L2.10、M2.11、N2.12、O2.13、P2.14、R2.15、S2.16、T2.17、U2.18、V---Y3、约定这本手册对MapBasic 编程语言中的每个语句和函数都进行了详细说明, 要学习MapBasic 语言编程的基本概念或者要学习开发环境的应用,请参考《用户手册》.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、过程(Mn和Saiubs)定义一个过程 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,CreatePoint,Create Rect,Create Region,Create RoundRect,Create Text,AutoLab el创建函数 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(), ProportionOver lap()返回坐标值 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 r emove检测用户是否按击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语句的一部分,把一个列表控件加到对话框内, List Box(列表框内)控件与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 Outside OverlayNodes() ---返回基于先存对象的一个对象,在它与第二个对象相交的地方加上了新结点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---返回有关当前选择的信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

'##############################################################'函数申明Include "MapBasic.def"Global Length as floatGlobal Path as stringDeclare SUB MainDeclare SUB Create_BCCHDeclare SUB Create_900'declare SUB Create_1800Declare SUB Create_SiteNameDeclare SUB Create_CellIDDeclare SUB Create_BCCH_NameCIDeclare Function Alterlon (ByVal 经度 as string,ByVal 纬度 as string,ByVal 方向角 as string,ByVal 定位长度 as string,ByValFileName as string) as integer'##############################################################'########################### MAIN程序#############################'##############################################################SUB MainLength=0.0025 '控制总体大小Path="D:\2"Call Create_900' Call Create_BCCH' Call Create_SiteName' Call Create_CellIDEND SUB'##############################################################'########################画基站 GSM900的扇区子程序#######################'##############################################################SUB Create_900Dim x0,y0,x1,y1,x2,y2 as floatDim ABC as ObjectDim ABC1 as ObjectDim i as IntegerDim MyRow as IntegerDim Length1 as FloatDim Row as IntegerDim Freq as StringDim Sitestytle as IntegerDim BSC as StringDim SiteStyle as IntegerDim BCCH as StringDim SiteName as StringDim CellID as StringDim FillBrush as BrushDim BSCwang as StringDim RowPi as FloatDim ObjCellID as ObjectMyRow=1Open Table Path+"\Rio2" As RFinfo1 Interactive'打开基站信息表Create Map For RFinfo1 ' 'select * from rfinfo where RFinfo.BSC网类="GSM900" into rfinfo1Create Table RF2 (NNN integer) File Path+"\Temp"Create Map For RF2Fetch First From RFinfo1 ‘设置一个表的光标位置(即哪一行是当前行)Do While Not EOT(RFinfo1)FillBrush=MakeBrush(2, white, Blue) ‘返回填充图案值Length1=Length ‘Length=0.0025 '控制总体大小Set Style Pen MakePen(1, 2, Black)‘返回一线型值,Pen为图形对象指定一种线型Row=RFinfo1.AzimuthX0=RFinfo1.LonY0=tX1=X0+Cos(3.14/4)*Length1Y1=Y0+Sin(3.14/4)*Length1X2=X0+Cos(3.14/4+3.14)*Length1Y2=Y0+Sin(3.14/4+3.14)*Length1‘定位扇形的三个点坐标'BCCH=RFinfo1.BCCHSiteName=RFinfo1.CellNameCellID=RFinfo1.CI'BSCwang=RFinfo1.BSCSitestytle=1'画定向天线的方向角Create Arc Into Variable ABC ( X1 , Y1 ) ( X2 , Y2 ) (60-Row) (120-Row) Pen(6, 2, Red)ABC=ConvertToRegion ( ABC )‘=ConvertToRegion ( ABC )返回一个形状近似于某个对象的区域对象Alter Object ABC Info OBJ_INFO_BRUSH, FillBrush Node Add ( X0, Y0 )Update RFinfo1 Set Obj = ABC Where RowID= MyRow''' row=90-row' rowpi=(row/180)*3.14'' length1=length'' if row=0 or row=-90 or row=-270 or row=-180 then' length1=length*1.1' end if'' y2=y0+length1*sin(rowpi)' x2=x0+length1*cos(rowpi)''写字Insert Into RF2 select SiteName from RFinfo1Create Text Into Variable ObjCellID SiteName (x2 , y2) ((x2+length1) , (y2+length1))Update RF2 Set Obj=ObjCellID Where RowID=MyRow' insert into drawbcch values(x0,y0,bcch,row,sitestyle) ' insert into drawsitenamevalues(sitename,x0,y0,cellid,row,sitestyle)' Insert Into RF2 (Object) values(ObjCellID )MyRow=MyRow+1Note MyRowFetch Next From RFinfo1LoopCommit Table RFinfo1Map From RFinfo1END SUB'###########################################################'改变经纬度Function alterlon (ByVal 经度 as string,ByVal 纬度 as string,ByVal 方向角 as string,ByVal 定位长度 as string,ByVal filename as string) as integerdim x0,y0,x2,y2 as floatdim drawobj as objectdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bcch as stringmyrow=1open table path+"\"+filename as filename1fetch first from filename1do while not EOT(filename1)length1=val(定位长度) '频点位置X0=val(经度)Y0=val(纬度)if filename="drawbcch" thenrow=90-val(方向角)rowpi=(row/180)*3.14if row=0 or row=-90 or row=-270 or row=-180 then length1=length1*1.1end ify2=y0+length1*sin(rowpi)x2=x0+length1*cos(rowpi)elserow=val(方向角)y2=y0-length1*sin((row/180)*3.14)x2=x0+length1*cos((row/180)*3.14)end ifCreate Point Into Variable drawobj (X2 ,Y2) Symbol(22,white,1)update filename1 set 经度=x2 where rowid=myrowupdate filename1 set 纬度=y2 where rowid=myrowupdate filename1 set obj=objbcch where rowid=myrowMyRow=MyRow+1fetch next from filename1Loopcommit table filename1Add Map Auto Layer filename1alterlon=1end function'###########################################################'画各扇区频点,基站名字,基站cellidsub create_bcch_namecidim drawlength as floatdim return as integer'画基站频点'open table path+"\drawbcch" as filenamedrawlength=lengthreturn=alterlon("drawbcch.jindubcch","drawbcch.weidubcch","drawbcch.f angxiangjiaobcch",drawlength,"drawbcch")'画基站名字'open table path+"\drawsitename" as filenamedrawlength=length*0.3return=alterlon("drawsitename.jindusitename","drawsitename.weidusiten ame",10,drawlength,"drawsitename")'画基站cellid'open table path+"\drawcellid" as filenamedrawlength=length*0.3return=alterlon("drawcellid.jinducellid","drawcellid.weiducellid",50, drawlength,"drawcellid")end sub'########################################################### '??????sub create_bcchdim x0,y0,x2,y2 as floatdim objbcch as objectdim i as integerdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bcch as stringlength=length*0.7myrow=1open table path+"\drawbcch" as drawbcchfetch first from drawbcchdo while not EOT(drawbcch)' if drawbcch.bscwangxing="DCS1800" then'??1800?900????' length1=length*0.5' elselength1=length' end ifX0=drawbcch.jindubcchY0=drawbcch.weidubcchrow=90-val(drawbcch.fangxiangjiaobcch)rowpi=(row/180)*3.14if row=0 or row=-90 or row=-270 or row=-180 then length1=length1*1.1end ify2=y0+length1*sin(rowpi)x2=x0+length1*cos(rowpi)Create Point Into Variable objbcch (X2 ,Y2) Symbol(22,white,1)update drawbcch set jindubcch=x2 where rowid=myrow update drawbcch set weidubcch=y2 where rowid=myrow update drawbcch set obj=objbcch where rowid=myrow MyRow=MyRow+1fetch next from drawbcchLoopcommit table drawbcchAdd Map Auto Layer drawbcchbrowse * from drawbcchend sub'###########################################################'??????sub Create_SiteNamedim x0,y0,x1,y1,x2,y2 as floatdim objsitename as objectdim i as integerdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bsc as stringdim sitestyle as stringdim bcch as stringdim sitename as stringdim cellid as stringdim ci as integermyrow=1open table path+"\drawsitename" as drawsitenamefetch first from drawsitenamedo while not EOT(drawsitename)length1=length*0.3 '???X0=drawsitename.jindusitenameY0=drawsitename.weidusitenamesitestyle=drawsitename.zhanxingsitenamecellid=drawsitename.cisitenamesitename=drawsitename.sitenamesitenameci=val(left$(cellid, 1))y1=y0-length1*sin((10/180)*3.14) '10 ???????x1=x0+length1*cos((10/180)*3.14)'y2=y0-length2*sin((10/180)*3.14)'x2=x0+length2*cos((10/180)*3.14)if ci=1 thenCreate Point Into Variable objsitename (X1 ,Y1) Symbol(22,white,1)update drawsitename set jindusitename=x1 where rowid=myrowupdate drawsitename set weidusitename=y1 where rowid=myrowupdate drawsitename set obj=objsitename where rowid=myrowend ifMyRow=MyRow+1fetch next from drawsitenameLoopcommit table drawsitenameAdd Map Auto Layer drawsitenamebrowse * from drawsitenameend sub'###########################################################'????cellidsub Create_CellIDdim x0,y0,x1,y1,x2,y2 as floatdim objcellid as objectdim i as integerdim myrow as integerdim length1 as floatdim row as integerdim rowpi as floatdim bsc as stringdim sitestyle as stringdim bcch as stringdim sitename as stringdim cellid as stringdim ci as integermyrow=1open table path+"\drawcellid" as drawcellidfetch first from drawcelliddo while not EOT(drawcellid)length1=length*0.3 '??X0=drawcellid.jinducellidY0=drawcellid.weiducellidsitestyle=drawcellid.zhanxingcellidcellid=drawcellid.cicellidsitename=drawcellid.sitenamecellidci=val(left$(cellid, 1))y1=y0-length1*sin((50/180)*3.14) '50 ??????? x1=x0+length1*cos((50/180)*3.14)'y2=y0-length2*sin((40/180)*3.14)'x2=x0+length2*cos((10/180)*3.14)if ci=1 thenCreate Point Into Variable objcellid (X1 ,Y1) Symbol(22,white,1)update drawcellid set jinducellid=x1 where rowid=myrowupdate drawcellid set weiducellid=y1 where rowid=myrowupdate drawcellid set obj=objcellid where rowid=myrowend ifMyRow=MyRow+1fetch next from drawcellidLoopcommit table drawcellidAdd Map Auto Layer drawcellidbrowse * from drawcellidend sub。

相关文档
最新文档