基于C#+GMap.NET实现营造林图斑坐标获取方法的研究
2018-06-04梁志强黑龙江省林业监测规划院黑龙江哈尔滨150080
梁志强(黑龙江省林业监测规划院,黑龙江 哈尔滨 150080)
1 基础技术简介
1.1 天地图
“天地图”是国家测绘地理信息局建设的地理信息综合服务网站。是“数字中国”的重要组成部分,是国家地理信息公共服务平台的公众版。“天地图”的目的在于促进地理信息资源共享和高效利用,提高测绘地理信息公共服务能力和水平,改进测绘地理信息成果的服务方式,更好地满足国家信息化建设的需要,为社会公众的工作和生活提供方便[1]。
天地图所公布的在线遥感影像资料,我们可以通过在线的方式进行数据访问,并可以结合其提供的访问接口实现与在线地图的互动操作。在营造林工程管理过程中,为了查清以往林地的保存情况,部分单位可能经过几年的人事调整或者档案管理不善等情况,尤其是电子档案没有建档的营造林小班,如果将其进行地理信息化处理,只能通过当时的纸质档案,进行数据内容分析,在没有具体坐标拐点的情况下,工作人员只能通过现地进行GPS坐标取点,浪费人力、物力、财力,且效率不高。而采用基于遥感影像的数据获取方式,基层林业业务人员,在对本地区的空间情况十分了解的情况下,能够通过遥感影像资料进行分析并获取一下基础数据,将极大地节省工作时间和提高工作效率。
1.2 GMap.NET
GMap.NET是一个强大、免费、跨平台、开源的.NET控件,它在Windows Forms 和WPF环境中能够通过天地图、谷歌地图、Yahoo、Bing、OpenStreetMap等实现寻找路径、地理编码以及地图展示功能,并支持缓存和运行在Mobile环境中。
GMap.NET是一个开源的GEO地图定位和跟踪程序[3]。GMAP由Map Control(地图控件)、Overlay(图层)、Markers(标记点)组成,可实现点状、线状、面状空间要素的绘制操作。可以定位经纬度,可以对地图放大、缩小、标记等。
GMap.NET核心动态链接库:GMap.NET.Core.dll、GMap.Net.dll、GMap.NET.WindowsForms.dll、GMap.NET.WindowsForms。在开发过程中可以将这些DLL文件进行引用。
图1 GMap.NET图层结构
2 系统开发
本文基于C#与GMap.NET开源组件进行系统研发,实现对天地图及谷歌地图的数据访问功能,基层工作人员可通过在线的遥感影像和现有的数据资料,通过数据交互方式完善营造林图斑的空间位置信息。
通过Microsoft Studio集成开发工具的C#开发语言环境[2],加载GMap.NET动态链接库,将GMapControl控件加载至Form窗体中,根据GMap.NET的开发原理及方法,进行软件功能的编制。
主要实现功能包括:加载天地图或谷歌地图遥感影像、XY方向坐标修正、取点或插入点及移除点、显示标记、调整坐标顺序、绘制拐点、坐标入库及导出Excel等。
图2 Visual Studio加载Gmap.NET软件开发界面
窗体加载GMap.NET代码实现:
privatevoidfrmMain_Load(object sender,EventArgs e)
{
mapControl.MapProvider =TdtImageMapProvider.Instance; //访问天地图遥感地图
mapShow_Lzq();
}
publicvoidmapShow_Lzq()
{
mapControl.Manager.Mode =AccessMode.ServerAndCache;
mapControl.Zoom = 18;
mapControl.ShowCenter =false; //不显示中心十字点
mapControl.DragButton = System.Windows.Forms.MouseButtons.Right; //右键拖拽地图
//默认设置位置
mapControl.Position = new PointLatLng(39.9078927749492,116.398086547852);mapControl.Overlays.Add(gMapOverlayPolygons);
mapControl.Overlays.Add(gMapOverlayMarkers);
mapControl.MouseDown += newMouseEventHandler(mapControl_MouseDown);
}
3 系统实现功能介绍
图3 软件功能实现
遥感影像的加载:可以加载常用的天地图、谷歌地图的在线遥感影像或者是带标注的遥感影像信息,通过菜单的方式进行切换。
高斯换算:在线遥感地图的定位坐标均采用经纬度方式,而林业部门常用的是投影坐标系即公里网坐标,通过高斯坐标换算实现公里网与经纬度坐标的相互换算,该方法在网络上就可以搜索到。
偏移量:谷歌或者天地图在线的影像坐标与我们在现地获取的实际坐标均有一定的偏差,为了能够使实地获取的坐标与影像位置基本上一致,可以通过将已知点坐标落到影像图上,通过X、Y方向修正的方式求得偏移量,通过实验的方法,获取局部区域的平均偏移量,并将该偏移量保存,以供其他图斑使用。
坐标定位:通过输入公里网坐标点实现该坐标点的定位。
取点功能:通过鼠标移动或者单击,可以获取当前鼠标位置的经纬度坐标,通过高斯换算将其转换为公里网坐标,并通过偏移量的纠偏,就可以计算出该点的实际经纬度及公里网坐标,将其存储在数据列表中或者存储在数据库中。
显示拐点:通过GMAP的GMapMarker对象实现图斑要素的标注,可以实现地块的信息显示及拐点顺序的显示。
GMapMarkergMapMarker = new GMarkerGoogle(new PointLatLng(lng0,lat0),
GMarkerGoogleType.green); //绿色点
gMapMarker.ToolTipText = l_key;
gMapOverlayRoutes.Markers.Add(gMapMarker);
坐标信息导出:采用C#+NPOI技术,实现电子表格的操作,即使该计算机中没有安装Office软件,也可以实现表格的导出功能。
存储为图片:实现当前屏幕的遥感影像区域存储为扩展名PNG格式图片。
4 结束语
通过C#+GMap.NET开源组件研发营造林图斑的获取功能,可通过在线遥感影像的访问及空间位置信息交互的方式,针对营造林工作,将图斑的位置、坐标、影像等资料进行存储,丰富了以往资料的获取方式和内容,对提高营造林数据质量,提高工作人员技术水平及林业信息化建设等方面提供了一个新的途径。
参考文献:
[1] 黄蔚.国家地理信息公共服务平台天地图[J].技术进展,2014(1):41-44
[2] (美)沃森,(美)内格尔.C#入门经典[M].乔丽波,译.北京:清华大学出版社,2006
[3] 余朋.Gmap地理信息技术在空管系统中的应用[J].电脑编程技巧与维护,2014(12):102-104