MSCBSC 移動通信論壇
搜索
登錄注冊
網(wǎng)絡(luò)優(yōu)化工程師招聘專欄 4G/LTE通信工程師最新職位列表 通信實習(xí)生/應(yīng)屆生招聘職位

  • 閱讀:18967
  • 回復(fù):56
[交流] mapinfo中繪制基站扇形的算法討論和工具共享(原創(chuàng))
leizi_y
鉆石會員
鎵嬫満鍙風(fēng)爜宸查獙璇? style=


 發(fā)短消息    關(guān)注Ta 

積分 13235
帖子 131
威望 13776 個
禮品券 15 個
專家指數(shù) 123
注冊 2006-11-27
專業(yè)方向  a
回答問題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
 
發(fā)表于 2009-02-18 08:57:02  只看樓主 
【資料名稱】:mapinfo中繪制基站扇形的算法討論和工具共享(原創(chuàng))

【資料作者】:YZL

【資料日期】:2009.01

【資料語言】:中文

【資料格式】:其它

【資料目錄和簡介】:

mapinfo中繪制基站扇形的算法討論和工具共享. 討論5種算法并將我以前弄的一個工具貢獻給大家試試

----------------------討論和說明-----------------------------
很多同仁在論壇中談?wù)撘沧约壕幊套隽艘恍┗旧葏^(qū)(扇形、直線)圖形繪制工具,包括很多規(guī)劃軟件都有一個問題
就是生成的扇形圖形在mapinfo等gis系統(tǒng)中有一定失真。當(dāng)然由網(wǎng)友說這點失真可能不算啥了,如果是這樣你就不必看下面的方法了。
下面以MAGPINFO為例來說明,MAPINFO采用的WGS-84橢球體坐標(biāo)系,而我們?nèi)粘R话懔?xí)慣于在笛卡爾坐標(biāo)系中處理,這也是處理容易失真原因
我總結(jié)了一下,很多人在編制mapinfo下生成扇形圖形的時候有如下做法:
方法1:(極端做法):直接將直角坐標(biāo)用于計算,如:x=r*cos(theta) ,y=r*sin(theta)這種做法完全將一個地球球體表面當(dāng)成平面來處理,這種做法失真最大(當(dāng)然如果地表面積足夠小的時候誤差也不是很明顯)。這種做法論壇里很多excel2ge/excel2mapinfo都是這種方法。我個人認(rèn)為此方法不可取。
方法2:采用直角坐標(biāo)到經(jīng)緯度的近似轉(zhuǎn)換關(guān)系計算,這種算法采用經(jīng)緯度和直角坐標(biāo)之間 的簡單關(guān)系【/ (69.093 * 1609) 】。如網(wǎng)上的“[vb+Mapx]實現(xiàn)扇區(qū)三葉草圖形" ,大家可以搜索學(xué)習(xí)一下。這種算法個人感覺也不夠精確。
方法3:采用大地主題解算算法來實現(xiàn)。這種算法需要很多專業(yè)知識背景(我就是猛學(xué)了一段時間的測量專業(yè)的教材才理解的)。大地主題解算有很多算法,我采用了白賽爾算法實現(xiàn),具體算法我已經(jīng)放到了上帝之眼上,大家有興趣可以自行看看:http://bbs.godeyes.cn/showtopic-248479.aspx。其實我的"googleearth基站扇區(qū)繪制工具(YZL)"就是按照這個算法弄的。
方法4:(mapinfo中,我采用mapbasic編程),將經(jīng)緯度轉(zhuǎn)換成直角坐標(biāo)系,然后再在直接坐標(biāo)系下(SETE COORDSYS nonearth語句)畫線和畫圓弧,然后再切換到經(jīng)緯度坐標(biāo)系下。這個方案比較簡單,但是從earth坐標(biāo)系到nonearth坐標(biāo)系的轉(zhuǎn)化,暫時沒有找到好的方法,而且誤差也很大。我認(rèn)為不可。
方法5:(mapinfo中,我采用mapbasic編程),想了另外一種方法:充分利用MAPINFO自身功能,完全拋開直角坐標(biāo)到經(jīng)緯度的轉(zhuǎn)換,實現(xiàn)起來很方便而且效果很好。
下面簡單介紹一下方法5
主要思路:采用類似于我們高中幾何中常用到的輔助線的方法,直接再經(jīng)緯度坐標(biāo)系下處理。
mapinfo下繪制圓弧采用的命令是Create Arc。但mapinfo中Create Arc語句沒有基于兩個端點和圓心來繪制的方式。而是采用了四個點的坐標(biāo)方式(這又涉及到了坐標(biāo)轉(zhuǎn)換的問題了)。慶幸的是我們可以通過采用輔助圓的方式取得需要繪制圓弧的四個點的坐標(biāo):
1、使用CREATECIRCLE語句創(chuàng)建圓,然后再用ObjectGeography求出圓的外接矩形的左下角和右上角的坐標(biāo)(左下角(minx miny) 右上角(maxx maxy)。
2、根據(jù)這兩個點(minx miny) (maxx maxy) 和中心點以及起始角和終止角來繪制弧形。
3、將弧形轉(zhuǎn)換成pline取出弧形的兩個端點。
4、將兩個端點和中心相連
5、圖元合并就可以得出扇形
這種做法缺點也有:由于mapinfo的處理精度問題,所以半徑小于10m或者 大于500km均還是有一定誤差,但是這已經(jīng)不影響使用了。
主要算法如下:
'主要問題是mapinfo中Create Arc語句沒有基于兩個端點和圓心來繪制的方式。而是采用了四個點的坐標(biāo)方式。
'采用輔助圓的方式取得需要繪制圓弧的四個點的坐標(biāo)
'通過這四個點繪制弧形,然后取得該弧形的兩個端點坐標(biāo)
'通過端點坐標(biāo)和圓心繪制直線
'最后合并直線和圓弧就得到了標(biāo)準(zhǔn)的扇形,效果不錯
function mycreateregion(經(jīng)度,緯度,方向角,半功率角,半徑 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'''''''園的左下角和右上角坐標(biāo)
X=經(jīng)度
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) '''這四行取得繪制圓弧的關(guān)鍵點坐標(biāo),
if (方向角<>-270) and (半功率角<>360)then' 此處的方向角是經(jīng)過處理后的方向角
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)'這里是取得圓弧的端點坐標(biāo)
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基站扇區(qū)圖形生成工具,大家試試看。大家使用超級用戶密碼登錄就可以了,密碼為:leizi_y。這個工具實現(xiàn)了點、線、面圖形的自定義等等功能,但沒有做excel/TXT導(dǎo)入mapinfo這樣基本的功能(我認(rèn)為這個mapinfo自身已經(jīng)能夠足夠處理了)。
歡迎大家討論leizi_y@126.com,qq:31933208

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

查看積分策略說明
附件下載列表:
2009-2-18 08:57:02  下載次數(shù): 401
mapinfo自編的基站扇區(qū)圖形程序(YZL)V1.0(超級用戶密碼leizi_y).rar (13.44 KB)
2009-2-18 09:00:47  下載次數(shù): 239
使用方法.pdf (306.86 KB)
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5G NTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1
  • 共獲得 1 次點評 我要點評

    • cn130 專家指數(shù) +5 , 威望 +10 個
      · 原創(chuàng)內(nèi)容,鼓勵 詳細(xì).. 發(fā)表與:2010-10-9 17:01:23
     
    [充值威望,立即自動到帳] [VIP貴賓權(quán)限+威望套餐] 另有大量優(yōu)惠贈送活動,請光臨充值中心
    充值擁有大量的威望和最高的下載權(quán)限,下載站內(nèi)資料無憂
    xieyingsheng
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    紀(jì)念勛章·六周年  
    積分 2778
    帖子 151
    威望 8369 個
    禮品券 45 個
    專家指數(shù) 6
    注冊 2008-11-4
    專業(yè)方向  通信
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-18 09:28:37 
    大家互相研究

    對本帖內(nèi)容的看法? 我要點評

     
    [立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!]
    qsdys
    資深元老
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 48061
    帖子 1011
    威望 162113 個
    禮品券 5 個
    專家指數(shù) 121
    注冊 2006-11-4
    專業(yè)方向  OPTI
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-18 09:35:53 
    太厲害了,學(xué)習(xí)學(xué)習(xí),謝謝分享!

    對本帖內(nèi)容的看法? 我要點評





    我終究沒能飆得過那輛寶馬,只能眼看著它在夕陽中絕塵而去,不是我的引擎不好,而是我的車鏈子掉了。
     
    最新通信職位:廣東通信人才網(wǎng) | 北京通信人才網(wǎng) | 上海通信人才網(wǎng) | 南京通信人才網(wǎng) | 西安通信人才網(wǎng) | 重慶通信人才網(wǎng) | 中國通信人才網(wǎng)
    unicom_fj
    VIP會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    專家·高級勛章  
    積分 158975
    帖子 19406
    威望 2809660 個
    禮品券 54 個
    專家指數(shù) 433
    注冊 2006-10-27
    專業(yè)方向  IT
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-18 10:08:34 
    已經(jīng)下了,謝謝!

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    unicom_fj
    VIP會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    專家·高級勛章  
    積分 158975
    帖子 19406
    威望 2809660 個
    禮品券 54 個
    專家指數(shù) 433
    注冊 2006-10-27
    專業(yè)方向  IT
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-18 10:09:32 
    學(xué)習(xí),學(xué)習(xí)...

    對本帖內(nèi)容的看法? 我要點評

     
    最新通信職位:廣東通信人才網(wǎng) | 北京通信人才網(wǎng) | 上海通信人才網(wǎng) | 南京通信人才網(wǎng) | 西安通信人才網(wǎng) | 重慶通信人才網(wǎng) | 中國通信人才網(wǎng)
    西關(guān)老王
    資深元老
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 35310
    帖子 3312
    威望 12054 個
    禮品券 10 個
    專家指數(shù) 78
    注冊 2008-11-12
    專業(yè)方向  移動通信,編程開發(fā)
    來自 廣州
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-18 11:07:24 
    樓主厲害,謝謝了!

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    weeky
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 3866
    帖子 51
    威望 2130 個
    禮品券 0 個
    專家指數(shù) -52
    注冊 2009-2-12
    專業(yè)方向  無線
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-25 18:11:29 
    太強了
    高深啊

    對本帖內(nèi)容的看法? 我要點評

     
    熱點: 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料
    lizhong818
    鉆石會員



     發(fā)短消息    關(guān)注Ta 

    積分 12528
    帖子 827
    威望 6366 個
    禮品券 0 個
    專家指數(shù) 3
    注冊 2008-2-27
    專業(yè)方向 
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-02-25 20:18:25 
    haodongxixiexiefenxiang

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    nodi
    中級會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 1082
    帖子 85
    威望 1352 個
    禮品券 15 個
    專家指數(shù) 46
    注冊 2007-11-14
    專業(yè)方向  網(wǎng)優(yōu)
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-04-16 23:31:08 
    樓主厲害,謝謝了!

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    jimmyxu911
    銀牌會員



     發(fā)短消息    關(guān)注Ta 

    積分 2665
    帖子 342
    威望 5096 個
    禮品券 0 個
    專家指數(shù) -11
    注冊 2009-3-19
    專業(yè)方向  網(wǎng)絡(luò)測試
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-05-05 11:16:27 
    已經(jīng)下了,謝謝!

    對本帖內(nèi)容的看法? 我要點評

     
    熱點: 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料
    fs931yyh
    中級會員



     發(fā)短消息    關(guān)注Ta 

    積分 981
    帖子 12
    威望 2782 個
    禮品券 0 個
    專家指數(shù) 0
    注冊 2009-4-26
    專業(yè)方向  移動
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-05-06 12:32:19 
    我試過,基站扇形的中心和直接用經(jīng)緯度生產(chǎn)的基站點有偏差,不知是不是算法問題。

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    fs931yyh
    中級會員



     發(fā)短消息    關(guān)注Ta 

    積分 981
    帖子 12
    威望 2782 個
    禮品券 0 個
    專家指數(shù) 0
    注冊 2009-4-26
    專業(yè)方向  移動
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-05-06 17:45:40 
    可能經(jīng)緯度只精確到小數(shù)點后四位,能否改進到六位。

    對本帖內(nèi)容的看法? 我要點評

     
    熱點: 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料
    leizi_y
    鉆石會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 13235
    帖子 131
    威望 13776 個
    禮品券 15 個
    專家指數(shù) 123
    注冊 2006-11-27
    專業(yè)方向  a
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-05-06 19:35:47  只看樓主 
    算法上不存在問題,我試過很多次了,不存在偏差啊。至于四位精度的問題是mapinfo中設(shè)置問題吧。不想折騰這個東西了。年代太久遠(yuǎn)了。

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    fs931yyh
    中級會員



     發(fā)短消息    關(guān)注Ta 

    積分 981
    帖子 12
    威望 2782 個
    禮品券 0 個
    專家指數(shù) 0
    注冊 2009-4-26
    專業(yè)方向  移動
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-05-07 13:18:16 
    謝謝,我再試一下。

    對本帖內(nèi)容的看法? 我要點評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    fs931yyh
    中級會員



     發(fā)短消息    關(guān)注Ta 

    積分 981
    帖子 12
    威望 2782 個
    禮品券 0 個
    專家指數(shù) 0
    注冊 2009-4-26
    專業(yè)方向  移動
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2009-05-07 14:41:14 
    原坐標(biāo)113.103895 23.003899 DIR 60 120 240 ,經(jīng)過繪制后,扇形的中心點是,113.1040 23.0039,不知道m(xù)apinfo中如何設(shè)置能解決?

    對本帖內(nèi)容的看法? 我要點評

     
    熱點: 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料

    快速回復(fù)主題    
    標(biāo)題 [交流] mapinfo中繪制基站扇形的算法討論和工具共享(原創(chuàng))" tabindex="1">
    內(nèi)容
     上傳資料請點左側(cè)【添加附件】

    (勾選中文件為要刪除文件)


    當(dāng)前時區(qū) GMT+8, 現(xiàn)在時間是 2025-02-01 02:53:57
    渝ICP備11001752號  Copyright @ 2006-2016 mscbsc.com  本站統(tǒng)一服務(wù)郵箱:mscbsc@163.com

    Processed in 0.670568 second(s), 42 queries , Gzip enabled
    TOP
    清除 Cookies - 聯(lián)系我們 - 移動通信網(wǎng) - 移動通信論壇 - 通信招聘網(wǎng) - Archiver