APP下载

基于C#+GMap.NET 的移动网络规划设计与实现

2022-06-23国育家孙歧军刘海良

无线互联科技 2022年7期
关键词:窗体端点多边形

国育家,孙歧军,刘海良

(山东中移通信技术有限公司,山东 济南 250000)

0 引言

随着移动通信技术的高速发展,LTE 网络规模不断扩大,5G 网络建设也持续推进。移动通信技术已经成为当今社会最重要的通信方式。随着移动用户的数量增长以及用户在网时间的延长,用户对网络感知的要求也越来越高。因此,移动网络的网络规划逐渐成为各大运营商从规模建设向精细化建设转变的工作重点[1]。总体掌握网络分布,快速定位问题区域,掌握覆盖区域周边地理分布,能为用户提供更好的网络服务,是提升用户感知,加强网络优化,增强深度覆盖力度,提升网络质量的关键。

本文介绍的基于C#和GMap.NET 的移动网络规划软件可以通过在线或者离线缓存地图直观地向网络优化工程师呈现无线网络分布的地理位置、周边建筑分布、周边基站分布和当前位置到问题网络点的路线等信息,有效帮助优化工程师总体掌握网络分布情况,极大地提高了网络优化人员合理规划网络与解决网络覆盖问题的工作效率。

1 系统功能总体设计

根据实际工作需求,该软件系统是以PC 机为主要规划平台,利用G map.Net 加载的电子地图模拟实际地理环境,通过人机交互来完成对网络工程参数的采集、存储、分析、显示和规划输出的功能。

从软件系统架构出发,该软件系统是由C#结构和G Map.NET 软件结构两大部分组成,软件模块功能设计,如图1 所示。

图1 软件系统功能模块

2 软件系统功能实现

本软件系统基于C#编程语言、Win Form 应用、Aspose.Cells 与G Map.NET 开源组件以及SQ Lite 数据库引擎进行的设计与开发,实现了对谷歌中国地图、高德地图等电子地图数据的调用。网络优化工程师可以使用在线或者离线缓存的地图数据和网络参数,通过数据交互的方式实现对区域内的无线网络可视化呈现与规划。

2.1 Win Form 加载G Map.NET

GMap.NET 在默认情况下没有自带国内地图服务商提供的地图产品接口,需要开发者在项目中创建相对应的类才能调用,创建高德地图类Amap Provider Base,使其继承Gmap Provider,并在窗体代码中对地图进行初始化。

2.2 SQLite 数据库设计与实现

网络规划软件系统在开发过程中,需要考虑到网络数据经常会有变动,包括更新、删除以及增加。将网络数据存储到SQ Lite 数据库,便于用户在操作软件时进行查询和更新,降低了系统内存的耗费[5]。SQ Lite Helper 类是一个帮助类,不仅可以帮助用户创建和访问SQLite 数据库,而且提供了对数据库中数据进行增、删、改、查等功能。

在系统的数据库中设计了2 张表,分别为 base_gongcan,new_modify。其中,base_gongcan 中存放了网络基础数据。new_modify 中存放了变更的数据,包括新增加的网络数据、删除的网络数据等。base_gongcan表信息,如表1 所示。

表1 base_gongcan 表信息

2.3 圆形规划与多边形规划

圆形规划是通过自定义Gmap Marker Circle 类并继承Gmap Marker 类来实现的。通过监听鼠标操作实现圆形规划操作,具体实现流程为以下几步。

第一步:创建图层top Circle,定义圆形规划标志,声明一个布尔类型变量open Circle Plan 来判断是否选择圆形规划,如果开启圆形规划,那么open Circle Plan 为true。

第二步:为Gmap Control 添加Mouse Down 监听事件private void g Map Control1_Mouse Down99(object sender,Mouse Event Args e),如果开启了圆形规划功能,获取按下的地图坐标为圆心,Point Lat Lng pcircle=g Map Control1.From Local To Lat Lng (e.X,e.Y),并将pcircle 作为参数传入自定义方法 private void Deal With Select Circle Click(Point Lat Lng p)中。

第三步:在Deal With Select Circle Click 方法中创建List集合list Point Test,添加圆心坐标为该集合第一个元素。为Gmap Control 添加Mouse Move 监听事件 g Map Control1 _ Mouse Move9 (object sender,Mouse Event Argse),当鼠标移动时,获取移动时所在点的坐标,gMap Control1.From Local To Lat Lng(e.X,e.Y)。

第四步:将圆心和这个点的坐标通过Gmap Route类进行两点之间的直线绘制,作为圆的半径标注。通过Gmap Route.Distance 属性获得两点之间的直线距离即半径。创建自定义类Gmap Marker Circle 继承自Gmap Marker,以圆心坐标为参数1,两个点之间的距离作为参数2,构造圆形初始化。new G Map Marker Circle(this.list Point Test[0],(int)Math.Floor(g Map Route.Distance* 1000.0))。

第五步:计算连线相对于正北方向的角度。将经纬度转换成度分秒的形式,经纬度中的整数部分作为度,经纬度中的小数部分×60 的整数部分就是分,最后经纬度的小数部分×3 600 就是秒。为了修正因纬度不断变化的球半径长度,记为EC。

当前点所在纬度的纬度圈的半径,记为Ed:

再计算两点连线相对于正北方向的夹角。

第六步:规划完成后,点击鼠标右键选择导出。通过SQ Lite Helper 类连接数据库,将数据库中存储的数据取出,并依次计算与圆心点之间的距离,凡是小于规划圆形半径的点即为符合要求的点,并将这些点纳入到Listdatajihe=new List()集合中(见图2)。

图2 圆形规划

对于多边形规划,最少需要3 个点才能确定一个多边形,因此在多边形规划时需要确定至少3 个端点。多边形规划是通过自定义Deal With Select Circle Click 方法,监听鼠标按下并抬起事件,获取多边形的端点,进而运用GmapRoute 方法根据临近的两个端点绘制多边形的边界。

具体规划原理为以下几步。

第一步:定义多边形规划标志,声明一个布尔类型变量open Polygon Plan 来判断是否选择多边形规划。如果开启多边形规划,那么open Circle Plan 为true。

第二步:创建Listpointsg 集合,用于存储多边形端点坐标。

第三步:为G map Control 添加Mouse Down 监听事件,将每次鼠标按下的点坐标添加到pointsg,当pointsg中的元素达到2 个时,通过G map Route 绘制两点之间的连线。当pointsg 中的元素达到3 个时,清除索引为0 的元素,再通过Gmap Route 类绘制两点之间的连线作为临时边界。

第四步:当规划完成时,需要对多边形的点个数进行判断。如果小于3 个点,则提示:Message Box.Show(“规划一个多边形至少需要3 个点,而现在只有‘+new polygon.Count+’个点”);如果至少有3 个点,执行画多边形,会自动进行第一个端点和最后一个端点进行相连(见图3)。

图3 完成多边形规划

第五步:选择导出规划的数据时,通过SQ Lite Helper 类连接数据库,将数据库中存储的数据取出,并通过G map Polygon 类的Is Inside 方法判断小区的经纬度是否在规划的多边形范围内。

2.4 新增与删除

在网络规划中,需要考虑实际中网络设备的新增和删除。为了将小区参数从子窗体传递到主窗体,应用了C#中的委托delegate 和事件event 并进行关联。在子窗体中根据具体需求声明一个委托set Form Value,根据这个委托声明该类型的事件set Form All Value,将委托与动作进行关联。在子窗体中的Button 按钮中实现该委托事件。

在主窗体中,实例化子窗体时,同时初始化在子窗体中实现的委托事件:add.set Form All Value +=new Add.set Form Value(add_set Form Text Value);在删除小区模块中,通过设置一个类型为G Map Polygon 全局变量Selected Polygon 用于存储点击的多边形扇区。当点击查看某个小区的扇区时,会将该多边形对象赋值给Selected Polygon,当点击删除按钮时,触发gMap Overlay.Polygons.Remove (Selected Polygon),将所选中的多边形进行删除。

3 结语

为进一步合理规划网络和提升用户的网络感知,本系统基于VS2019 开发工具,设计了基于C#与GMap.NET 的移动网络规划软件系统,具有界面简洁、操作简单、可扩展等特性,满足网络规划应用的实际需求。

猜你喜欢

窗体端点多边形
多边形中的“一个角”问题
非特征端点条件下PM函数的迭代根
多边形的艺术
解多边形题的转化思想
不等式求解过程中端点的确定
试谈Access 2007数据库在林业档案管理中的应用
多边形的镶嵌
参数型Marcinkiewicz积分算子及其交换子的加权端点估计
基丁能虽匹配延拓法LMD端点效应处理
巧设WPS窗体控件让表格填写更规范