APP下载

基于Google地图的测量控制点成果管理系统

2014-02-19蔡欣恩唐诗华

地理空间信息 2014年5期
关键词:控制点坐标系成果

蔡欣恩,唐诗华,王 睿

(1.桂林理工大学 测绘地理信息学院,广西 桂林 541004)

城市控制测量成果,是确定地球表面点几何位置的标志,为测量及有关部门提供基础测绘信息[1]。管理测量成果的传统方法最常见的是文本的点之记,容易出现凌乱、分散不集中,无法做到信息共享。本文以Google地图作为系统平台,使用JavaScript语言,开发基于Google地图的测量控制点成果管理系统。利用本文开发的系统,能够实现数据统一格式管理、查询等功能,还可以直观地查看控制点的实际地理位置,最大限度地实现信息资源共享。

1 系统的总体设计方案[1-3]

系统的目标是以Google地图为平台,实现对控制点成果的可视化管理,即实现控制点成果的图文一体化管理。因在线地图具有网络交互性,在设计过程中要尽量做到操作简便、互动性强、美观大方。测量控制点成果管理系统的主要功能如下:

1)地图显示功能。以Google地图作为测量控制点成果管理系统的平台,因此Google地图界面是系统必不可少的一个部分,也是系统主界面中的重点。Google地图自身有着2种地图类型,既可以直观地了解所查看地区的地形,又可以让使用者轻松获取周边的其他地物信息。

2)地图浏览操作功能。地图浏览功能,是实现对地图的平移、缩放、切换不同类型的地图及查看比例尺等。能根据实际情况,通过鼠标操作地图界面,让使用者更加方便和自由地查看所需信息。

3)分类图层显示功能。分类图层功能,实现不同属性地标数据的分类查看功能。本系统提供了5类图层:控制点、三角点、各级导线点、图根点、各级水准点,方便使用者根据不同需要分类查询。

4)建立完善的测量控制点数据库。完善的测量控制点成果数据库包含:控制点的点之记、基线和水准网的数据等。完善的成果系统需要保持系统的现势性和完整性,因此,在对成果数据进行更新和维护时还应进行相应的功能补充。

5)查询功能。在一个拥有大量信息数据的系统中,方便快捷的查询功能是系统必不可少的。利用XML节点的特点,根据搜索条件,便可读取所需查找的成果数据以及成果数据的相关信息。

6)权限管理。在系统的功能设计中有必要通过密码验证的方法,对系统访问者进行限制,以维护系统中测量控制点成果的安全性。

2 开发平台和编程语言

1)Web 地图服务API:Google Maps API。本系统需要使用者利用浏览器进行浏览操作,而Google Maps对于开发环境的要求不高,只需要一个支持Google Maps API的浏览器即可。几乎所有的主流浏览器均支持Google Maps API。

2)开发语言:JavaScript。JavaScript是一种适应动态网页制作的编程语言,可以开发交互式的Web网页,使页面和使用者形成一种实时性、交互性、动态性的关系。JavaScript语言短小精悍,而且具有完善且强大的时间处理机制。

3 关键技术部分设计

3.1 地图界面设计

在控制点成果管理系统的设计和实际开发中,地图就是直观的背景和数据显示平台。直观简洁的地图界面,是系统必不可少的。

在Google maps API中,Gmap2对象用于实现创建和控制地图的基本功能[4]。除了一张地图以外,还需要在控制地图时,添加一些地图控件,以方便地图的浏览、移动、缩放。

地图加载部分代码如下[4]:

var map;

var CenterLat=21.6858;

var CenterLog=108.3722;

var SZoom=10;

//地图初始化

function initialize() {

if (GBrowserIsCompatible()) {

map = new GMap2(document.getElementById("map_canvas"));

map.addControl(new GLargeMapControl;//添加导航控件

map.addControl(new GMapTypeControl()); //添加地图类型控件

map.addControl(new GScaleControl()); //添加比例尺

map.enable ScrollWheelZoom(); //鼠标滑动,地图缩放

map.enableContinuous();

var mapOptions = new GLatLng(CenterLat, CenterLog);

map.setCenter(mapOptions,SZoom);//设置地图中心,中心为 CenterLat,CenterLog

}

}

Window.load=initialize;

Window.onunlaod=GUload;

3.2 控制点在地图中的显示和信息窗口设计

控制点成果系统设计的信息种类很多,需要对这些成果进行文字说明。因此,结合Google Map的功能,使用GMarker地标来标记控制点成果在地图上的地理位置。GMarker地标的使用方法:

//创建GMarker对象

var marker0 = new GMarker(myLatlng{

title:GPS17(GPS控制点)

});

//myLatlng为该点的经纬度

//在地图上为marker0添加涂层,显示marker0

map.addOverlay(marker0);

以上方法仅仅在地图上显示控制点成果的位置,不具有实用性。为了让使用者更加直观和详细地了解控制点成果的相关信息,可在控制点地标的位置加入信息窗口,即GInfoWindow信息窗口。除了文字说明,还可添加控制点四周环境的图片[5]。除此以外,在信息窗口中添加传统点之记,如图1所示。模仿传统的电子点之记,实现在GInfoWindow信息窗口中显示控制点的“坐标信息”、“地理位置”、“图片”等具体信息。

图1 利用GInfoWindow设计的控制点信息窗口

3.3 批量数据添加和管理

由于整个共享平台的数据量相当庞大,因此,逐个添加控制点的地标就显得十分麻烦。利用Google Maps API的GMarkerManager 地标管理器便可解决处理庞大的数据地标信息问题。GMarkerManager 地标管理器以及其特性加载XML文件的大量控制点数据即可完成控制点地标信息的添加。

加载XML文件之前,首先创建一个GMarkerManagere对象,完成地标管理器的创建后就可以将GMarker地标添加到GMarkerManager对象中。最后一步,就是实现正在地图上显示GMarkerManager对象中的GMarker地标。完成了上述步骤后,就可以使用Ajax技术获取数据XML文件。加载XML文件首先需要获取所有的地标信息的节点,方法为:NODE.getElementsByTagName()。然后根据取得的数据创建Gmarker对象,并将获取的数据存放入全局变量中[4,6]。

加载XML的代码[4,7]:

var xmlDoc=GXml.parse(doc);

var markers=XmlDoc.documentElement.getElementsByTagName();

XML文件格式:

-

GPS控制点

3.4 查询功能的设计

在本系统中,已经将控制点成果分类,根据控制点成果的不同属性和类别(如控制点、三角点、各级导线点、图根点、各级水准点)设置控制点成果的分类查询功能。下拉列表中的每个选项都连接着不同的XML文件,选择不同的选项,便可加载相应的XML文件实现查询。

3.5 权限设置

通过密码验证进入系统,对系统访问者进行限制,以维护系统中测量控制点成果的安全性。使用JavaScript语言编写页面登录代码,实现通过“用户名”和“密码”验证登录系统页面。

4 Google地图坐标偏差纠正

国内所有的电子地图都是用一种经过加密的坐标系统——火星坐标系统。该坐标系基准与常用的坐标基准有明显的偏差。也就是说,常见的北京1954坐标系、西安1980坐标系、2000国家大地坐标系、地方独立坐标系在Google地图上显示会出现一定的偏差。图2为纠正偏差与实际地理位置的示意图。

图2 Google地图中坐标的偏差

图2 中,带勾号的地标表示控制点实际位置,带叉号的地标表示北京1954坐标系下相对应的控制点直接导入Google地图后显示的位置。图中显示Google地图所使用的坐标系与北京1954坐标系存在明显偏差。因此,直接使用北京1954坐标系的坐标数据无法在Google地图中标注控制点的真实地理位置。

本文采用以下方法对坐标进行纠正。

4.1 纠正的思路和方法

Google地图所使用的是Web墨卡托投影的方式,其特点是:两极变化加大,中低纬度变形较小,“等角”的特征能够保证方向和相互位置的正确性[8]。笔者选择平面四参数法进行坐标的纠正。思路具体如下:利用已有的北京1954坐标系数据,选择地理位置较为明显,易在Google地图上识别的点作为纠正的控制点(x,y);在Google地图中获取对应以上纠正控制点的经纬度(B,L)G;将大地坐标转化为高斯直角坐标(X,Y)G;利用上述数据计算四参数。

平面直角坐标四参数转换模型的4个参数为:两个坐标平移参数∆x、∆y,一个旋转参数ε,一个尺度参数k,转换公式为:

以4个参数作为平差参数,误差方程如下:

式中,

其中∆x0、∆y0、k0、ε0为转换参数的近似值。

按最小二乘原理,用间接平差计算出4个转换参数。然后将需转换的点代入平面四参数转换公式中,得出在Google地图上显示的高斯直角坐标数据。因为Google地图只能识别大地坐标,最后还需将得出的坐标数据转为大地坐标数据。

4.2 实例分析

实例数据来源于某城市的控制测量点。Google地图是未知的火星坐标系统基准。该城市使用的是北京1954坐标系统,在该城市范围内选取分布均匀且地理位置易于识别的5个点,并且在Google地图上获取相同5个点的坐标数据。

将数据代入上述公式中,得出的4个转换参数分别为:∆x=-334.045131;∆y=1965.240290;ε=- 278.75676386";k=0.998177996525。

在数据中随意选取30个点,代入平面四参数转换公式中,并将数据导入Google地图中。图3中绿色地标为北京1954坐标系统的控制点,红色地标为经过平面四参数转换后相应的坐标位置,改正后的坐标位置符合实际点所在地理位置。任意选取的30个点经过改正后,能附合到实际位置上。

图3 控制点转化前后比较图

[1]谢雪梅,郭承,赵彬彬.基于GIS的控制点测量成果管理系统的设计与实现[J].信息技术与信息化,2007(3):93-95

[2]杨泽运,王辉.基于GIS的测量控制网成果管理系统的建立[J].测绘通报,2006(6):51-54

[3]朱琳,高飞,张迁.测量标志管理信息系统的设计与实现[J].测绘科学,2013(7):157-159

[4]江宽,龚小鹏.开发详解:Google Maps与Google Earth双剑合璧[M].北京: 电子工业出版社,2008

[5]纪彦忠,陈祥葱,姜波.基于GIS的测量标志管理系统设计与实现[J].测绘与空间地理信息,2013,36(6): 75-77

[6]吴肖,彭璇,朱明磊.基于Google Map API的校园电子地图开发[J].测绘工程,2010,19(3):35-38

[7]赵好好.XML在大地测量数据共享环境中的应用研究[D].武汉:武汉大学,2005

[8]刘驰.基于Google maps交通信息服务平台研究与设计[D].广州:华南理工大学,2010

猜你喜欢

控制点坐标系成果
验收成果
工大成果
解密坐标系中的平移变换
坐标系背后的故事
“健康照明”成果聚焦
NFFD控制点分布对气动外形优化的影响
基于重心坐标系的平面几何证明的探讨
基于风险管理下的项目建设内部控制点思考
“三医联动”扩大医改成果
相似材料模型中控制点像点坐标定位研究