基于Google Map API的海洋观测站信息管理系统的开发
由于卫星影像数据昂贵,对一般的研究机构来说是遥不可及的,Google公司提供了完善的空间数据,选择Google Map进行系统开发,开发周期短,成本低。通过Google Map API进行二次开发,可以在管理系统上实现地理信息功能,为用户提供地理信息服务。管理系统的海洋观测站定位采用Google地图定位,借助Google Map,将地图数据嵌入到管理系统的界面里,这样更好可视化管理海洋观测站。
1 Google Map API简介
Google Map是Google公司开发的一款虚拟地图软件,它有覆盖全球的航天和卫星图片,其卫星影像图解析度高、更新快、免费等特点已引起国内各行业的广泛关注[1]。谷歌于2005年6月推出了Google Map API,允许开发者谷歌地图整合到自己的网站。通过使用Google Map API,它可以使外部网站嵌入到Google Map网站,对网站的具体数据可以覆盖。Google Map集合了电子地图、卫星地图、混合地图三种模式。并完全基于AJAX技术实现,有相当好的用户体验。
2 系统的总体设计
系统采用C/S构架,支持用户在任何地点,任何时间通过互联网对系统进行相关的操作。系统由数据层和界面功能两部分组成,数据层负责海洋观测站的数据运算、数据存储、处理各种请求命令以及用户信息管理。界面功能层负责信息显示、信息的处理以及人机交换。海洋观测站的总体构架,如图1。
2.1 数据层
数据层主要为数据库服务器,服务器上运行着Windows Server 2003操作系统、SQL Server数据库以及服务器管理软件。SQL Server数据库存储海洋观测站的各种相关数据,这些数据包括观测站基本信息、风速数据、温湿度数据、气压数据及观测站的地理信息数据,数据以表格形式存储在数据库,用户随时可以检索到最新的观测站数据。服务器的管理软件,根据依据既定的准则对各种请求做出不同的回应及对数据进行运算处理。管理软件及时地与数据库进行通信,对数据进行存取、增删减等相关的操作。数据层的另一个功能管理用户信息,为了保障数据的安全,数据库设置相关的权限,用户拥有权限才可以访问。
2.2 用户界面功能层
用户界面功能层主要指客户端,客户端是用户与系统之间的数据交换的入口,用户可以根据自己意愿在符合相关的操作规则下,可以对系统进行配置;客户端的功能主要为用户提供系统的数据。在客户端的界面上直观显示数据,以及观测站的地理位置,为了更好形象模拟数据规律,温度数据采用动态曲线显示,用户通过曲线能够直观看出数据随时间的变化。湿度数据、风速数据、气压数据通过表格形式显示在客户端的界面上。在地图模块部分,根据海洋观测站提供的地理信息,地图模块通过数据处理显示其位置,可以直观看出观测点所在的地理位置。用户界面功能层,数据以地图显示模块,动态曲线,数据列表等方式表现。
2.3 应用层
应用层主要包括操作系统平台、安全保障体系及网络通信,为了确保信息数据的畅通传输,本系统网络通信部分采用基于Socket的网络通信工具的设计与实现的方法,基于socket 的局域网聊天工具应用前景广泛,不断能够实现传统要求,还能针对新的要求提出对策,我们就不难相信其将有着更大的应用前景[2]。基于Socket的网络通信很好地诠释了Socket通信的原理,它具有信息收发速度快,保密性好,占用网络宽带资源低,占用服务器吞吐能力低,易于编程实现等优点。同时.NET平台下的Socket函数在网络通信领域应用广泛。
3 系统的功能实现
系统的核心部分为用户界面功能层,职责向用户展现各项数据。用户界面功能层主要实现Google Map浏览功能,数据展现以及用户管理操作。数据的核心部分为数据层,包括数据的处理、数据的存储以及用户信息管理。如图2,系统总体构架。
3.1 Google Map模块
Google Map模块的主要功能在于实现Google Map的基本功能,包括拖拽、放大缩小、平移等基本功能;在本系统中增加观测站的定位标志显示功能。Google Map功能模块基于C#与Google Map API开发实现的。C#(读作“C- sharp”)是微软公司发布的一种面向对象的、运行于.NET Framework 环境之上的高级程序设计语言。其在PDC 上。Google Map的JavaScript API可以让用户在自己的网页中嵌入Google Map。本系统的网页部分的程序主要是基于Google Maps JavaScript API v3的接口进行地图的二次开发的。本方案采用Google Map API v3来显示系统地图模块,在DHTML文件中调用Google Map API v3实现了Google Map电子地图浏览的功能,本文编写DHTML文件的中的JavaScript函数,该函数实现Google Map定位功能,通过标注Google Map,实现了观测站的地理位置的显示,用户很直观地在地图上观测出海洋观测站的位置。
DHTML文件中的JS函数,该函数实现了海洋观测站地理位置定位。
functiongps(lat,lng)
{
vargetLon =lng ;
vargetLat =lat;
geocoder = new er();
varmyLatlng = new (getLat, getLon);
varmyOptions;
myOptions =
{
zoom: 12,
center: myLatlng,
disableDoubleClickZoom: true,
scaleControl: true,
}
map = new (mentById("map_canvas"), myOptions);
marker = new ({
map: map,
position: myLatlng,
draggable: true,
});
(marker);
}
在C# 中实现用户专题数据的地理空间自我定位的功能。为了更直观显示地图数据,系统需要利用.NET VisualStudio2010,Visual Studio控件类提供的浏览器控件。webBrowser控件使Windows窗体
客户端应用程序显示网页,可以实现和Internet Explorer Web浏览器同样的功能[5]。此外,还可以使用WebBrowser控件的Windows窗体客户端应用程序添加Web的控制。Web-Browser控件实现网页显示,能够加载地图。
通过加载数据地图文件,地图模块显示Google Map地图,这样实现了地图显示功能,包括缩小放大、拖拽、平移等基本功能。
WebAddress = @"File:\\" + pPath + "\\?lon=" + lng + "&lat=" + lat;
Uri url = new Uri(WebAddress, te);
= url;
由于客户端地图模块信息保持更新,客户端需要与DHTML文件进行数据通信,因此客户端程序进行调用DHTML文件中的JS 程序。通过webBrowser1. Script函数来传递具体的参数信息并执行静态Web 页面的脚本函数“addpoint”,实现加点标注功能[6]。调用ript脚本文件改变DHTML中JS函数的参数。实现WinForm与Web静态网页的信息交换,其中GPS为JS函数参数传递经纬度信息,在地图上标志其所在的位置。
ocument2currentDoc = (ocument2)webBrowser.
ument;
indow2 win = (indow2)
Window;
ript("gps(" + lat + "," + lng + ")", "javascript");//数据显示模块
3.2 数据表格模块
当处理大数据时,为了更好显示数据值,界面数据的数据显示设计为列表,用户可以很直观观测数据。客户端的数据列表采用Infragistics公司的inGrid.v12.1控件。列表与数据库进行绑定,定时进行数据刷新,以确保用户看到的数据为最新的数据。
3.3 数据曲线模块
为了让用户更直观观察温度数据的变化,界面功能中添加曲线数据显示这一项,通过动态曲线的变化,观测温度变化的趋势。客户端的曲线采用inChart.v12.1控件。
3.4 数据层
数据模块层的职责是处理数据、存储数据、监控系统和用户信息管理。海洋观测站数据流汇聚在服务器管理软件系统,服务器根据既定准侧把数据处理成相应类型的数据,通过数据通道与数据库进行数据交换,及时把数据存储到数据库中。管理软件系统协调处理客户端请求、数据库的操作以及数据分流。最终完成了用户对数据的采集和监控。
海洋观测站信息管理系统主要为了完成用户对各种信息的浏览、检索以及观测站各项数据更新、删除、添加、维护等工作。这些数据包括观测站基本信息,采集数据,用户管理信息等。
4 结论与展望
海洋观测站信息管理系统,通过使用Google Map接口,结合C#语言的应用程序开发,实现了海洋观测站管理系统可视化管理;各项数据直观地展现给用户,这样用户更好地管理海洋观测站。开发者可以随意使用Google Map API提供有效的地图服务,Google Map在国内越来越受到重视。
参考文献:
[1]陈新国,操文建,邹红梅.基于Google Map的水文测站信息管理系统研究[J].人民长江,2009,04:63-64+86.
[2]王雅洁,王玲芬.基于socket的局域网聊天工具[J].计算机光盘软件与应用,2012,02:188+195.
[3]王志俊.浅析C与C#[J].科学之友(B版),2009,06:146-147.
[4]董志.C#集成Google Maps API进行地理空间的定位[J].电脑编程技巧与维护,2011,19:47-53.
[5]储伟伟,俞方英.用Google Maps实现桥梁管理系统中的地理信息功能[J].交通标准化,2009,17:150-154.
[6]梁志强,刘鑫.基于C#+Google Map实现集体林小班定位方法的研究[J].林业勘查设计,2012,02:97-98.
作者简介:杨成文(1981.4.17-),男,吉林人,本科,讲师,研究方向:软件工程。
作者单位:同济大学,上海 200092