Google Maps基礎(chǔ)及實(shí)例解析
Google Maps 基礎(chǔ)
創(chuàng)建一個(gè)簡(jiǎn)單的 Google 地圖
現(xiàn)在讓我們創(chuàng)建一個(gè)簡(jiǎn)單的 Google 地圖。
以下是顯示了英國(guó)倫敦的 Google 地圖:
實(shí)例
<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>
實(shí)例效果圖(可以拷貝直接運(yùn)行,當(dāng)然你要能夠訪問(wèn)Google)
實(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"></script>
將google生成的 API key 放置于 key 參數(shù)中(key=YOUR_API_KEY)。
The sensor 參數(shù)是必須的,該參數(shù)用于指明應(yīng)用程序是否使用一個(gè)傳感器 (類(lèi)似 GPS 導(dǎo)航) 來(lái)定位用戶(hù)的位置。參數(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"></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í)例
<!DOCTYPE html> <html> <head> <script> function initialize() { var mapProp = { center: new google.maps.LatLng(51.508742,-0.120850), zoom:7, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("googleMap"),mapProp); } function loadScript() { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false&callback=initialize"; document.body.appendChild(script); } window.onload = loadScript; </script> </head> <body> <div id="googleMap" style="width:500px;height:500px;"></div> </body> </html>
定義地圖屬性
在初始化地圖前,我們需要先創(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í)例
<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:9, mapTypeId: google.maps.MapTypeId.ROADMAP }; var mapProp2 = { center: new google.maps.LatLng(51.508742,-0.120850), zoom:9, mapTypeId: google.maps.MapTypeId.SATELLITE }; var mapProp3 = { center: new google.maps.LatLng(51.508742,-0.120850), zoom:9, mapTypeId: google.maps.MapTypeId.HYBRID }; var mapProp4 = { center: new google.maps.LatLng(51.508742,-0.120850), zoom:9, mapTypeId: google.maps.MapTypeId.TERRAIN }; 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); } google.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="googleMap" style="width:400px;height:300px;"></div> <br> <div id="googleMap2" style="width:400px;height:300px;"></div> <br> <div id="googleMap3" style="width:400px;height:300px;"></div> <br> <div id="googleMap4" style="width:400px;height:300px;"></div> </body> </html>
加載地圖
窗口載入后通過(guò)執(zhí)行 initialize() 函數(shù)來(lái)初始化 Map 對(duì)象,這樣可以確保在頁(yè)面完全載入后再加載 Google 地圖:
google.maps.event.addDomListener(window, 'load', initialize);
以上就是對(duì)Google 地圖基礎(chǔ)資料的整理,后續(xù)繼續(xù)補(bǔ)充,謝謝大家對(duì)本站的支持!
相關(guān)文章
JavaScript loader原理簡(jiǎn)單總結(jié)示例解析
這篇文章主要為大家介紹了JavaScript loader原理簡(jiǎn)單總結(jié)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08tree?shaking對(duì)打包體積優(yōu)化及作用
這篇文章主要為大家介紹了tree?shaking對(duì)打包體積優(yōu)化及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07JavaScript單例模式能不能去實(shí)例只留單原理解析
這篇文章主要為大家介紹了JavaScript單例模式能不能去實(shí)例只留單原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12利用前端HTML+CSS+JS開(kāi)發(fā)簡(jiǎn)單的TODOLIST功能(記事本)
這篇文章主要介紹了用HTML+CSS+JS做出簡(jiǎn)單的TODOLIST(記事本)項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-04-04微信小程序 合法域名校驗(yàn)出錯(cuò)詳解及解決辦法
這篇文章主要介紹了微信小程序 合法域名校驗(yàn)出錯(cuò)詳解及解決辦法的相關(guān)資料,需要的朋友可以參考下2017-03-03微信小程序開(kāi)發(fā)入門(mén)基礎(chǔ)教程
這篇文章主要介紹了微信小程序開(kāi)發(fā)入門(mén)基礎(chǔ)教程的相關(guān)資料,需要的朋友可以參考下2017-04-04JavaScript實(shí)現(xiàn)隊(duì)列結(jié)構(gòu)過(guò)程
這篇文章主要介紹了JavaScript實(shí)現(xiàn)隊(duì)列結(jié)構(gòu)的過(guò)程,隊(duì)列即Queue,它是受限的線性表,先進(jìn)先出,受限之處在于它只允許在表的前端進(jìn)行刪除操作,下面我們一起進(jìn)入文章學(xué)習(xí)更加詳細(xì)內(nèi)容,需要的朋友也可以參考一下2021-12-12微信小程序?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)傳值的方法
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)傳值的方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10