江蘇省鹽城經濟技術開發區中學(224007) 馮美順 王 圣 王 霞
Google Maps API(以下簡稱API)是Google為開發者提供的Maps編程API,目前已升級為第3版。它允許開發者在不必建立自己的地圖服務器的情況下,將Google地圖嵌入到網站之中,從而實現嵌入Google地圖的服務應用。此外,API還提供了大量實用工具以處理地圖,通過各種服務向地圖添加內容,使開發者能夠開發出各種各樣有趣的地圖應用程序,等高線地形圖專題網頁(以下簡稱專題網頁)就是一個基于API開發的,能應用于中學地理課堂教學的地圖應用程序。
根據中學地理等高線地形圖的教學要求和Google地形圖的特點,專題網頁(網址http://www.yckz.cn/dl/contourmap.aspx)在開發中主要規劃了以下功能:
專題網頁中默認顯示的是臺灣南部某區域的等高線地形圖,通過平移和縮放操作,還可以隨意顯示其它地區的等高線地形圖,功能界面如下圖1所示。

圖1 顯示區域等高線地形圖
專題地圖允許教師在地圖上任意標記地點,并能自動顯示標記點的海拔高度和點間的水平距離,功能界面如下圖2所示。

圖2 在等高線地形圖上標記地點并自動顯示海拔
如果教師在地圖上標記了兩個以上的地點,則這些點能自動連接成線。點擊地圖下的“生成剖面圖”按鈕,還可以自動繪制出沿路線的地形剖面圖,功能界面如下圖3所示。

圖3 自動連接標記點并生成地形剖面圖
API是通過JavaScript將地圖嵌入到網頁中的,在網頁上顯示Google地圖只需幾個簡單的步驟:
· 使用 script 標記載入 Google Maps API
· 定義 JavaScript 對象常量
· 編寫創建“map”對象的JavaScript 函數
設定以臺灣南部某地為中心的等高線地形圖的主要代碼如下:

以上代碼中,script標記內的http://maps.googleapis.com/maps/api/js網址指向Google Maps API JavaScript文件所在的位置,該文件會載入使用API所需的全部符號與定義,由于專題地圖無需傳感器確定位置,所以還要把sensor參數的值設置為false。
API提供了四種地圖類型,分別是道路地圖、地球衛星圖像、普通地圖和衛星圖以及地形圖,Google地圖網站默認的地圖類型是道路地圖(ROADMAP),專題網頁選用的是地形圖(TERRAIN)。
僅有上述代碼還不能夠支持教師在專題地圖上自由標記地點的交互操作。在API中,地圖上顯示的每個對象都已包含了大量命名的事件,開發者可以通過在event命名空間中注冊addListener事件偵聽器,對用戶操作做出響應。專題地圖中,需要創建的用戶操作響應是當他們在點擊地圖時,在所點擊的位置創建一個標記。實現這樣的操作效果,首先需要在初始化地圖函數中添加地圖事件偵聽器,然后再構造出相應的事件處理程序。專題地圖中添加的事件偵聽器的語句如下,它的三個參數分別是地圖、鼠標單擊和添加標記函數。
google.maps.event.addListener(map, 'click',addMarker);
Google地圖上的標記是指地圖上的單個位置,它與專題網頁中根據點自動連成的折線一樣,都屬于疊加層。API中的疊加層是地圖上與經緯度坐標綁定的對象,會隨用戶拖動或縮放地圖而移動。設置標記用google.maps.Marker方法,而把點連成折線則應使用google.maps.Polyline方法,示例代碼如下。

google.maps.Marker方法中position屬性將決定該標記在地圖上的位置,因此必須指定一個LatLng對象(經緯度坐標)。google.maps.Polyline方法中,path屬性值是必須指定的,不過與標記單個位置的點不同,它需要指定為LatLng對象的數組,并且只有當數組中包含兩個以上的值時,折線才會顯示。專題地圖中,LatLng對象的值是由用戶點擊地圖時產生的,并由參數location負責傳遞。
專題地圖上點的海拔高度和折線的實際距離,是通過調用API的外部服務得到的,其中地面上點的海拔數據是由ElevationService服務提供的,而DistanceMatrixService則提供距離服務。通過構建海拔和距離服務對象,可實現在專題地圖上顯示海拔和水平距離的功能。服務對象構建的代碼如下:

A P I中單獨地點的海拔服務請求使用的是getElevationForLocations()方法,由于繪制地表剖面圖需要取得剖面線上一系列點的海拔,因此需要調用getElevationAlongPath() 方法,在調用此方法時,必須傳遞一個沿剖面線提取多少個點的參數。調用getElevationAlongPath的代碼格式如下。

為防止出現濫用服務的現象,API對海拔服務設置了評分限制,對距離服務雖沒有設評分限制,但如果在特定時間內請求過多,也會返回OVER_QUERY_LIMIT(超過查詢限制)的響應代碼。
初中地理教材通過一幅“等高線示意”圖,把直觀的立體山體與該山體經過等高面切割后產生的等高線在平面上的投影相結合的方法,說明了等高線繪制的基本原理,既形象又直觀,有利于學生對等高線地形圖的理解,但要求學生能從等高線地形圖上分析出山地不同部位的等高線形態特點,還是顯得非常抽象。專題網頁中的地形圖,把等高線直接繪制在俯視的立體地形之上,使等高線與實際地形有機地結合在一起,緩坡、陡坡、山脊、山谷和鞍部等山地不同部位的等高線形態特點一目了然,非常直觀(見上圖1)。教師通過平移地圖,還可以讓學生觀察更多感興趣的區域等高線地形圖(比如自己家鄉的),進一步豐富和充實教學內容,提高學生的等高線地形圖判讀能力。
利用專題地圖標記地點、自動連線、生成剖面和信息提示等功能,教師可引導學生根據等高線地形圖繪制的基本原理,觀察分析專題地圖中標記地點的海拔高度、計算(估算)兩點間的相對高度及坡度和繪制地形剖面圖等,進一步培養學生從地圖上獲取地理信息、分析和運用地理數據的能力。此外,通過展示專題地圖操作的交互性和信息反饋的新穎性特點,還讓學生體驗地理信息技術的魅力,激發他們學習地理知識的興趣。
地形是地理環境的構成要素之一,與其它地理環境要素和人類活動的關系密切,通過切換和對比顯示一些實際區域的地形圖、道路交通地圖和地球衛星圖等不同的圖像資料,能引導學生理論聯系實際地分析地形對河流、聚落分布和工程建設等的影響。
(1)對河流的影響
通過觀察某一地區的等高線地形圖(圖4),便可分析出河流常發育于山谷處,山脊常成為分水嶺,河流的流向總是與等高線的彎曲方向相反、等高線密集的河谷,河流落差大等河流的水系與水文特征。

圖4 地形對河流的影響
(2)對聚落分布的影響
聚落主要分布在平原地區,山區聚落規模通常較小,數量也少,且多分布在地勢較低的河谷地帶。觀察臺灣南部某一區域的等高線地形圖(圖5),可直觀地了解聚落分布的這一特點,結合地形、河流和交通等條件還能進一步引導學生綜合分析這一特點的成因。

圖5 地形對聚落分布的影響
(3)對工程建設的影響
道路修筑和水庫建壩等建設工程,均要充分考慮當地的地形條件。觀察臺灣南部某山區公路的分布圖(圖6),可以發現為了降低坡度和保證運輸安全,上山的公路呈成“之”字形彎曲,而山上的公路基本上沿等高線延伸的山區道路修筑的特點。

圖6 地形對山區公路修筑的影響
赫奇赫奇水庫位于美國西部加利福尼亞州舊金山市附近,對比觀察美國西部赫奇赫奇水庫大壩的衛星圖像與地形圖(圖7), 不僅能讓學生感受水利工程的雄偉壯觀,還能引導學生分析水庫壩址選擇的科學性。大壩建在等高線密集的河流峽谷處,既可減少工程量和投資,又能增加安全系數,庫區范圍是面積較大的寬闊河谷,提供了較大的容水空間,大壩以上有一定的集水面積,能為庫區提供較充足水源。

圖7 地形對水庫建壩的影響
Google地圖信息量巨大,把專題網頁應用于地理課堂教學之中,不僅能豐富教學手段、充實教學內容,而且能增強學生的感性認識,有利于培養學生的地理邏輯思維能力,提升地理信息素養。