段金荣,刘凯,徐东坡,张敏莹,施炜纲
(农业部长江下游渔业资源环境重点野外科学观测试验站中国水产科学研究院内陆渔业生态环境和资源重点开放实验室中国水产科学研究院淡水渔业研究中心,江苏无锡214081)
地理信息系统(GIS)作为获取、存储、分析和管理地理空间数据的重要工具、技术和学科,近年来得到了广泛关注和迅猛发展,随着信息技术的发展和数字时代的来临,理论上来说,GIS可以运用于现阶段任何行业,从技术和应用的角度,GIS也是解决空间问题的工具、方法和技术。目前成熟的商业地理信息系统软件有ArcGIS、MapGIS、Map Info等,Google Earth在空间数据分析、处理、表达等功能上与商业地理信息系统软件有差距,但其海量的数据存储和全球网络共享发布的功能是其它商业软件所望尘莫及的[1-2]。本研究采用Visual Basic(VB)作为可视化开发平台,MapX作为电子地图容器,将Map Info格式的地理信息如点、线、多边形等转化为可被Google Earth表达的KML文件格式,将Google Earth强大的卫星图片作为背景图像,清晰表达用户所关注图元周边的地物信息,同时可以从数据库中查询并显示选择图元的相关文本信息,扩展选择图元的信息量。
MapInfo是一套基于Windows平台的地图化信息解决方案,可以方便、直观地展现数据和地理信息的关系,其周密而详细的数据分析能力,可帮助用户从地理的角度更好地理解商业信息,辅助用户做出更具洞察力的分析和决策。Map Info主要有计算机地图制图、专题地图编制、空间查询和分析等功能。其应用领域十分广泛,包括市政工程、资源管理、企业决策、投资分析、交通运输、地质矿产、医疗保险、邮电通讯、军事公安、市场销售、石油化工、水利电力、环保旅游等,囊括各行各业[3]。
Google Earth是一款Google公司开发的虚拟地球仪软件,2005年正式向全球推出,它把卫星照片、航空照相和GIS布置在一个地球的三维模型上。Google Earth采用了公共领域的图片、受许可的航空照相图片、KeyHole间谍卫星的图片和很多其它卫星所拍摄的城镇照片,针对不同用户推出了3种版本:Google地球、Google地球专业版和Google地球企业版[4-5]。
KML,是Keyhole标记语言(Keyhole Markup Language)的缩写,是一种采用XML语法与格式的语言,用于描述和保存地理信息(如点、线、图像、多边形和模型等),可以被Google Earth和Google Maps识别并显示。KML提供以下功能:指定点图标和标识、创建特写、自定义标识内容、支持超链接和图片显示等[6]。
技术路线如图1所示。
图1 研究的技术流程
利用可视化开发语言VB和地理信息系统控件MapX,可以完成点、线、面等图元的KML文件转换,将所选择的图元显示在Google地图上,同时利用SQL和ASP技术将与该图元相关的信息直接显示在新打开的网页窗口上。
选择电子地图上用户感兴趣的图元,系统读取选择图元的经纬度坐标并转化成Google Earth所能判读的数据格式,最终将上述图元体现在Google地图上,点击该图元,可以查询与该图元相关的文本信息,并显示在地图下方打开的IE窗口内,相关文本信息存储于数据库中,可扩展性比较好。
2.1.1 点图元
读取点图元的中心坐标,将其按规定格式写入KML文件,具体的处理方法及实现见以下代码:
2.1.2 线或面图元
读取线或面图元外廓节点的坐标,将其按规定格式写入KML文件,处理方法及实现见以下代码:
生成的KML文件由于编码为ANSI,故可能会产生中文字符无法识别的情况,必须对字符作适当的处理,即KML文件必须转换成Unicode类型,从而解决Google地图出现乱码显示的问题,具体的处理方法及实现见以下代码[7-8]:
系统全部信息存储于数据库(Microsoft Access),通过点击图元并以图元名称作为传递参数,在数据库表格检索相对应的信息,并将所有信息通过ASP+SQL查询语句实现,最终将选择图元的全部检索信息体现在新打开的空白网页上[9-10]。主要代码如下:
以太湖(图2和图3)为例,表达选择图元在Google Earth中的转换结果。以“宜兴”作为查询关键词,在数据库表格中检索相与之想匹配的信息,表达于Google Earth的空白信息框内,丰富了选择地物的属性信息。
图2 选择的区域
图3 表达的区域和数据
利用Visual Basic作为可视化开发平台,MapX作为电子地图容器,将Map Info格式的地理信息如点、线、多边形等转化为可被Google Earth表达的KML文件格式。将Map Info数据转化成Google Earth所能识别的KML文件,同时将图元所涉及的属性信息以网页的形式展现,用户在地图查询的同时,获取更多的图元相关信息。解决了不同空间数据的表达形式以及与相关数据库通讯的问题,借用Google Earth的卫星地图,丰富了Map Info数据的表达内容,同时结合数据库连接,可以扩展空间地物所包含的属性数据内容。随着网络技术的发展,开发人员可利用KML在现在或未来的在线地图及3D地理信息浏览工具上撰写及分享更多的地理信息。
[1]段金荣,张红燕,施炜纲.结合GPS串口通讯和MapX在渔业资源监测上的运用[J].上海海洋大学学报,2006,15(3):380-384.
[2]谢春刚,张人铭,郭焱.Google Earth和GPS在渔业资源调查中的应用[J].上海海洋大学学报,2008,15(3):380-384.
[3]李春静,徐达,施新程,等.基于Map Info的VB集成地图开发[J].信阳师范学院学报:自然科学版,2005,18(2):231-233.
[4]向民锦,李云星.利用Google Earth建立旅游资源导航信息平台[J].湖南城市学院学报:自然科学版,2010,19(1):64-66.
[5]余丰华,姜云.Google Earth在浙江省地质灾害管理中的应用[J].地质灾害与环境保护,2007,18(3):98-103.
[6]金永福,罗冬箐,郭伟其,等.基于Google Earth的海域使用管理信息系统的应用Ⅱ.二次开发篇[J].海洋环境科学,2010,29(3):436-439.
[7]王彤,胡笳,于文凭.基于Google Earth的数字校园WebGIS系统的专题制图[J].计算机应用与软件,2010,27(6):242-243.
[8]段金荣,张红燕,施炜纲.“水产虚拟标本馆”的设计与开发[J].南方水产,2006,2(5):65-68.
[9]张在志,段金荣,刘凯,等.基于MapX的水产物种地理分布图绘制方法[J].浙江海洋学院学报:自然科学版,2009,28(4):468-472.
[10]段金荣,张红燕,刘凯,等.基于ARCSDE和MAPGUIDE的太湖渔业资源管理系统[J].中国农学通报,2011,27(7):405-408.