MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

  • 阅读:18780
  • 回复:56
[交流] mapinfo中绘制基站扇形的算法讨论和工具共享(原创)
leizi_y
钻石会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 13235
帖子 131
威望 13776 个
礼品券 15 个
专家指数 123
注册 2006-11-27
专业方向  a
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2009-02-18 08:57:02  只看楼主 
【资料名称】:mapinfo中绘制基站扇形的算法讨论和工具共享(原创)

【资料作者】:YZL

【资料日期】:2009.01

【资料语言】:中文

【资料格式】:其它

【资料目录和简介】:

mapinfo中绘制基站扇形的算法讨论和工具共享. 讨论5种算法并将我以前弄的一个工具贡献给大家试试

----------------------讨论和说明-----------------------------
很多同仁在论坛中谈论也自己编程做了一些基站扇区(扇形、直线)图形绘制工具,包括很多规划软件都有一个问题
就是生成的扇形图形在mapinfo等gis系统中有一定失真。当然由网友说这点失真可能不算啥了,如果是这样你就不必看下面的方法了。
下面以MAGPINFO为例来说明,MAPINFO采用的WGS-84椭球体坐标系,而我们日常一般习惯于在笛卡尔坐标系中处理,这也是处理容易失真原因
我总结了一下,很多人在编制mapinfo下生成扇形图形的时候有如下做法:
方法1:(极端做法):直接将直角坐标用于计算,如:x=r*cos(theta) ,y=r*sin(theta)这种做法完全将一个地球球体表面当成平面来处理,这种做法失真最大(当然如果地表面积足够小的时候误差也不是很明显)。这种做法论坛里很多excel2ge/excel2mapinfo都是这种方法。我个人认为此方法不可取。
方法2:采用直角坐标到经纬度的近似转换关系计算,这种算法采用经纬度和直角坐标之间 的简单关系【/ (69.093 * 1609) 】。如网上的“[vb+Mapx]实现扇区三叶草图形" ,大家可以搜索学习一下。这种算法个人感觉也不够精确。
方法3:采用大地主题解算算法来实现。这种算法需要很多专业知识背景(我就是猛学了一段时间的测量专业的教材才理解的)。大地主题解算有很多算法,我采用了白赛尔算法实现,具体算法我已经放到了上帝之眼上,大家有兴趣可以自行看看:http://bbs.godeyes.cn/showtopic-248479.aspx。其实我的"googleearth基站扇区绘制工具(YZL)"就是按照这个算法弄的。
方法4:(mapinfo中,我采用mapbasic编程),将经纬度转换成直角坐标系,然后再在直接坐标系下(SETE COORDSYS nonearth语句)画线和画圆弧,然后再切换到经纬度坐标系下。这个方案比较简单,但是从earth坐标系到nonearth坐标系的转化,暂时没有找到好的方法,而且误差也很大。我认为不可取)
方法5:(mapinfo中,我采用mapbasic编程),想了另外一种方法:充分利用MAPINFO自身功能,完全抛开直角坐标到经纬度的转换,实现起来很方便而且效果很好。
下面简单介绍一下方法5
主要思路:采用类似于我们高中几何中常用到的辅助线的方法,直接再经纬度坐标系下处理。
mapinfo下绘制圆弧采用的命令是Create Arc。但mapinfo中Create Arc语句没有基于两个端点和圆心来绘制的方式。而是采用了四个点的坐标方式(这又涉及到了坐标转换的问题了)。庆幸的是我们可以通过采用辅助圆的方式取得需要绘制圆弧的四个点的坐标:
1、使用CREATECIRCLE语句创建圆,然后再用ObjectGeography求出圆的外接矩形的左下角和右上角的坐标(左下角(minx miny) 右上角(maxx maxy)。
2、根据这两个点(minx miny) (maxx maxy) 和中心点以及起始角和终止角来绘制弧形。
3、将弧形转换成pline取出弧形的两个端点。
4、将两个端点和中心相连
5、图元合并就可以得出扇形
这种做法缺点也有:由于mapinfo的处理精度问题,所以半径小于10m或者 大于500km均还是有一定误差,但是这已经不影响使用了。
主要算法如下:
'主要问题是mapinfo中Create Arc语句没有基于两个端点和圆心来绘制的方式。而是采用了四个点的坐标方式。
'采用辅助圆的方式取得需要绘制圆弧的四个点的坐标
'通过这四个点绘制弧形,然后取得该弧形的两个端点坐标
'通过端点坐标和圆心绘制直线
'最后合并直线和圆弧就得到了标准的扇形,效果不错
function mycreateregion(经度,纬度,方向角,半功率角,半径 as float) as object
dim x,y,r,x1,y1,x2,y2,start_angle,end_angle as float
dim arc_obj,line1_obj ,line2_obj,obj1,obj2,circle_objas object
dim endpointstring,endxstring,endystring as string
dim minx,miny,maxx,maxy as float'''''''园的左下角和右上角坐标
X=经度
Y=纬度
r=半径
start_angle=方向角-半功率角/2
end_angle=半功率角/2+方向角
circle_obj=CreateCircle(x,y,r)''这里绘制辅助圆,
minx=ObjectGeography(circle_obj,obj_geo_minx)
miny=ObjectGeography(circle_obj,obj_geo_miny)
maxx=ObjectGeography(circle_obj,obj_geo_maxx)
maxy=ObjectGeography(circle_obj,obj_geo_maxy) '''这四行取得绘制圆弧的关键点坐标,
if (方向角<>-270) and (半功率角<>360)then' 此处的方向角是经过处理后的方向角
Create Arc into Variable arc_obj
(minx,miny) (maxx,maxy)
start_angleend_angle
dim xx1,yy1,xx2,yy2 as float
xx1=getArcBEGX(arc_obj)
yy1=getArcBEGY(arc_obj)
xx2= getArcENDX(arc_obj)
yy2= getArcENDY(arc_obj)'这里是取得圆弧的端点坐标
Create Line into Variable line1_obj
(x,y) (xx1,yy1)
Create Line into Variable line2_obj
(x,y) (xx2,yy2)'这里是绘制两条直线
obj1 = ConvertToRegion(Combine(arc_obj,Combine(line1_obj,line2_obj))) '合并
else
obj1=circle_obj''''''''''''''''''''''全向站的处理,直接画圆
end if
mycreateregion=obj1 '返回扇形。
end function

''''求圆弧端点的程序''''''''''''''''''
function getArcBEGX(byval obj as object) as float
ifobjectinfo(obj,OBJ_INFO_TYPE )=1 then
dim d as object
d=ConvertToPline( obj )
getArcBEGX =ObjectNodeX( d ,1 ,1)
else
getArcBEGX=0
end if
end function
function getArcBEGY(byval obj as object) as float
ifobjectinfo(obj,OBJ_INFO_TYPE )=1 then
dim d as object
d=ConvertToPline( obj )
getArcBEGY =ObjectNodeY( d ,1 ,1)
else
getArcBEGY=0
end if
end function
function getArcENDX(byval obj as object) as float
ifobjectinfo(obj,OBJ_INFO_TYPE )=1 then
dim d as object
d=ConvertToPline( obj )
getArcENDX =ObjectNodeX( d ,1 , objectinfo(d,OBJ_INFO_NPNTS))
else
getArcENDX=0
end if
end function
function getArcENDY(byval obj as object) as float
ifobjectinfo(obj,OBJ_INFO_TYPE )=1 then
dim d as object
d=ConvertToPline( obj )
getArcENDY =ObjectNodeY( d ,1 ,objectinfo(d,OBJ_INFO_NPNTS))
else
getArcENDY=0
end if
end function
我基于方法5做了一个简单的mapinfo基站扇区图形生成工具,大家试试看。大家使用超级用户密码登录就可以了,密码为:leizi_y。这个工具实现了点、线、面图形的自定义等等功能,但没有做excel/TXT导入mapinfo这样基本的功能(我认为这个mapinfo自身已经能够足够处理了)。
欢迎大家讨论leizi_y@126.com,qq:31933208

[ 本帖最后由 leizi_y 于 2009-5-6 19:37 编辑 ]

查看积分策略说明
附件下载列表:
2009-2-18 09:00:47  下载次数: 239
使用方法.pdf (306.86 KB)
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 6、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 共获得 1 次点评 我要点评

    • cn130 专家指数 +5 , 威望 +10 个
      · 原创内容,鼓励 详细.. 发表与:2010-10-9 17:01:23
     
    [充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
    充值拥有大量的威望和最高的下载权限,下载站内资料无忧
    xieyingsheng
    银牌会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    纪念勋章·六周年  
    积分 2778
    帖子 151
    威望 8369 个
    礼品券 45 个
    专家指数 6
    注册 2008-11-4
    专业方向  通信
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-18 09:28:37 
    技术问题,回答得专家指数,快速升级
    大家互相研究

    对本帖内容的看法? 我要点评

     
    [立即成为VIP会员,百万通信专业资料立即下载,支付宝、微信付款,简单、快速!]
    qsdys
    资深元老
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 48061
    帖子 1011
    威望 162013 个
    礼品券 5 个
    专家指数 121
    注册 2006-11-4
    专业方向  OPTI
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-18 09:35:53 
    太厉害了,学习学习,谢谢分享!

    对本帖内容的看法? 我要点评





    我终究没能飙得过那辆宝马,只能眼看着它在夕阳中绝尘而去,不是我的引擎不好,而是我的车链子掉了。
     
    最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
    unicom_fj
    VIP会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    专家·高级勋章  
    积分 158975
    帖子 19406
    威望 2321173 个
    礼品券 54 个
    专家指数 433
    注册 2006-10-27
    专业方向  IT
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-18 10:08:34 
    已经下了,谢谢!

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    unicom_fj
    VIP会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    专家·高级勋章  
    积分 158975
    帖子 19406
    威望 2321173 个
    礼品券 54 个
    专家指数 433
    注册 2006-10-27
    专业方向  IT
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-18 10:09:32 
    学习,学习...

    对本帖内容的看法? 我要点评

     
    最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
    西关老王
    资深元老
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 35310
    帖子 3312
    威望 12054 个
    礼品券 10 个
    专家指数 78
    注册 2008-11-12
    专业方向  移动通信,编程开发
    来自 广州
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-18 11:07:24 
    楼主厉害,谢谢了!

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    weeky
    银牌会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 3866
    帖子 51
    威望 2130 个
    礼品券 0 个
    专家指数 -52
    注册 2009-2-12
    专业方向  无线
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-25 18:11:29 
    太强了
    高深啊

    对本帖内容的看法? 我要点评

     
    热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料
    lizhong818
    钻石会员



     发短消息    关注Ta 

    积分 12528
    帖子 827
    威望 6366 个
    礼品券 0 个
    专家指数 3
    注册 2008-2-27
    专业方向 
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-02-25 20:18:25 
    haodongxixiexiefenxiang

    对本帖内容的看法? 我要点评

     
    热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料
    nodi
    中级会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 1082
    帖子 85
    威望 1407 个
    礼品券 15 个
    专家指数 46
    注册 2007-11-14
    专业方向  网优
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-04-16 23:31:08 
    楼主厉害,谢谢了!

    对本帖内容的看法? 我要点评

     
    热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料
    jimmyxu911
    银牌会员



     发短消息    关注Ta 

    积分 2665
    帖子 342
    威望 5096 个
    礼品券 0 个
    专家指数 -11
    注册 2009-3-19
    专业方向  网络测试
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-05 11:16:27 
    已经下了,谢谢!

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    fs931yyh
    中级会员



     发短消息    关注Ta 

    积分 981
    帖子 12
    威望 2782 个
    礼品券 0 个
    专家指数 0
    注册 2009-4-26
    专业方向  移动
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-06 12:32:19 
    我试过,基站扇形的中心和直接用经纬度生产的基站点有偏差,不知是不是算法问题。

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    fs931yyh
    中级会员



     发短消息    关注Ta 

    积分 981
    帖子 12
    威望 2782 个
    礼品券 0 个
    专家指数 0
    注册 2009-4-26
    专业方向  移动
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-06 17:45:40 
    可能经纬度只精确到小数点后四位,能否改进到六位。

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    leizi_y
    钻石会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 13235
    帖子 131
    威望 13776 个
    礼品券 15 个
    专家指数 123
    注册 2006-11-27
    专业方向  a
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-06 19:35:47  只看楼主 
    算法上不存在问题,我试过很多次了,不存在偏差啊。至于四位精度的问题是mapinfo中设置问题吧。不想折腾这个东西了。年代太久远了。

    对本帖内容的看法? 我要点评

     
    热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料
    fs931yyh
    中级会员



     发短消息    关注Ta 

    积分 981
    帖子 12
    威望 2782 个
    礼品券 0 个
    专家指数 0
    注册 2009-4-26
    专业方向  移动
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-07 13:18:16 
    谢谢,我再试一下。

    对本帖内容的看法? 我要点评

     
    热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料
    fs931yyh
    中级会员



     发短消息    关注Ta 

    积分 981
    帖子 12
    威望 2782 个
    礼品券 0 个
    专家指数 0
    注册 2009-4-26
    专业方向  移动
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-07 14:41:14 
    原坐标113.103895 23.003899 DIR 60 120 240 ,经过绘制后,扇形的中心点是,113.1040 23.0039,不知道mapinfo中如何设置能解决?

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]

    快速回复主题    
    标题 [交流] mapinfo中绘制基站扇形的算法讨论和工具共享(原创)" tabindex="1">
    内容
     上传资料请点左侧【添加附件】

    (勾选中文件为要删除文件)


    当前时区 GMT+8, 现在时间是 2024-04-27 15:13:35
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.719982 second(s), 42 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver