利用地图API实现多时相遥感影像地图在线浏览
2015-02-19谢刚生
贺 佑,谢刚生
(华南农业大学信息学院,广东 广州 510640)
Online Multi-temporal Remotely Sensed Imagery Browse Based on Map API
HE You,XIE Gangsheng
利用地图API实现多时相遥感影像地图在线浏览
贺佑,谢刚生
(华南农业大学信息学院,广东 广州 510640)
Online Multi-temporal Remotely Sensed Imagery Browse Based on Map API
HE You,XIE Gangsheng
摘要:利用不同在线地图服务商卫星遥感影像数据的时间差异,结合天地图API,基于B/S开发模式,实现了低成本的多时相卫星遥感影像地图在线浏览。
关键词:天地图;地图API;多时相影像;WebGIS
一、引言
随着我国经济的快速发展,基础设施建设和房地产开发得到了极大的促进,城市的风貌在短期内出现了巨大的变化,这使得众多非专业人士也有了对土地利用变化进行了解的需求,这种需求可以通过卫星影像图的多时相浏览与比对来实现。而面向公众用户的卫星影像图的多时相浏览应用的产品较少,目前面向国内公众提供这一功能的主要有 Google公司的Google Earth,但Google Earth是一个C/S模式的电子地图软件,它的使用同在线地图相比有一定的应用局限[1];另外,我国自主研发的天地图在2014年7月6日发布的天地图2014版中新增了多时相卫星影像地图对比浏览功能,但暂时多时相卫星影像仅提供北京、上海等大中型城市及其周边区域的历史影像数据[2]。本文针对在线地图卫星影像图多时相浏览的问题进行了研究,基于天地图 API及HERE Maps API 进行了设计与开发,低成本地实现了多时相卫星影像地图的在线浏览,并可以对地图进行简单的标注、说明与标注搜索[3]。
二、技术路线
多时相通常指反映一组遥感影像在时间系列上具有的特征。卫星遥感具有按固定周期实现对地球重复覆盖的能力,能提供各种时间分辨率的多时相遥感影像,满足动态分析的要求[4]。
当前全球的大多数在线地图服务商所提供的卫星遥感影像数据,基本都是来源于美国Digital Globe公司,它的合作企业包括Google公司、Nokia公司,中国的四维图新、百度、腾讯、高德等,基本涵盖了所有主流在线地图服务提供商,但这些不同的地图服务商由于自身的定位及用户的地域范围不同,在卫星遥感影像数据的采购方面选择了不同的数据,其不同主要体现在遥感影像的时间分辨率与空间分辨率上[5]。
本文从不同在线地图服务商所提供的卫星遥感影像的时间分辨率的区别入手,在同一页面调用天地图 API及HERE Maps API,由于这两种电子地图的卫星遥感影像的拍摄时间有显著的时间差异,间接地实现了多时相卫星影像地图的在线浏览。系统前台采用HTML+CSS+JavaScript开发,系统后台采用PHP语言,数据库选取MySQL数据库,最后采用Apache服务器环境进行部署。
三、关键技术实现
1. 天地图与HERE地图调用
基于地图API的开发流程包括引用API文件、创建地图容器、创建地图实例、地图初始化、添加各项功能等基本过程。本文需要调用两个不同的地图数据,就需要分别引入两个地图的API文件,创建两个地图容器,并分别进行创建地图实例、地图初始化、添加功能等。
2. 天地图与HERE地图的坐标系转换
国内所有电子地图必须使用国家测绘地理信息局制定的加密坐标系统。基于此,尽管天地图与HERE地图均采用WGS-84坐标系,但是HERE地图在显示由天地图返回的经纬度时会出现一定程度的误差。因此在进行两个地图的经纬度参数传递时要对坐标进行转换。由于本文的方法仅用于一般浏览,且天地图与HERE地图均未提供坐标转换的API函数,本文通过对百度、腾讯等开放了的坐标转换API函数进行调用与测试,最终选择了搜狗地图的坐标转换函数对两个地图的坐标进行转换。
3. 天地图与HERE地图的浏览位置同步
实现多时相卫星影像地图的在线浏览,必须要保证两个影像地图窗口浏览位置的一致性,本文通过天地图的事件侦听、经纬度与缩放比例获取及JavaScript的参数传递来实现。天地图API中有一个事件侦听器可以直接调用来完成这一事件侦听,首先通过TEvent.addListener来添加事件侦听,TEvent.addListener方法有两个重要参数:监听事件的类型和事件触发时调用的函数。天地图在获取地图中心经纬度与缩放比例方面分别有getCenter与getZoom方法;实现这一功能的语句如图1所示。而后将cenx变量与ceny变量的经纬度数据进行坐标转换后通过JavaScript的参数传递给HERE地图,然后在HERE地图的初始化过程中利用map. Display方法使用天地图返回的经纬度数据来加载地图,从而实现了两个影像地图窗口浏览位置的一致性[6]。
图1 获取地图缩放比例及中心经纬度代码
4. 地图标注与说明
天地图添加标注工具类允许用户在地图上点击后添加一个点标注,允许用户自定义标注的图标样式,并添加文本说明。使用TMarker方法可以实现标注点的添加,通过TEvent.addListener方法中点击标注后执行的函数可以实现标注点经纬度的获取及进一步添加自定义信息窗口,再利用PHP表单提交,将标注点的名称、说明文字、经纬度信息写入数据库。
5. 地址解析
实现对用户已标记信息的搜索要使用到地址解析技术。地址解析主要分为两种: 正向地址解析和反向地址解析[7]。本文利用正向地址解析,即输入地域名,然后找到目标区域的经纬度坐标。因此,载入标记区域的地图,可按如下流程进行: 首先输入关键字进行搜索,在数据库中找到对应的标记名称,调用API解析函数,解析当前地址,如果地址解析失败,则返回; 如果解析地址成功,则返回目标区域地理坐标,通过地理坐标及缩放比例即可获取目标地图。经纬度查询及值传递的PHP代码如图2所示。然后将array_lat与array_lng数组中的经纬度数据作为地图加载的经纬度参数,依次显示在地图上,就可以实现天地图对标注位置的显示。
图2 经纬度查询及值传递代码
四、系统设计与实现
1. 系统架构
该系统总体结构设计上采用B/S模式,包括数据库、服务器、客户端(浏览器)3层结构。数据库采用MySQL数据库,Web服务器采用Apache,地图数据直接来源于天地图及HERE地图,客户端则采用普通的浏览器。逻辑上将系统分为地图应用开发中常见的数据管理层、业务逻辑层及用户界面层3层结构[8]。系统总体架构如图3所示。
图3 系统架构图
2. 数据库设计
数据库是用来存储和组织数据的, 根据系统程序应用需求和存储数据的特点, 本系统数据库在逻辑上分为天地图及HERE地图的基础地理数据、用户管理数据库3部分。
(1) 天地图及HERE地图的基础地理数据
本系统是在天地图及HERE地图服务支持下建立的, 利用其免费API得到的基础地理数据是必需的, 也是本系统实现的根本。天地图和Nokia提供的基础地理数据就是一张电子地图, 包含了各方面的地理信息,其结构见表1。
表1 用户信息表数据结构
(2) 用户管理数据
为满足用户的权限需求,实现用户的权限管理,用户对地图的标记、说明、位置等信息的存取与查看,需要设计一个用户管理数据库,内含用户信息表及用户标记表,系统采用MySQL数据库,其结构见表2。
表2 用户标记表数据结构
3. 系统功能设计
(1) 多时相卫星影像地图浏览
多时相卫星影像地图浏览包括了两个不同时间点的卫星影像地图,本文选取的分别是天地图与HERE地图,主要功能有地图缩放、矢量地图,以及影像地图切换、用户位置导航、地图浏览区域的对应等。
(2) 用户登录模块
这一模块主要是让用户注册和登录网页,用来设置用户的权限,以及自定义标注的添加与保存。
(3) 天地图标注
地图标注是为方便注册用户在多时相浏览的过程中,对自己发现的土地利用历史、变化等进行说明与标注,功能有鼠标单击添加标注、标注信息窗口添加标注信息等。
(4) 标注搜索模块
搜索模块可以实现用户对系统内其他用户在多时相浏览过程中添加的标注信息的搜索与查看。
4. 系统部署及应用
系统运行环境为: Win7+ Apache2.2.21 + MySQL 5.0数据库。发布完成后经在线测试,系统实现了设计目标,验证了本文提出的技术路线的可行性。系统主页如图4所示,图5是多时相浏览页面。
图4 系统主页
图5 多时相浏览页面
五、结束语
本文利用不同在线地图服务商卫星影像数据的差异,结合地图API,基于B/S开发模式,实现了一种低成本的多时相卫星影像地图的浏览方法,采用本方法可以有效地实现多时相卫星影像地图的快速浏览;用户还可以进一步通过浏览与比对,添加地图信息标注,分享地理信息。本文为解决卫星影像的在线多时相浏览提供了一个新的解决思路。
参考文献:
[1]江宽,龚小鹏.Google Maps与Google Earth 双剑合璧[M].北京:电子工业出版社,2008.
[2]国家测绘地理信息局.天地图2014版上线运行[EB/OL].(2014-07-09)[2014-08-09].http:∥www.sbsm.gov.cn/article/chyw/201407/20140700012566.shtml.
[3]李艳,高扬.基于地图API 的Web 地图服务及应用研究[J].地理信息世界,2010,4(2):54-57.
[4]周启民.多时相遥感影像变化检测综述[J].地理信息世界,2011,4(2):28-33.
[5]程钢,郭玉祥,贾宝,等.国内主流在线地图API分析及优化对策研究[J].测绘工程,2013,22(6):4-8.
[6]张孝祥,张红梅.JavaScript 网页开发:体验式学习教程[M].北京:清华大学出版社,2004:105-110.
[7]周宇林,付忠良.基于Google地图API 的空间信息发布[J].计算机应用,2011,31(5):1450-1453.
[8]谈帅,刘波,刘昱君.基于云计算的市县级“天地图”架构设计[J].测绘通报,2012(S1):621-623.
[9]天地图.天地图Web API (JavaScript) V2.1.2[EB/OL].2014-01-08[2014-7-10].http:∥api.tianditu.com/api-new/webIndex.html.
[10]Nokia.JavaScript APIs-HERE Developers[EB/OL].2014-9-22[2014-10-10].https:∥developer.here.com/javascript-apis.
引文格式: 贺佑,谢刚生. 利用地图API实现多时相遥感影像地图在线浏览[J].测绘通报,2015(3):79-81.DOI:10.13474/j.cnki.11-2246.2015.0082
通信作者:谢刚生
作者简介:贺佑(1989—),男,硕士生,主要研究方向为地理信息系统应用开发。E-mail:hy939@163.com
收稿日期:2014-08-28
中图分类号:P23
文献标识码:B
文章编号:0494-0911(2015)03-0079-03