使用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---返回有关当前选择的信息。

关于Mapinfo基站分布管理几点应用

关于Mapinfo基站分布管理几点应用

关于Mapinfo基站分布管理几点应用zchz.xls2、运行Mapinfo,打开整理好含经纬度的excel文件(打开前先保存清楚格式的.xls表):3、第一行仍作为Mapinfo表格的标题行:4、经纬度要一定要选择浮点型(Float),其他的字符型即可;5、生成的.tab站点清单表:6、根据经纬度创建点(经纬度值位置显示基站符号):7、选择坐标对应的经纬度,设定基站符号图标类型,并设置显示相应符号的大小:8、关闭当前浏览窗口的.tab站点清单表,打开刚生成含基站个性符号的.tab图元表9、打开图元表后,右键图层控制(Layer Control),勾选显示标注,并可以设置标注显示在图层的最顶层,设置显示标注的字体类型及大小和颜色(标注的显示方式,不保存,下次打开仍需设置):10、以上几步没有加载矢量地图图层,可以减少操作时CPU及显存的负担以免卡机,接下来根据基站分布图划分区域并匹配巡检人或区域,首选加载矢量地图,显示方式选择当前;浏览窗口,选择需要打开的图纸,打开:效果如下:11、依然是右键图层控制,可以针对上述打开的地理图层勾选标注及设置字体类型及大小和颜色来显示路名等,这里不再一一设置:12、通过经纬度生成的基站图元表不可编辑,需要新建空白表或将图元表导入新的图层,因矢量图层用的比较多,这里梳理一下不可编辑图层导入生成可编辑矢量图层的方法。

首先,套用原生成的图层表格式新建空白图层,并加载到当前窗口:创建按钮后,这里可以修改新建图层的字段属性及字符类型及长度、新加字段等,下图新建巡检人字段及修改区域字段的长度(张川两个字4个字节,改成6个字节及支持三个字):其次,关闭当前窗口的所有图层,在同一个窗口打开新旧两个图层表,将原不可编辑的图层表信息导入新建图层(这里保存名称:zcfengqu)表中:最后,新导入的图层表标注等显示方式与上述一样,不在列举。

18、接下来就是重点,利用泰森算法(即泰森多边形)统计指定某个区域内的巡检人员归属,避免卡机,我们通过在加载地图时进行画伤疤线分区,画完伤疤线后关闭相关地图图层文件,减少计算机运行负担。

Mapinfo,sitsee添加,制作扇区,专题地图

Mapinfo,sitsee添加,制作扇区,专题地图

Mapinfo在网络优化中的使用说明目录1.工参文本格式 (1)1.1.工参表格式 (1)1.2.工参表格内容 (1)2.使用sitesee插件 (2)2.1.第一步 (2)2.2.第二步 (2)2.3.第三步 (3)2.4.第四步 (3)2.5.第五步 (4)2.6.第六步 (4)3.导入工参表 (5)3.1.打开工参表 (5)3.2.打使用表格第一行作为标题 (6)3.3.修改字符类型 (6)3.4.完成导入 (7)4.使用Sitesee制作扇区图 (8)4.1.运行sitesee (8)4.2.选择并填入对应值 (9)4.3.运行中 (10)4.4.保存图层 (11)4.5.关闭Mapinfo软件 (12)4.6.打开做好的图层 (12)4.7.显示小区“标示” (12)5.编辑图层 (14)5.1、修改图层的颜色 (14)5.2、按照条件选择小区 (16)5.3、制作专题地图 (18)5.3.1、制作分类专题地图 (18)5.3.2、制作分段专题地图 (20)5.4、图层合并 (26)1.工参文本格式1.1.工参表格式在Mapinfo中使用的工参表可以为EXCEL或TXT格式。

说明Excel必须是2003格式如果为07版office,需要把工参表另存为2003格式,如下图所示:建议:建议使用EXCEL工参表时,最好先把工参信息选择性粘贴到新的表中,因为老表中的单元格可能包含特殊格式或公式,导致Mapinfo无法识别。

1.2.工参表格内容工参表中必须具备经纬度、方位角,其他列都是可有可无。

强调:经纬度、方位角必须为数字格式。

可有通过相加运算验证。

注意:经度<180,纬度<90 方位角的值<360。

2.使用sitesee插件Sitesee是制作扇区图(三叶草)的插件,需先在Mapinfo中导入才能使用。

Sitesee插件只需在Mapinfo中导入一次,之后可以自动加载,但是不能改变Sitesee插件在电脑中的位置,否则会加载失败,需手动再加载一次。

Mapinfo制作基站三扇区图

Mapinfo制作基站三扇区图

Mapinfo制作基GSM基站地图目录1、GSM application主要功能特点及注意事项2、导入celldata电子表格并生成相应的电子地图:3、“refresh cell map ”命令应用说明4、频率规划应用:5、同频同BSIC问题排查:1、GSM application主要功能特点及注意事项GSM application主要功能特点如下:✧利用唯一的EXCEL电子表celldata.dbf或celldata.csv生成cell地图,并轻松地实现电子地图与EXCEL之间转换。

✧交互导入多种数据类型,如频数据freqdata.csv、邻区数据nebdata.csv、小区配置configdata.csv、话务统计sts.csv;更新相应的电子地图信息。

✧使用工具进行频率规划:同邻频查找、提供小区数据库和邻区数据库二种方式检查BCCH_BSIC规划。

✧使用工具查询正向\反向邻小区关系。

✧直接在电子地图中进行邻小区的增加、删除。

增加邻小区还可以选择:增加单向邻小区关系(源小区->目标小区),增加双向邻小区关系(源小区<->目标小区)。

增加完毕之后,根据源小区的BSC归属,自动生成N个相应的批处理文件。

现在可以支持MOTOROLA,NOKIA的邻区增删,使用时指定即可。

其它的设备或系统可以根据需求提供扩展。

✧邻小区数据分析:单向邻小区分析、同频同BSIC分析、目标小区正确性检查,以及Motorola切换算法及其相关的切换参数检查。

✧基站地图刷新功能,此功能可以在地图中方便地移动站点位置、调整小区方向角以及增加新站。

✧在生成基站地图或刷新基站地图时,提供个性化图型模式,并支持扇面与线状共存。

✧多种测试设备路测数据分析功能。

对路测中的RXLEV、RXQUAL等创建专项图层;支持主服小区连线,飞线时提供自定义条件设定,方便对特定的信息进行分析;如质量差分析,弱覆盖分析,事件分析,半速率分析,频段使用情况分析等;事实上,此项功能可扩展应用于新的系统分析。

Mapinfo插件sitesee的应用

Mapinfo插件sitesee的应用

如何用MapInfo创建带有扇区的基站图层一、概述在网络规划和优化的工作当中有时会碰到需要在MapInfo中显示带有扇区的基站图层,这里简单给出一个经验小结,希望能对大家的工作有所帮助;(基于MapInfo 8.0en和插件sitesee.mbx)二、创建步骤1、按下面的模版准备好输入数据:模版数据说明:1).红色背景的列项是必须包括的项,绿色背景的项是自己添加的非必选项,可以根据自己的需求再添加其他的列项,可以在MapInfo的Label中显示;2).加下划线的黑色字体的5列(BTSNAME LONG LAT CELL ID AZIMUTH)的数据来源于实际的网络数据,黄色字体的5列其取值是自己定义的,其中BANDWIDE就是后来显示的扇区的显示角度(建议取值30°-65°),RADIUS是显示扇区的半径(建议取值0.05-0.12);3).如上图所示:注意当该扇区为360°的时候,在AZIMUTH列里填的是omni,对应的BADNWIDE里要填上360;4).这里将indoor站点的AZIMUTH也归为omni了,实际可以根据需要来自己定义;2、运行MapInfo,选择按照模版准备好的数据3、打开,注意勾选Use Row Above Selected Range for Column Titles(表示表中第一行是title)4、点击OK,弹出5、点击OK,弹出下面的窗口6、关闭上面的窗口,点击Tools—Run MapBasic Program,如下图:7、点击Run MapBasic Program,然后选择插件(SiteSee)如下图:8、点击打开,然后点击菜单栏Table选择WFI SiteSee,选择Create Site Boundaries如下图:9、接着会弹出下面得窗口:10、如下选择好相应的项之后点击OK11、点击OK后出现保存图层的窗口,在文件名中输入要保存的文件名,点击保存即可;12、打开上一步中保存的文件;13、打开之后的结果如下图:14、点击右键选择Layer Control,修改Label和Display即可按我们的要求显示如下:所示:三、Sitesee 插件附件为Sitesee 插件和输入模版的压缩文件,为了便于管理,建议将Sitesee 插件为在MapInfo 安装目录的Tools 文件夹下。

制作MapInfo-LAC区域图层

制作MapInfo-LAC区域图层

制作MapInfo图层MapInfo图层是我们平时规划新站和规划邻区最重要的工具,图层主要包括“hh_bsc_border.TAB”(BSC边界图层)和“hh_bsc_name.TAB”(BSC名称图层),通过BSC图层和BSC_name图层我们可以很方便的看到BSC之间的边界与名称。

如下图。

制作MapInfo图层需要两点,1:一个文本文件,包含了CI、BSC_NAME、经纬度、方位角,2:安装了MapInfo软件。

下面为MapInfo软件的操作界面。

制作MapInfo图层:1)打开Mapinfo软件,点击文件菜单下打开按钮找到全网基站信息基础信息文本sector双击打开。

2)如图所示在“以第一列作为列标题”前空白处选中2)导入表后出现以下界面3)菜单栏→表→创建点,出现创建点界面后“取得X坐标的列[x]”选中longitude(经度),取得Y坐标的列[Y]选中latitude(纬度),点击确定。

4)在常用工具栏内点击的新建地图窗口出现如下界面。

5)在菜单栏中选择地图->创建专题地图,如下图选择独立值下的缺省点独立值项,然后点击下一步按钮。

6)如下图选中红色方框项,点击下一步7)点击确定完成8)从下图可以看出不同的BSC已按照不同的颜色明显的区分出来。

9)右键点击上图空白处,选择图层控制菜单,弹出如下图所示对话框,选中红色区域空白处,表示可以编辑图层。

然后点击确定10)点击绘图工具的线样式,设置线条样式、颜色、像素等等。

11)选择绘图工具中的折线开始画BSC边框图层。

12)BSC边框图层画好后效果图如下,图层画好后选择菜单栏下地图→保存装饰地图→保存→文件名填入HH_BSC_BOADER.TAB→单击保存,BSC边框装饰图层就保存好了。

13)BSC边框图层保存好后,开始画BSC名字图层了,在图层控制中在可显示,可编辑、可标注对话框打上勾,并在标注选项内设置字体颜色、字体大小、字体样式以及字体位置等等,然后点击确定。

Mapinfo制作基站三扇区图

Mapinfo制作基站三扇区图

Mapinfo制作基GSM基站地图目录1、GSM application主要功能特点及注意事项2、导入celldata电子表格并生成相应的电子地图:3、“refresh cell map ”命令应用说明4、频率规划应用:5、同频同BSIC问题排查:1、GSM application主要功能特点及注意事项GSM application主要功能特点如下:✧利用唯一的EXCEL电子表celldata.dbf或celldata.csv生成cell地图,并轻松地实现电子地图与EXCEL之间转换。

✧交互导入多种数据类型,如频数据freqdata.csv、邻区数据nebdata.csv、小区配置configdata.csv、话务统计sts.csv;更新相应的电子地图信息。

✧使用工具进行频率规划:同邻频查找、提供小区数据库和邻区数据库二种方式检查BCCH_BSIC规划。

✧使用工具查询正向\反向邻小区关系。

✧直接在电子地图中进行邻小区的增加、删除。

增加邻小区还可以选择:增加单向邻小区关系(源小区->目标小区),增加双向邻小区关系(源小区<->目标小区)。

增加完毕之后,根据源小区的BSC归属,自动生成N个相应的批处理文件。

现在可以支持MOTOROLA,NOKIA的邻区增删,使用时指定即可。

其它的设备或系统可以根据需求提供扩展。

✧邻小区数据分析:单向邻小区分析、同频同BSIC分析、目标小区正确性检查,以及Motorola切换算法及其相关的切换参数检查。

✧基站地图刷新功能,此功能可以在地图中方便地移动站点位置、调整小区方向角以及增加新站。

✧在生成基站地图或刷新基站地图时,提供个性化图型模式,并支持扇面与线状共存。

✧多种测试设备路测数据分析功能。

对路测中的RXLEV、RXQUAL等创建专项图层;支持主服小区连线,飞线时提供自定义条件设定,方便对特定的信息进行分析;如质量差分析,弱覆盖分析,事件分析,半速率分析,频段使用情况分析等;事实上,此项功能可扩展应用于新的系统分析。

MapBasic编程基础

MapBasic编程基础

1.1 制作菜单栏
菜单栏是MapInfo工作区域顶部的水 平条,初始状态下的MapInfo的菜单栏包 括“File”,“Edit”,“Objects”,“Query” 等。
1.1.1 制作全新的菜单栏
语法: Create Menu Bar As {菜单名 或 ID 菜单号} [,{菜单名 或 ID 菜单号}...]
1.5.3 创建触发式型按钮
1.1 分支、循环和其他流程控制
1.5.4 创建工具按钮
1.1.1 分支语句
1.5.5 向“主”工具条添加一 个
按钮
1.5.6 选择按钮图表 1.5.7 运行MapBasic应用程序
1.1.2 循环语句 1.1.3 其他流程控制语句 1.10 MapBasic的表操作 1.11 习题1
(2)专门的调试工具:Stop和Continue语句;
①将Stop语句放在程序中可能有错误的那个部分的前面; ②重新编辑并运行程序,执行到Stop语句,暂停,显示调试信息; ③在MapBasic窗口中: ?Dim ?Global ?Variable_name ? Variable_name=new_value ④在完成检查或修改了变量的内容后,可在MapBasic窗口中输入
1.1.2 安装步骤
① 装入MapBasic光盘,双击“setup”图 标, 显示“MapBasic安装界面”。如图1-1所示。 ② 选择“典型安装”(Typical)。 如图 12所示。
图1-1 MapBasic安装界面
图1-2 选择典型安装界面
③ 单击“Next”按钮,系统自动安装MapBasic 软 件。如图1-3所示。
【例1-1】制作一个全新菜单栏,包含“File”,“Edit”, “Query”,“Map”,“Browse”菜单。 代码如下: Create Menu Bar As "File","Edit","Query","Map","Browse"

用MapBasic建立GIS系统

用MapBasic建立GIS系统

第11章用MapBasic建立用户系统11.l MapBasic程序结构前一章介绍了MapBasic的基本元素,由它们构成MapBasic的不同种类的语句,再由语句组织成程序。

但是MapBasic程序中的语句必须以一个特定的方式被安排,而不是任意的。

例如:Global语句就不能放在Sub … End Sub结构中,下面给出的是MapBasic程序中不同组件排列顺序的一个典型的格式:全局级的语句出现在程序的项部Include “mapbasic.def”其他的Includc语句Type … End Type语句Declare Sub语句Declare Function语句Define语句Global语句…接下来是主过程定义…Sub MainDim语句End Sub....接着是其他的子过程定义Sub ....Dim语句End Sub......用户函数定义....Function ....Dim语句End Function11.2 用户界面程序实例为了能让读者迅速掌握用MapBasic进行应用程序开发的最基本方法,本节将通过剖析一个程序实例来展示MapBasic强大的开发功能。

由于该程序只是一个演示程序,所以它的重点只放在用户界面的创建。

对于其他一些辅助功能,本程序只提供了功能框架,而没有给出具有完整功能的程序模块。

有兴趣的读者可以对本程序的部分或全部进行修改、增加和精简,以便完善该程序的功能。

11.2.1 程序功能简介一个优秀的应用程序,必须有一个令人赏心悦目的用户界面。

一个设计良好的用户界面不但能够使用户得到视觉上的享受,而且能够提高人机交互的效率。

本程序的最主要部分是生成一个用户界面,其中包括创建一个全用户化的菜单、定制符合用户要求的按钮盒和对话框,并且在必要时能及时打开一个合适的窗口(如地图窗口、浏览窗口或统计窗口等)。

1。

用户菜单一般情况下,我们并不需要完全放弃MapInfo的原始菜单,而只要在该菜单系统的基础上,适当地删去一些不需要的菜单或菜单项,再增加一些新的菜单或菜单项就可以制作出符合自己要求的菜单。

mapbasic程序有详细的解释

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 语句,执行的是无条件删除,即删除表中的全部记录。

  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。

相关文档
最新文档