亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#+GMap.NET 的移動(dòng)網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)與實(shí)現(xiàn)

        2022-06-23 01:08:38國育家孫歧軍劉海良
        無線互聯(lián)科技 2022年7期
        關(guān)鍵詞:窗體端點(diǎn)多邊形

        國育家,孫歧軍,劉海良

        (山東中移通信技術(shù)有限公司,山東 濟(jì)南 250000)

        0 引言

        隨著移動(dòng)通信技術(shù)的高速發(fā)展,LTE 網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,5G 網(wǎng)絡(luò)建設(shè)也持續(xù)推進(jìn)。移動(dòng)通信技術(shù)已經(jīng)成為當(dāng)今社會(huì)最重要的通信方式。隨著移動(dòng)用戶的數(shù)量增長(zhǎng)以及用戶在網(wǎng)時(shí)間的延長(zhǎng),用戶對(duì)網(wǎng)絡(luò)感知的要求也越來越高。因此,移動(dòng)網(wǎng)絡(luò)的網(wǎng)絡(luò)規(guī)劃逐漸成為各大運(yùn)營商從規(guī)模建設(shè)向精細(xì)化建設(shè)轉(zhuǎn)變的工作重點(diǎn)[1]??傮w掌握網(wǎng)絡(luò)分布,快速定位問題區(qū)域,掌握覆蓋區(qū)域周邊地理分布,能為用戶提供更好的網(wǎng)絡(luò)服務(wù),是提升用戶感知,加強(qiáng)網(wǎng)絡(luò)優(yōu)化,增強(qiáng)深度覆蓋力度,提升網(wǎng)絡(luò)質(zhì)量的關(guān)鍵。

        本文介紹的基于C#和GMap.NET 的移動(dòng)網(wǎng)絡(luò)規(guī)劃軟件可以通過在線或者離線緩存地圖直觀地向網(wǎng)絡(luò)優(yōu)化工程師呈現(xiàn)無線網(wǎng)絡(luò)分布的地理位置、周邊建筑分布、周邊基站分布和當(dāng)前位置到問題網(wǎng)絡(luò)點(diǎn)的路線等信息,有效幫助優(yōu)化工程師總體掌握網(wǎng)絡(luò)分布情況,極大地提高了網(wǎng)絡(luò)優(yōu)化人員合理規(guī)劃網(wǎng)絡(luò)與解決網(wǎng)絡(luò)覆蓋問題的工作效率。

        1 系統(tǒng)功能總體設(shè)計(jì)

        根據(jù)實(shí)際工作需求,該軟件系統(tǒng)是以PC 機(jī)為主要規(guī)劃平臺(tái),利用G map.Net 加載的電子地圖模擬實(shí)際地理環(huán)境,通過人機(jī)交互來完成對(duì)網(wǎng)絡(luò)工程參數(shù)的采集、存儲(chǔ)、分析、顯示和規(guī)劃輸出的功能。

        從軟件系統(tǒng)架構(gòu)出發(fā),該軟件系統(tǒng)是由C#結(jié)構(gòu)和G Map.NET 軟件結(jié)構(gòu)兩大部分組成,軟件模塊功能設(shè)計(jì),如圖1 所示。

        圖1 軟件系統(tǒng)功能模塊

        2 軟件系統(tǒng)功能實(shí)現(xiàn)

        本軟件系統(tǒng)基于C#編程語言、Win Form 應(yīng)用、Aspose.Cells 與G Map.NET 開源組件以及SQ Lite 數(shù)據(jù)庫引擎進(jìn)行的設(shè)計(jì)與開發(fā),實(shí)現(xiàn)了對(duì)谷歌中國地圖、高德地圖等電子地圖數(shù)據(jù)的調(diào)用。網(wǎng)絡(luò)優(yōu)化工程師可以使用在線或者離線緩存的地圖數(shù)據(jù)和網(wǎng)絡(luò)參數(shù),通過數(shù)據(jù)交互的方式實(shí)現(xiàn)對(duì)區(qū)域內(nèi)的無線網(wǎng)絡(luò)可視化呈現(xiàn)與規(guī)劃。

        2.1 Win Form 加載G Map.NET

        GMap.NET 在默認(rèn)情況下沒有自帶國內(nèi)地圖服務(wù)商提供的地圖產(chǎn)品接口,需要開發(fā)者在項(xiàng)目中創(chuàng)建相對(duì)應(yīng)的類才能調(diào)用,創(chuàng)建高德地圖類Amap Provider Base,使其繼承Gmap Provider,并在窗體代碼中對(duì)地圖進(jìn)行初始化。

        2.2 SQLite 數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)

        網(wǎng)絡(luò)規(guī)劃軟件系統(tǒng)在開發(fā)過程中,需要考慮到網(wǎng)絡(luò)數(shù)據(jù)經(jīng)常會(huì)有變動(dòng),包括更新、刪除以及增加。將網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)到SQ Lite 數(shù)據(jù)庫,便于用戶在操作軟件時(shí)進(jìn)行查詢和更新,降低了系統(tǒng)內(nèi)存的耗費(fèi)[5]。SQ Lite Helper 類是一個(gè)幫助類,不僅可以幫助用戶創(chuàng)建和訪問SQLite 數(shù)據(jù)庫,而且提供了對(duì)數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行增、刪、改、查等功能。

        在系統(tǒng)的數(shù)據(jù)庫中設(shè)計(jì)了2 張表,分別為 base_gongcan,new_modify。其中,base_gongcan 中存放了網(wǎng)絡(luò)基礎(chǔ)數(shù)據(jù)。new_modify 中存放了變更的數(shù)據(jù),包括新增加的網(wǎng)絡(luò)數(shù)據(jù)、刪除的網(wǎng)絡(luò)數(shù)據(jù)等。base_gongcan表信息,如表1 所示。

        表1 base_gongcan 表信息

        2.3 圓形規(guī)劃與多邊形規(guī)劃

        圓形規(guī)劃是通過自定義Gmap Marker Circle 類并繼承Gmap Marker 類來實(shí)現(xiàn)的。通過監(jiān)聽鼠標(biāo)操作實(shí)現(xiàn)圓形規(guī)劃操作,具體實(shí)現(xiàn)流程為以下幾步。

        第一步:創(chuàng)建圖層top Circle,定義圓形規(guī)劃標(biāo)志,聲明一個(gè)布爾類型變量open Circle Plan 來判斷是否選擇圓形規(guī)劃,如果開啟圓形規(guī)劃,那么open Circle Plan 為true。

        第二步:為Gmap Control 添加Mouse Down 監(jiān)聽事件private void g Map Control1_Mouse Down99(object sender,Mouse Event Args e),如果開啟了圓形規(guī)劃功能,獲取按下的地圖坐標(biāo)為圓心,Point Lat Lng pcircle=g Map Control1.From Local To Lat Lng (e.X,e.Y),并將pcircle 作為參數(shù)傳入自定義方法 private void Deal With Select Circle Click(Point Lat Lng p)中。

        第三步:在Deal With Select Circle Click 方法中創(chuàng)建List集合list Point Test,添加圓心坐標(biāo)為該集合第一個(gè)元素。為Gmap Control 添加Mouse Move 監(jiān)聽事件 g Map Control1 _ Mouse Move9 (object sender,Mouse Event Argse),當(dāng)鼠標(biāo)移動(dòng)時(shí),獲取移動(dòng)時(shí)所在點(diǎn)的坐標(biāo),gMap Control1.From Local To Lat Lng(e.X,e.Y)。

        第四步:將圓心和這個(gè)點(diǎn)的坐標(biāo)通過Gmap Route類進(jìn)行兩點(diǎn)之間的直線繪制,作為圓的半徑標(biāo)注。通過Gmap Route.Distance 屬性獲得兩點(diǎn)之間的直線距離即半徑。創(chuàng)建自定義類Gmap Marker Circle 繼承自Gmap Marker,以圓心坐標(biāo)為參數(shù)1,兩個(gè)點(diǎn)之間的距離作為參數(shù)2,構(gòu)造圓形初始化。new G Map Marker Circle(this.list Point Test[0],(int)Math.Floor(g Map Route.Distance* 1000.0))。

        第五步:計(jì)算連線相對(duì)于正北方向的角度。將經(jīng)緯度轉(zhuǎn)換成度分秒的形式,經(jīng)緯度中的整數(shù)部分作為度,經(jīng)緯度中的小數(shù)部分×60 的整數(shù)部分就是分,最后經(jīng)緯度的小數(shù)部分×3 600 就是秒。為了修正因緯度不斷變化的球半徑長(zhǎng)度,記為EC。

        當(dāng)前點(diǎn)所在緯度的緯度圈的半徑,記為Ed:

        再計(jì)算兩點(diǎn)連線相對(duì)于正北方向的夾角。

        第六步:規(guī)劃完成后,點(diǎn)擊鼠標(biāo)右鍵選擇導(dǎo)出。通過SQ Lite Helper 類連接數(shù)據(jù)庫,將數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)取出,并依次計(jì)算與圓心點(diǎn)之間的距離,凡是小于規(guī)劃圓形半徑的點(diǎn)即為符合要求的點(diǎn),并將這些點(diǎn)納入到Listdatajihe=new List()集合中(見圖2)。

        圖2 圓形規(guī)劃

        對(duì)于多邊形規(guī)劃,最少需要3 個(gè)點(diǎn)才能確定一個(gè)多邊形,因此在多邊形規(guī)劃時(shí)需要確定至少3 個(gè)端點(diǎn)。多邊形規(guī)劃是通過自定義Deal With Select Circle Click 方法,監(jiān)聽鼠標(biāo)按下并抬起事件,獲取多邊形的端點(diǎn),進(jìn)而運(yùn)用GmapRoute 方法根據(jù)臨近的兩個(gè)端點(diǎn)繪制多邊形的邊界。

        具體規(guī)劃原理為以下幾步。

        第一步:定義多邊形規(guī)劃標(biāo)志,聲明一個(gè)布爾類型變量open Polygon Plan 來判斷是否選擇多邊形規(guī)劃。如果開啟多邊形規(guī)劃,那么open Circle Plan 為true。

        第二步:創(chuàng)建Listpointsg 集合,用于存儲(chǔ)多邊形端點(diǎn)坐標(biāo)。

        第三步:為G map Control 添加Mouse Down 監(jiān)聽事件,將每次鼠標(biāo)按下的點(diǎn)坐標(biāo)添加到pointsg,當(dāng)pointsg中的元素達(dá)到2 個(gè)時(shí),通過G map Route 繪制兩點(diǎn)之間的連線。當(dāng)pointsg 中的元素達(dá)到3 個(gè)時(shí),清除索引為0 的元素,再通過Gmap Route 類繪制兩點(diǎn)之間的連線作為臨時(shí)邊界。

        第四步:當(dāng)規(guī)劃完成時(shí),需要對(duì)多邊形的點(diǎn)個(gè)數(shù)進(jìn)行判斷。如果小于3 個(gè)點(diǎn),則提示:Message Box.Show(“規(guī)劃一個(gè)多邊形至少需要3 個(gè)點(diǎn),而現(xiàn)在只有‘+new polygon.Count+’個(gè)點(diǎn)”);如果至少有3 個(gè)點(diǎn),執(zhí)行畫多邊形,會(huì)自動(dòng)進(jìn)行第一個(gè)端點(diǎn)和最后一個(gè)端點(diǎn)進(jìn)行相連(見圖3)。

        圖3 完成多邊形規(guī)劃

        第五步:選擇導(dǎo)出規(guī)劃的數(shù)據(jù)時(shí),通過SQ Lite Helper 類連接數(shù)據(jù)庫,將數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)取出,并通過G map Polygon 類的Is Inside 方法判斷小區(qū)的經(jīng)緯度是否在規(guī)劃的多邊形范圍內(nèi)。

        2.4 新增與刪除

        在網(wǎng)絡(luò)規(guī)劃中,需要考慮實(shí)際中網(wǎng)絡(luò)設(shè)備的新增和刪除。為了將小區(qū)參數(shù)從子窗體傳遞到主窗體,應(yīng)用了C#中的委托delegate 和事件event 并進(jìn)行關(guān)聯(lián)。在子窗體中根據(jù)具體需求聲明一個(gè)委托set Form Value,根據(jù)這個(gè)委托聲明該類型的事件set Form All Value,將委托與動(dòng)作進(jìn)行關(guān)聯(lián)。在子窗體中的Button 按鈕中實(shí)現(xiàn)該委托事件。

        在主窗體中,實(shí)例化子窗體時(shí),同時(shí)初始化在子窗體中實(shí)現(xiàn)的委托事件:add.set Form All Value +=new Add.set Form Value(add_set Form Text Value);在刪除小區(qū)模塊中,通過設(shè)置一個(gè)類型為G Map Polygon 全局變量Selected Polygon 用于存儲(chǔ)點(diǎn)擊的多邊形扇區(qū)。當(dāng)點(diǎn)擊查看某個(gè)小區(qū)的扇區(qū)時(shí),會(huì)將該多邊形對(duì)象賦值給Selected Polygon,當(dāng)點(diǎn)擊刪除按鈕時(shí),觸發(fā)gMap Overlay.Polygons.Remove (Selected Polygon),將所選中的多邊形進(jìn)行刪除。

        3 結(jié)語

        為進(jìn)一步合理規(guī)劃網(wǎng)絡(luò)和提升用戶的網(wǎng)絡(luò)感知,本系統(tǒng)基于VS2019 開發(fā)工具,設(shè)計(jì)了基于C#與GMap.NET 的移動(dòng)網(wǎng)絡(luò)規(guī)劃軟件系統(tǒng),具有界面簡(jiǎn)潔、操作簡(jiǎn)單、可擴(kuò)展等特性,滿足網(wǎng)絡(luò)規(guī)劃應(yīng)用的實(shí)際需求。

        猜你喜歡
        窗體端點(diǎn)多邊形
        多邊形中的“一個(gè)角”問題
        非特征端點(diǎn)條件下PM函數(shù)的迭代根
        多邊形的藝術(shù)
        解多邊形題的轉(zhuǎn)化思想
        不等式求解過程中端點(diǎn)的確定
        試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
        檔案天地(2019年5期)2019-06-12 05:12:02
        多邊形的鑲嵌
        參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點(diǎn)估計(jì)
        基丁能雖匹配延拓法LMD端點(diǎn)效應(yīng)處理
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        91亚洲国产成人精品一区.| 综合网五月| 狠狠躁夜夜躁人人爽天天不卡| 亚洲精品国产av成拍| 老妇高潮潮喷到猛进猛出| 久久亚洲国产成人精品性色 | 亚洲精品99久久久久久| 亚洲无人区乱码中文字幕动画 | 国产精品美女一区二区视频| 国产熟妇人妻精品一区二区动漫 | 亚洲发给我的在线视频| 日本道色综合久久影院| a级毛片高清免费视频就| 一本久道久久综合五月丁香| 日韩精品有码中文字幕| 国产精选自拍视频网站| 中国国语毛片免费观看视频| 国内精品一区二区2021在线| 国产偷拍自拍在线观看| 精品无码久久久久久久久水蜜桃| 国产成人av性色在线影院色戒| 99久久99久久久精品久久| 久久精品国产亚洲av夜夜| 亚洲精品久久激情国产片 | 亚洲国产午夜精品乱码| 亚洲天堂av在线免费看| 丰满少妇人妻无码| 99精品热这里只有精品| 亚洲AⅤ男人的天堂在线观看| 蜜乳一区二区三区亚洲国产| 操国产丝袜露脸在线播放| 伊人久久大香线蕉av不变影院| 一本色道久久99一综合| 天啦噜国产精品亚洲精品| 中文字幕高清视频婷婷| 在线观看视频播放| 国产成人精品午夜福利在线| 18禁成人免费av大片一区| av区无码字幕中文色| 亚洲有码转帖| 国产在线观看精品一区二区三区|