江蘇省鹽城經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)中學(xué)(224007) 馮美順 王 圣 王 霞
Google Maps API(以下簡(jiǎn)稱(chēng)API)是Google為開(kāi)發(fā)者提供的Maps編程API,目前已升級(jí)為第3版。它允許開(kāi)發(fā)者在不必建立自己的地圖服務(wù)器的情況下,將Google地圖嵌入到網(wǎng)站之中,從而實(shí)現(xiàn)嵌入Google地圖的服務(wù)應(yīng)用。此外,API還提供了大量實(shí)用工具以處理地圖,通過(guò)各種服務(wù)向地圖添加內(nèi)容,使開(kāi)發(fā)者能夠開(kāi)發(fā)出各種各樣有趣的地圖應(yīng)用程序,等高線(xiàn)地形圖專(zhuān)題網(wǎng)頁(yè)(以下簡(jiǎn)稱(chēng)專(zhuān)題網(wǎng)頁(yè))就是一個(gè)基于API開(kāi)發(fā)的,能應(yīng)用于中學(xué)地理課堂教學(xué)的地圖應(yīng)用程序。
根據(jù)中學(xué)地理等高線(xiàn)地形圖的教學(xué)要求和Google地形圖的特點(diǎn),專(zhuān)題網(wǎng)頁(yè)(網(wǎng)址http://www.yckz.cn/dl/contourmap.aspx)在開(kāi)發(fā)中主要規(guī)劃了以下功能:
專(zhuān)題網(wǎng)頁(yè)中默認(rèn)顯示的是臺(tái)灣南部某區(qū)域的等高線(xiàn)地形圖,通過(guò)平移和縮放操作,還可以隨意顯示其它地區(qū)的等高線(xiàn)地形圖,功能界面如下圖1所示。
圖1 顯示區(qū)域等高線(xiàn)地形圖
專(zhuān)題地圖允許教師在地圖上任意標(biāo)記地點(diǎn),并能自動(dòng)顯示標(biāo)記點(diǎn)的海拔高度和點(diǎn)間的水平距離,功能界面如下圖2所示。
圖2 在等高線(xiàn)地形圖上標(biāo)記地點(diǎn)并自動(dòng)顯示海拔
如果教師在地圖上標(biāo)記了兩個(gè)以上的地點(diǎn),則這些點(diǎn)能自動(dòng)連接成線(xiàn)。點(diǎn)擊地圖下的“生成剖面圖”按鈕,還可以自動(dòng)繪制出沿路線(xiàn)的地形剖面圖,功能界面如下圖3所示。
圖3 自動(dòng)連接標(biāo)記點(diǎn)并生成地形剖面圖
API是通過(guò)JavaScript將地圖嵌入到網(wǎng)頁(yè)中的,在網(wǎng)頁(yè)上顯示Google地圖只需幾個(gè)簡(jiǎn)單的步驟:
· 使用 script 標(biāo)記載入 Google Maps API
· 定義 JavaScript 對(duì)象常量
· 編寫(xiě)創(chuàng)建“map”對(duì)象的JavaScript 函數(shù)
設(shè)定以臺(tái)灣南部某地為中心的等高線(xiàn)地形圖的主要代碼如下:
以上代碼中,script標(biāo)記內(nèi)的http://maps.googleapis.com/maps/api/js網(wǎng)址指向Google Maps API JavaScript文件所在的位置,該文件會(huì)載入使用API所需的全部符號(hào)與定義,由于專(zhuān)題地圖無(wú)需傳感器確定位置,所以還要把sensor參數(shù)的值設(shè)置為false。
API提供了四種地圖類(lèi)型,分別是道路地圖、地球衛(wèi)星圖像、普通地圖和衛(wèi)星圖以及地形圖,Google地圖網(wǎng)站默認(rèn)的地圖類(lèi)型是道路地圖(ROADMAP),專(zhuān)題網(wǎng)頁(yè)選用的是地形圖(TERRAIN)。
僅有上述代碼還不能夠支持教師在專(zhuān)題地圖上自由標(biāo)記地點(diǎn)的交互操作。在API中,地圖上顯示的每個(gè)對(duì)象都已包含了大量命名的事件,開(kāi)發(fā)者可以通過(guò)在event命名空間中注冊(cè)addListener事件偵聽(tīng)器,對(duì)用戶(hù)操作做出響應(yīng)。專(zhuān)題地圖中,需要?jiǎng)?chuàng)建的用戶(hù)操作響應(yīng)是當(dāng)他們?cè)邳c(diǎn)擊地圖時(shí),在所點(diǎn)擊的位置創(chuàng)建一個(gè)標(biāo)記。實(shí)現(xiàn)這樣的操作效果,首先需要在初始化地圖函數(shù)中添加地圖事件偵聽(tīng)器,然后再構(gòu)造出相應(yīng)的事件處理程序。專(zhuān)題地圖中添加的事件偵聽(tīng)器的語(yǔ)句如下,它的三個(gè)參數(shù)分別是地圖、鼠標(biāo)單擊和添加標(biāo)記函數(shù)。
google.maps.event.addListener(map, 'click',addMarker);
Google地圖上的標(biāo)記是指地圖上的單個(gè)位置,它與專(zhuān)題網(wǎng)頁(yè)中根據(jù)點(diǎn)自動(dòng)連成的折線(xiàn)一樣,都屬于疊加層。API中的疊加層是地圖上與經(jīng)緯度坐標(biāo)綁定的對(duì)象,會(huì)隨用戶(hù)拖動(dòng)或縮放地圖而移動(dòng)。設(shè)置標(biāo)記用google.maps.Marker方法,而把點(diǎn)連成折線(xiàn)則應(yīng)使用google.maps.Polyline方法,示例代碼如下。
google.maps.Marker方法中position屬性將決定該標(biāo)記在地圖上的位置,因此必須指定一個(gè)LatLng對(duì)象(經(jīng)緯度坐標(biāo))。google.maps.Polyline方法中,path屬性值是必須指定的,不過(guò)與標(biāo)記單個(gè)位置的點(diǎn)不同,它需要指定為L(zhǎng)atLng對(duì)象的數(shù)組,并且只有當(dāng)數(shù)組中包含兩個(gè)以上的值時(shí),折線(xiàn)才會(huì)顯示。專(zhuān)題地圖中,LatLng對(duì)象的值是由用戶(hù)點(diǎn)擊地圖時(shí)產(chǎn)生的,并由參數(shù)location負(fù)責(zé)傳遞。
專(zhuān)題地圖上點(diǎn)的海拔高度和折線(xiàn)的實(shí)際距離,是通過(guò)調(diào)用API的外部服務(wù)得到的,其中地面上點(diǎn)的海拔數(shù)據(jù)是由ElevationService服務(wù)提供的,而DistanceMatrixService則提供距離服務(wù)。通過(guò)構(gòu)建海拔和距離服務(wù)對(duì)象,可實(shí)現(xiàn)在專(zhuān)題地圖上顯示海拔和水平距離的功能。服務(wù)對(duì)象構(gòu)建的代碼如下:
A P I中單獨(dú)地點(diǎn)的海拔服務(wù)請(qǐng)求使用的是getElevationForLocations()方法,由于繪制地表剖面圖需要取得剖面線(xiàn)上一系列點(diǎn)的海拔,因此需要調(diào)用getElevationAlongPath() 方法,在調(diào)用此方法時(shí),必須傳遞一個(gè)沿剖面線(xiàn)提取多少個(gè)點(diǎn)的參數(shù)。調(diào)用getElevationAlongPath的代碼格式如下。
為防止出現(xiàn)濫用服務(wù)的現(xiàn)象,API對(duì)海拔服務(wù)設(shè)置了評(píng)分限制,對(duì)距離服務(wù)雖沒(méi)有設(shè)評(píng)分限制,但如果在特定時(shí)間內(nèi)請(qǐng)求過(guò)多,也會(huì)返回OVER_QUERY_LIMIT(超過(guò)查詢(xún)限制)的響應(yīng)代碼。
初中地理教材通過(guò)一幅“等高線(xiàn)示意”圖,把直觀的立體山體與該山體經(jīng)過(guò)等高面切割后產(chǎn)生的等高線(xiàn)在平面上的投影相結(jié)合的方法,說(shuō)明了等高線(xiàn)繪制的基本原理,既形象又直觀,有利于學(xué)生對(duì)等高線(xiàn)地形圖的理解,但要求學(xué)生能從等高線(xiàn)地形圖上分析出山地不同部位的等高線(xiàn)形態(tài)特點(diǎn),還是顯得非常抽象。專(zhuān)題網(wǎng)頁(yè)中的地形圖,把等高線(xiàn)直接繪制在俯視的立體地形之上,使等高線(xiàn)與實(shí)際地形有機(jī)地結(jié)合在一起,緩坡、陡坡、山脊、山谷和鞍部等山地不同部位的等高線(xiàn)形態(tài)特點(diǎn)一目了然,非常直觀(見(jiàn)上圖1)。教師通過(guò)平移地圖,還可以讓學(xué)生觀察更多感興趣的區(qū)域等高線(xiàn)地形圖(比如自己家鄉(xiāng)的),進(jìn)一步豐富和充實(shí)教學(xué)內(nèi)容,提高學(xué)生的等高線(xiàn)地形圖判讀能力。
利用專(zhuān)題地圖標(biāo)記地點(diǎn)、自動(dòng)連線(xiàn)、生成剖面和信息提示等功能,教師可引導(dǎo)學(xué)生根據(jù)等高線(xiàn)地形圖繪制的基本原理,觀察分析專(zhuān)題地圖中標(biāo)記地點(diǎn)的海拔高度、計(jì)算(估算)兩點(diǎn)間的相對(duì)高度及坡度和繪制地形剖面圖等,進(jìn)一步培養(yǎng)學(xué)生從地圖上獲取地理信息、分析和運(yùn)用地理數(shù)據(jù)的能力。此外,通過(guò)展示專(zhuān)題地圖操作的交互性和信息反饋的新穎性特點(diǎn),還讓學(xué)生體驗(yàn)地理信息技術(shù)的魅力,激發(fā)他們學(xué)習(xí)地理知識(shí)的興趣。
地形是地理環(huán)境的構(gòu)成要素之一,與其它地理環(huán)境要素和人類(lèi)活動(dòng)的關(guān)系密切,通過(guò)切換和對(duì)比顯示一些實(shí)際區(qū)域的地形圖、道路交通地圖和地球衛(wèi)星圖等不同的圖像資料,能引導(dǎo)學(xué)生理論聯(lián)系實(shí)際地分析地形對(duì)河流、聚落分布和工程建設(shè)等的影響。
(1)對(duì)河流的影響
通過(guò)觀察某一地區(qū)的等高線(xiàn)地形圖(圖4),便可分析出河流常發(fā)育于山谷處,山脊常成為分水嶺,河流的流向總是與等高線(xiàn)的彎曲方向相反、等高線(xiàn)密集的河谷,河流落差大等河流的水系與水文特征。
圖4 地形對(duì)河流的影響
(2)對(duì)聚落分布的影響
聚落主要分布在平原地區(qū),山區(qū)聚落規(guī)模通常較小,數(shù)量也少,且多分布在地勢(shì)較低的河谷地帶。觀察臺(tái)灣南部某一區(qū)域的等高線(xiàn)地形圖(圖5),可直觀地了解聚落分布的這一特點(diǎn),結(jié)合地形、河流和交通等條件還能進(jìn)一步引導(dǎo)學(xué)生綜合分析這一特點(diǎn)的成因。
圖5 地形對(duì)聚落分布的影響
(3)對(duì)工程建設(shè)的影響
道路修筑和水庫(kù)建壩等建設(shè)工程,均要充分考慮當(dāng)?shù)氐牡匦螚l件。觀察臺(tái)灣南部某山區(qū)公路的分布圖(圖6),可以發(fā)現(xiàn)為了降低坡度和保證運(yùn)輸安全,上山的公路呈成“之”字形彎曲,而山上的公路基本上沿等高線(xiàn)延伸的山區(qū)道路修筑的特點(diǎn)。
圖6 地形對(duì)山區(qū)公路修筑的影響
赫奇赫奇水庫(kù)位于美國(guó)西部加利福尼亞州舊金山市附近,對(duì)比觀察美國(guó)西部赫奇赫奇水庫(kù)大壩的衛(wèi)星圖像與地形圖(圖7), 不僅能讓學(xué)生感受水利工程的雄偉壯觀,還能引導(dǎo)學(xué)生分析水庫(kù)壩址選擇的科學(xué)性。大壩建在等高線(xiàn)密集的河流峽谷處,既可減少工程量和投資,又能增加安全系數(shù),庫(kù)區(qū)范圍是面積較大的寬闊河谷,提供了較大的容水空間,大壩以上有一定的集水面積,能為庫(kù)區(qū)提供較充足水源。
圖7 地形對(duì)水庫(kù)建壩的影響
Google地圖信息量巨大,把專(zhuān)題網(wǎng)頁(yè)應(yīng)用于地理課堂教學(xué)之中,不僅能豐富教學(xué)手段、充實(shí)教學(xué)內(nèi)容,而且能增強(qiáng)學(xué)生的感性認(rèn)識(shí),有利于培養(yǎng)學(xué)生的地理邏輯思維能力,提升地理信息素養(yǎng)。