賀 佑,謝剛生
(華南農(nóng)業(yè)大學(xué)信息學(xué)院,廣東 廣州 510640)
Online Multi-temporal Remotely Sensed Imagery Browse Based on Map API
HE You,XIE Gangsheng
?
利用地圖API實(shí)現(xiàn)多時相遙感影像地圖在線瀏覽
賀佑,謝剛生
(華南農(nóng)業(yè)大學(xué)信息學(xué)院,廣東 廣州 510640)
Online Multi-temporal Remotely Sensed Imagery Browse Based on Map API
HE You,XIE Gangsheng
摘要:利用不同在線地圖服務(wù)商衛(wèi)星遙感影像數(shù)據(jù)的時間差異,結(jié)合天地圖API,基于B/S開發(fā)模式,實(shí)現(xiàn)了低成本的多時相衛(wèi)星遙感影像地圖在線瀏覽。
關(guān)鍵詞:天地圖;地圖API;多時相影像;WebGIS
一、引言
隨著我國經(jīng)濟(jì)的快速發(fā)展,基礎(chǔ)設(shè)施建設(shè)和房地產(chǎn)開發(fā)得到了極大的促進(jìn),城市的風(fēng)貌在短期內(nèi)出現(xiàn)了巨大的變化,這使得眾多非專業(yè)人士也有了對土地利用變化進(jìn)行了解的需求,這種需求可以通過衛(wèi)星影像圖的多時相瀏覽與比對來實(shí)現(xiàn)。而面向公眾用戶的衛(wèi)星影像圖的多時相瀏覽應(yīng)用的產(chǎn)品較少,目前面向國內(nèi)公眾提供這一功能的主要有 Google公司的Google Earth,但Google Earth是一個C/S模式的電子地圖軟件,它的使用同在線地圖相比有一定的應(yīng)用局限[1];另外,我國自主研發(fā)的天地圖在2014年7月6日發(fā)布的天地圖2014版中新增了多時相衛(wèi)星影像地圖對比瀏覽功能,但暫時多時相衛(wèi)星影像僅提供北京、上海等大中型城市及其周邊區(qū)域的歷史影像數(shù)據(jù)[2]。本文針對在線地圖衛(wèi)星影像圖多時相瀏覽的問題進(jìn)行了研究,基于天地圖 API及HERE Maps API 進(jìn)行了設(shè)計與開發(fā),低成本地實(shí)現(xiàn)了多時相衛(wèi)星影像地圖的在線瀏覽,并可以對地圖進(jìn)行簡單的標(biāo)注、說明與標(biāo)注搜索[3]。
二、技術(shù)路線
多時相通常指反映一組遙感影像在時間系列上具有的特征。衛(wèi)星遙感具有按固定周期實(shí)現(xiàn)對地球重復(fù)覆蓋的能力,能提供各種時間分辨率的多時相遙感影像,滿足動態(tài)分析的要求[4]。
當(dāng)前全球的大多數(shù)在線地圖服務(wù)商所提供的衛(wèi)星遙感影像數(shù)據(jù),基本都是來源于美國Digital Globe公司,它的合作企業(yè)包括Google公司、Nokia公司,中國的四維圖新、百度、騰訊、高德等,基本涵蓋了所有主流在線地圖服務(wù)提供商,但這些不同的地圖服務(wù)商由于自身的定位及用戶的地域范圍不同,在衛(wèi)星遙感影像數(shù)據(jù)的采購方面選擇了不同的數(shù)據(jù),其不同主要體現(xiàn)在遙感影像的時間分辨率與空間分辨率上[5]。
本文從不同在線地圖服務(wù)商所提供的衛(wèi)星遙感影像的時間分辨率的區(qū)別入手,在同一頁面調(diào)用天地圖 API及HERE Maps API,由于這兩種電子地圖的衛(wèi)星遙感影像的拍攝時間有顯著的時間差異,間接地實(shí)現(xiàn)了多時相衛(wèi)星影像地圖的在線瀏覽。系統(tǒng)前臺采用HTML+CSS+JavaScript開發(fā),系統(tǒng)后臺采用PHP語言,數(shù)據(jù)庫選取MySQL數(shù)據(jù)庫,最后采用Apache服務(wù)器環(huán)境進(jìn)行部署。
三、關(guān)鍵技術(shù)實(shí)現(xiàn)
基于地圖API的開發(fā)流程包括引用API文件、創(chuàng)建地圖容器、創(chuàng)建地圖實(shí)例、地圖初始化、添加各項(xiàng)功能等基本過程。本文需要調(diào)用兩個不同的地圖數(shù)據(jù),就需要分別引入兩個地圖的API文件,創(chuàng)建兩個地圖容器,并分別進(jìn)行創(chuàng)建地圖實(shí)例、地圖初始化、添加功能等。
國內(nèi)所有電子地圖必須使用國家測繪地理信息局制定的加密坐標(biāo)系統(tǒng)。基于此,盡管天地圖與HERE地圖均采用WGS-84坐標(biāo)系,但是HERE地圖在顯示由天地圖返回的經(jīng)緯度時會出現(xiàn)一定程度的誤差。因此在進(jìn)行兩個地圖的經(jīng)緯度參數(shù)傳遞時要對坐標(biāo)進(jìn)行轉(zhuǎn)換。由于本文的方法僅用于一般瀏覽,且天地圖與HERE地圖均未提供坐標(biāo)轉(zhuǎn)換的API函數(shù),本文通過對百度、騰訊等開放了的坐標(biāo)轉(zhuǎn)換API函數(shù)進(jìn)行調(diào)用與測試,最終選擇了搜狗地圖的坐標(biāo)轉(zhuǎn)換函數(shù)對兩個地圖的坐標(biāo)進(jìn)行轉(zhuǎn)換。
實(shí)現(xiàn)多時相衛(wèi)星影像地圖的在線瀏覽,必須要保證兩個影像地圖窗口瀏覽位置的一致性,本文通過天地圖的事件偵聽、經(jīng)緯度與縮放比例獲取及JavaScript的參數(shù)傳遞來實(shí)現(xiàn)。天地圖API中有一個事件偵聽器可以直接調(diào)用來完成這一事件偵聽,首先通過TEvent.addListener來添加事件偵聽,TEvent.addListener方法有兩個重要參數(shù):監(jiān)聽事件的類型和事件觸發(fā)時調(diào)用的函數(shù)。天地圖在獲取地圖中心經(jīng)緯度與縮放比例方面分別有g(shù)etCenter與getZoom方法;實(shí)現(xiàn)這一功能的語句如圖1所示。而后將cenx變量與ceny變量的經(jīng)緯度數(shù)據(jù)進(jìn)行坐標(biāo)轉(zhuǎn)換后通過JavaScript的參數(shù)傳遞給HERE地圖,然后在HERE地圖的初始化過程中利用map. Display方法使用天地圖返回的經(jīng)緯度數(shù)據(jù)來加載地圖,從而實(shí)現(xiàn)了兩個影像地圖窗口瀏覽位置的一致性[6]。
圖1 獲取地圖縮放比例及中心經(jīng)緯度代碼
天地圖添加標(biāo)注工具類允許用戶在地圖上點(diǎn)擊后添加一個點(diǎn)標(biāo)注,允許用戶自定義標(biāo)注的圖標(biāo)樣式,并添加文本說明。使用TMarker方法可以實(shí)現(xiàn)標(biāo)注點(diǎn)的添加,通過TEvent.addListener方法中點(diǎn)擊標(biāo)注后執(zhí)行的函數(shù)可以實(shí)現(xiàn)標(biāo)注點(diǎn)經(jīng)緯度的獲取及進(jìn)一步添加自定義信息窗口,再利用PHP表單提交,將標(biāo)注點(diǎn)的名稱、說明文字、經(jīng)緯度信息寫入數(shù)據(jù)庫。
實(shí)現(xiàn)對用戶已標(biāo)記信息的搜索要使用到地址解析技術(shù)。地址解析主要分為兩種: 正向地址解析和反向地址解析[7]。本文利用正向地址解析,即輸入地域名,然后找到目標(biāo)區(qū)域的經(jīng)緯度坐標(biāo)。因此,載入標(biāo)記區(qū)域的地圖,可按如下流程進(jìn)行: 首先輸入關(guān)鍵字進(jìn)行搜索,在數(shù)據(jù)庫中找到對應(yīng)的標(biāo)記名稱,調(diào)用API解析函數(shù),解析當(dāng)前地址,如果地址解析失敗,則返回; 如果解析地址成功,則返回目標(biāo)區(qū)域地理坐標(biāo),通過地理坐標(biāo)及縮放比例即可獲取目標(biāo)地圖。經(jīng)緯度查詢及值傳遞的PHP代碼如圖2所示。然后將array_lat與array_lng數(shù)組中的經(jīng)緯度數(shù)據(jù)作為地圖加載的經(jīng)緯度參數(shù),依次顯示在地圖上,就可以實(shí)現(xiàn)天地圖對標(biāo)注位置的顯示。
圖2 經(jīng)緯度查詢及值傳遞代碼
四、系統(tǒng)設(shè)計與實(shí)現(xiàn)
該系統(tǒng)總體結(jié)構(gòu)設(shè)計上采用B/S模式,包括數(shù)據(jù)庫、服務(wù)器、客戶端(瀏覽器)3層結(jié)構(gòu)。數(shù)據(jù)庫采用MySQL數(shù)據(jù)庫,Web服務(wù)器采用Apache,地圖數(shù)據(jù)直接來源于天地圖及HERE地圖,客戶端則采用普通的瀏覽器。邏輯上將系統(tǒng)分為地圖應(yīng)用開發(fā)中常見的數(shù)據(jù)管理層、業(yè)務(wù)邏輯層及用戶界面層3層結(jié)構(gòu)[8]。系統(tǒng)總體架構(gòu)如圖3所示。
圖3 系統(tǒng)架構(gòu)圖
數(shù)據(jù)庫是用來存儲和組織數(shù)據(jù)的, 根據(jù)系統(tǒng)程序應(yīng)用需求和存儲數(shù)據(jù)的特點(diǎn), 本系統(tǒng)數(shù)據(jù)庫在邏輯上分為天地圖及HERE地圖的基礎(chǔ)地理數(shù)據(jù)、用戶管理數(shù)據(jù)庫3部分。
本系統(tǒng)是在天地圖及HERE地圖服務(wù)支持下建立的, 利用其免費(fèi)API得到的基礎(chǔ)地理數(shù)據(jù)是必需的, 也是本系統(tǒng)實(shí)現(xiàn)的根本。天地圖和Nokia提供的基礎(chǔ)地理數(shù)據(jù)就是一張電子地圖, 包含了各方面的地理信息,其結(jié)構(gòu)見表1。
表1 用戶信息表數(shù)據(jù)結(jié)構(gòu)
為滿足用戶的權(quán)限需求,實(shí)現(xiàn)用戶的權(quán)限管理,用戶對地圖的標(biāo)記、說明、位置等信息的存取與查看,需要設(shè)計一個用戶管理數(shù)據(jù)庫,內(nèi)含用戶信息表及用戶標(biāo)記表,系統(tǒng)采用MySQL數(shù)據(jù)庫,其結(jié)構(gòu)見表2。
表2 用戶標(biāo)記表數(shù)據(jù)結(jié)構(gòu)
多時相衛(wèi)星影像地圖瀏覽包括了兩個不同時間點(diǎn)的衛(wèi)星影像地圖,本文選取的分別是天地圖與HERE地圖,主要功能有地圖縮放、矢量地圖,以及影像地圖切換、用戶位置導(dǎo)航、地圖瀏覽區(qū)域的對應(yīng)等。
這一模塊主要是讓用戶注冊和登錄網(wǎng)頁,用來設(shè)置用戶的權(quán)限,以及自定義標(biāo)注的添加與保存。
地圖標(biāo)注是為方便注冊用戶在多時相瀏覽的過程中,對自己發(fā)現(xiàn)的土地利用歷史、變化等進(jìn)行說明與標(biāo)注,功能有鼠標(biāo)單擊添加標(biāo)注、標(biāo)注信息窗口添加標(biāo)注信息等。
搜索模塊可以實(shí)現(xiàn)用戶對系統(tǒng)內(nèi)其他用戶在多時相瀏覽過程中添加的標(biāo)注信息的搜索與查看。
系統(tǒng)運(yùn)行環(huán)境為: Win7+ Apache2.2.21 + MySQL 5.0數(shù)據(jù)庫。發(fā)布完成后經(jīng)在線測試,系統(tǒng)實(shí)現(xiàn)了設(shè)計目標(biāo),驗(yàn)證了本文提出的技術(shù)路線的可行性。系統(tǒng)主頁如圖4所示,圖5是多時相瀏覽頁面。
圖4 系統(tǒng)主頁
圖5 多時相瀏覽頁面
五、結(jié)束語
本文利用不同在線地圖服務(wù)商衛(wèi)星影像數(shù)據(jù)的差異,結(jié)合地圖API,基于B/S開發(fā)模式,實(shí)現(xiàn)了一種低成本的多時相衛(wèi)星影像地圖的瀏覽方法,采用本方法可以有效地實(shí)現(xiàn)多時相衛(wèi)星影像地圖的快速瀏覽;用戶還可以進(jìn)一步通過瀏覽與比對,添加地圖信息標(biāo)注,分享地理信息。本文為解決衛(wèi)星影像的在線多時相瀏覽提供了一個新的解決思路。
參考文獻(xiàn):
[1]江寬,龔小鵬.Google Maps與Google Earth 雙劍合璧[M].北京:電子工業(yè)出版社,2008.
[2]國家測繪地理信息局.天地圖2014版上線運(yùn)行[EB/OL].(2014-07-09)[2014-08-09].http:∥www.sbsm.gov.cn/article/chyw/201407/20140700012566.shtml.
[3]李艷,高揚(yáng).基于地圖API 的Web 地圖服務(wù)及應(yīng)用研究[J].地理信息世界,2010,4(2):54-57.
[4]周啟民.多時相遙感影像變化檢測綜述[J].地理信息世界,2011,4(2):28-33.
[5]程鋼,郭玉祥,賈寶,等.國內(nèi)主流在線地圖API分析及優(yōu)化對策研究[J].測繪工程,2013,22(6):4-8.
[6]張孝祥,張紅梅.JavaScript 網(wǎng)頁開發(fā):體驗(yàn)式學(xué)習(xí)教程[M].北京:清華大學(xué)出版社,2004:105-110.
[7]周宇林,付忠良.基于Google地圖API 的空間信息發(fā)布[J].計算機(jī)應(yīng)用,2011,31(5):1450-1453.
[8]談帥,劉波,劉昱君.基于云計算的市縣級“天地圖”架構(gòu)設(shè)計[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實(shí)現(xiàn)多時相遙感影像地圖在線瀏覽[J].測繪通報,2015(3):79-81.DOI:10.13474/j.cnki.11-2246.2015.0082
通信作者:謝剛生
作者簡介:賀佑(1989—),男,碩士生,主要研究方向?yàn)榈乩硇畔⑾到y(tǒng)應(yīng)用開發(fā)。E-mail:hy939@163.com
收稿日期:2014-08-28
中圖分類號:P23
文獻(xiàn)標(biāo)識碼:B
文章編號:0494-0911(2015)03-0079-03