Google地圖接口API之地圖基礎(二)


擁有一個免費的API Key之后就可以正式調用Google的API了進行開發了。

創建一個簡單的 Google 地圖,以下是顯示了英國倫敦的 Google 地圖:

<html> <head> <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false"> </script> <script> function initialize() { var mapProp = { center:new google.maps.LatLng(51.508742,-0.120850), zoom:5, mapTypeId:google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); } google.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="googleMap" style="width:500px;height:380px;"></div> </body> </html> 

效果如如下:(可以拷貝直接運行,當然你要能夠訪問Google)

現在對針對上面的例子進行分析如下:

(1) 添加 Google 地圖 API Key

在上面實例中第一個<script> 標簽中必須包含 Google 地圖 API:

<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false"> </script>

調用類型是下面的方式,包含兩個參數:

<script src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE"></script>

將google生成的 API key 放置於 key 參數中(key=YOUR_API_KEY)

The sensor 參數是必須的,該參數用於指明應用程序是否使用一個傳感器 (類似 GPS 導航) 來定位用戶的位置。參數值可以設置為 true 或者 false。

HTTPS:

如果你的應用是安全的HTTP(HTTPS:HTTP Secure)應用,你可以使用 HTTPS 來加載 Google 地圖 API:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE"></script>

異步加載:

同樣我們也可以在頁面完全載入后再加載 Google 地圖 API。

以 下實例使用了 window.onload 來實現頁面完全載入后加載 Google 地圖 。 loadScript() 函數創建了加載 Google 地圖 API <script> 標簽。此外在標簽的末尾添加了 callback=initialize 參數, initialize()作為回調函數會在API完全載入后執行:

function loadScript() { var script = document.createElement("script"); script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false&callback=initialize"; document.body.appendChild(script); } window.onload = loadScript; 

(2) 定義地圖屬性

在初始化地圖前,我們需要先創建一個 Map 屬性對象來定義一些地圖的屬性:

var mapProp = { center:new google.maps.LatLng(51.508742,-0.120850), zoom:7, mapTypeId: google.maps.MapTypeId.ROADMAP };

enter(中心點)

中心屬性指定了地圖的中心,該中心通過坐標(緯度,經度)在地圖上創建一個中心點。

Zoom(縮放級數)

zoom 屬性指定了地圖的 縮放級數。zoom: 0 顯示了整個地球地圖的完全縮放。

MapTypeId(地圖的初始類型)

mapTypeId 屬性指定了地圖的初始類型。

mapTypeId包括如下四種類型:

  • google.maps.MapTypeId.HYBRID:顯示衛星圖像的主要街道透明層
  • google.maps.MapTypeId.ROADMAP:顯示普通的街道地圖
  • google.maps.MapTypeId.SATELLITE:顯示衛星圖像
  • google.maps.MapTypeId.TERRAIN:顯示帶有自然特征(如地形和植被)的地圖

(3) 在哪里顯示 Google 地圖

通常 Google 地圖使用於 <div> 元素中:

<div id="googleMap" style="width:500px;height:380px;"></div>

注意: 地圖將以div中設置的大小來顯示地圖的大小,所以我們可以在 <div> 元素中設置地圖的大小。

(4) 創建一個 Map 對象

var map=new google.maps.Map(document.getElementById("googleMap") ,mapProp);

以上代碼使用參數(mapProp)在<div> 元素 (id為googleMap) 創建了一個新的地圖。

提示:如果想在頁面中創建多個地圖,你只需要添加新的地圖對象即可。

以下實例定義了四個地圖實例 (四個地圖使用了不同的地圖類型):

var map = new google.maps.Map(document.getElementById("googleMap"),mapProp); var map2 = new google.maps.Map(document.getElementById("googleMap2"),mapProp2); var map3 = new google.maps.Map(document.getElementById("googleMap3"),mapProp3); var map4 = new google.maps.Map(document.getElementById("googleMap4"),mapProp4); 

(5) 加載地圖

窗口載入后通過執行 initialize() 函數來初始化 Map 對象,這樣可以確保在頁面完全載入后再加載 Google 地圖:

google.maps.event.addDomListener(window, 'load', initialize);

附上地圖Map() 構造器的使用方法及API:

例如要創建一個 Google 地圖:

var map=new google.maps.Map(document.getElementById("googleMap"),mapOpt);

定義和用法

Map() 構造器創建了一個新的地圖並插入到指定的HTML元素中(<div> 元素)。


語法

new google.maps.Map( HTMLElement, MapOptions)

參數值

參數 描述
HTMLElement 規定要把地圖放置在那個 HTML 元素中。
MapOptions 帶有地圖初始化變量/選項的 MapOptions 對象。

Map() 的方法

方法 返回值 描述
fitBounds(LatLngBounds) None 設置要包含給定邊界的視口。
getBounds() LatLng,LatLng 返回當前視口的西南緯度/經度和東北緯度/經度。
getCenter() LatLng 返回地圖的中心的緯度/經度。
getDiv() Node 返回包含地圖的 DOM 對象。
getHeading() number 返回航拍圖像的羅盤航向(支持 SATELLITE 和 HYBRID 地圖類型)。
getMapTypeId() HYBRID ROADMAP SATELLITE TERRAIN 返回當前地圖類型。
getProjection() Projection 返回當前 Projection(投影)。
getStreetView() StreetViewPanorama 返回綁定到地圖的默認的 StreetViewPanorama。
getTilt() number 返回航拍圖像的入射角度數(支持 SATELLITE 和 HYBRID 地圖類型)。
getZoom() number 返回地圖的當前縮放級別。
panBy(xnumber,ynumber) None 通過以像素計的給定距離改變地圖的中心。
panTo(LatLng) None 改變地圖的中心為給定的 LatLng。
panToBounds(LatLngBounds) None 將地圖平移所需的最小距離以包含給定的 LatLngBounds。
setCenter(LatLng) None  
setHeading(number) None 設置航拍圖像的羅盤方向(以度為單位進行測量),基本方向為北方。
setMapTypeId(MapTypeId) None 改變要顯示的地圖類型。
setOptions(MapOptions) None  
setStreetView(StreetViewPanorama) None 綁定一個 StreetViewPanorama 到地圖上。
setTilt(number) None 設置航拍圖像的入射角度數(支持 SATELLITE 和 HYBRID 地圖類型)。
setZoom(number) None  

Map() 的屬性

屬性 類型 描述
controls Array.<MVCArray.<Node>> 要附加到地圖上的額外控件。
mapTypes MapTypeRegistry 按字符串 ID 划分的 MapType 實例的注冊表。
overlayMapTypes MVCArray.<MapType> 要疊加的額外地圖類型。

Map() 的事件

事件 參數 描述
bounds_changed None 當可視區域范圍更改時會觸發此事件。
center_changed None 當地圖 center(中心)屬性更改時會觸發此事件。
click MouseEvent 當用戶點擊地圖(但不是點擊標記或信息窗口)時會觸發此事件。
dblclick MouseEvent 當用戶雙擊地圖時會觸發此事件。請注意,觸發此事件前還會觸發點擊事件。
drag None 當用戶拖動地圖時會反復觸發此事件。
dragend None 當用戶停止拖動地圖時會觸發此事件。
dragstart None 當用戶開始拖動地圖時會觸發此事件。
heading_changed None 當地圖 heading(方向)屬性更改時會觸發此事件。
idle None 當地圖在平移或縮放之后變為閑置狀態時會觸發此事件。
maptypeid_changed None 當 mapTypeId 屬性更改時會觸發此事件。
mousemove MouseEvent 只要用戶的鼠標在地圖容器上移動,就會觸發此事件。
mouseout MouseEvent 當用戶的鼠標從地圖容器上退出時會觸發此事件。
mouseover MouseEvent 當用戶的鼠標進入地圖容器時會觸發此事件。
projection_changed None 當投影更改時會觸發此事件。
resize None 當地圖(div)更改尺寸時會觸發此事件。
rightclick MouseEvent 當用戶右擊地圖時會觸發此事件。
tilesloaded None 當可見圖塊載入完成后會觸發此事件。
tilt_changed None 當地圖 tilt(傾斜)屬性更改時會觸發此事件。
zoom_changed None 當地圖 zoom(縮放)屬性更改時會觸發此事件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM