Google 地圖基礎(chǔ)

2019-09-21 17:04 更新

 寫(xiě)在前面:谷歌地圖 API 的國(guó)外服務(wù)地址是 maps.googleapis.com/maps/api/js,國(guó)內(nèi)服務(wù)地址是 maps.google.cn/maps/api/js


創(chuàng)建一個(gè)簡(jiǎn)單的 Google 地圖

現(xiàn)在讓我們創(chuàng)建一個(gè)簡(jiǎn)單的 Google 地圖。

以下是顯示了英國(guó)倫敦的 Google 地圖:

實(shí)例

<!DOCTYPE html>
<html>
<head>
<script src="http://maps.google.cn/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false" rel="external nofollow" ></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>

嘗試一下 ?


實(shí)例解析

我們以以上實(shí)例來(lái)解析 Google 地圖的創(chuàng)建過(guò)程。

應(yīng)用為什么要聲明 HTML5?

<!DOCTYPE html>

大多數(shù)瀏覽器使用 "標(biāo)準(zhǔn)模式" 的 HTML5 文檔渲染頁(yè)面,這就意味著你的應(yīng)用是兼容各大瀏覽器的。

另外,如果沒(méi)有DOCTYPE標(biāo)簽,瀏覽器則使用混雜模式 (quirks mode)進(jìn)行渲染頁(yè)面內(nèi)容。

提示: 應(yīng)該注意的是一些"混雜模式 "中的CSS并不能使用于標(biāo)準(zhǔn)模式中。在具體的應(yīng)用中,所有基于百分比的大小都必須從父塊元素繼承 。如果在父模塊中沒(méi)有指定大小,默認(rèn)值為 0 x 0 像素。如果你想使用百分比,可以在<style> 標(biāo)簽中聲明,如下所示:

<style type="text/css">     

    html {height:100%}    

    body {height:100%;margin:0;padding:0}

    #googleMap {height:100%}
</style>

這個(gè)樣式聲明表明地圖模塊的(GoogleMap)應(yīng) HTML高度為100%。


添加 Google 地圖 API Key

在以下實(shí)例中第一個(gè)<script> 標(biāo)簽中必須包含 Google 地圖 API:

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

將google生成的 API key 放置于 key 參數(shù)中(key=YOUR_API_KEY)。

The sensor 參數(shù)是必須的,該參數(shù)用于指明應(yīng)用程序是否使用一個(gè)傳感器 (類(lèi)似 GPS 導(dǎo)航) 來(lái)定位用戶的位置。參數(shù)值可以設(shè)置為 true 或者 false。

HTTPS

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

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

異步加載

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

以下實(shí)例使用了 window.onload 來(lái)實(shí)現(xiàn)頁(yè)面完全載入后加載 Google 地圖 。 loadScript() 函數(shù)創(chuàng)建了加載 Google 地圖 API <script> 標(biāo)簽。此外在標(biāo)簽的末尾添加了 callback=initialize 參數(shù), initialize()作為回調(diào)函數(shù)會(huì)在API完全載入后執(zhí)行:

實(shí)例

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;

嘗試一下 ?


定義地圖屬性

在初始化地圖前,我們需要先創(chuàng)建一個(gè) Map 屬性對(duì)象來(lái)定義一些地圖的屬性:

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

center(中心點(diǎn))

中心屬性指定了地圖的中心,該中心通過(guò)坐標(biāo)(緯度,經(jīng)度)在地圖上創(chuàng)建一個(gè)中心點(diǎn)。

Zoom(縮放級(jí)數(shù))

zoom 屬性指定了地圖的 縮放級(jí)數(shù)。zoom: 0 顯示了整個(gè)地球地圖的完全縮放。

MapTypeId(地圖的初始類(lèi)型)

mapTypeId 屬性指定了地圖的初始類(lèi)型。

mapTypeId包括如下四種類(lèi)型:

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

在哪里顯示 Google 地圖

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

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

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


創(chuàng)建一個(gè) Map 對(duì)象

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

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

提示:如果想在頁(yè)面中創(chuàng)建多個(gè)地圖,你只需要添加新的地圖對(duì)象即可。

以下實(shí)例定義了四個(gè)地圖實(shí)例 (四個(gè)地圖使用了不同的地圖類(lèi)型):

實(shí)例

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);

嘗試一下 ?


加載地圖

窗口載入后通過(guò)執(zhí)行 initialize() 函數(shù)來(lái)初始化 Map 對(duì)象,這樣可以確保在頁(yè)面完全載入后再加載 Google 地圖:

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


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)