Google 地圖疊加層實(shí)例講解
Google 地圖 - 疊加層
疊加層是地圖上綁定到經(jīng)度/緯度坐標(biāo)的對(duì)象,會(huì)隨您拖動(dòng)或縮放地圖而移動(dòng)。
Google 地圖 API 有如下幾種疊加層:
1.地圖上的點(diǎn)使用標(biāo)記來(lái)顯示,通常顯示自定義圖標(biāo)。標(biāo)記是 GMarker 類(lèi)型的對(duì)象,并且可以利用 GIcon 類(lèi)型的對(duì)象來(lái)自定義圖標(biāo)。
2.地圖上的線(xiàn)使用折線(xiàn)(表示點(diǎn)的集合)來(lái)顯示。線(xiàn)是類(lèi)型為 GPolyline 的對(duì)象。
3.地圖上的區(qū)域顯示為多邊形(如果是任意形狀的區(qū)域)或底面疊加層(如果是矩形區(qū)域)。多邊形類(lèi)似于閉合的折線(xiàn),因此可以是任何形狀。地面疊加層通常用于地圖上與圖塊有直接或間接關(guān)聯(lián)的區(qū)域。
4.地圖本身使用圖塊疊加層顯示。如果您有自己的系列圖塊,可以使用 GTileLayerOverlay 類(lèi)來(lái)改變地圖上已有的圖塊,甚至可以使用 GMapType 來(lái)創(chuàng)建您自己的地圖類(lèi)型。
5.信息窗口也是一種特殊的疊加層。但是請(qǐng)注意,信息窗口會(huì)自動(dòng)添加到地圖中,并且地圖只能添加一個(gè)類(lèi)型為 GInfoWindow 的對(duì)象。
Google 地圖 - 添加標(biāo)記
記標(biāo)識(shí)地圖上的點(diǎn)。默認(rèn)情況下,它們使用 G_DEFAULT_ICON(您也可以指定自定義圖標(biāo))。GMarker 構(gòu)造函數(shù)將 GLatLng 和 GMarkerOptions(可選)對(duì)象作為參數(shù)。
標(biāo)記設(shè)計(jì)為可交互。例如,默認(rèn)情況下它們接收 "click" 事件,常用于在事件偵聽(tīng)器中打開(kāi)信息窗口。
通過(guò) setMap() 方法在地圖上添加標(biāo)記:
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
實(shí)例效果圖:

Google 地圖 - 可拖動(dòng)的標(biāo)記
以下實(shí)例將介紹如何使用 animation 屬性來(lái)拖動(dòng)標(biāo)記:
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);
var marker;
function initialize()
{
var mapProp = {
center:myCenter,
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.BOUNCE
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
Google 地圖 - 圖標(biāo)
標(biāo)記可以用自定義的新圖標(biāo)來(lái)顯示,以替代默認(rèn)圖標(biāo):
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker=new google.maps.Marker({
position:myCenter,
icon:'pinkball.png'
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
Google 地圖 - 折線(xiàn)
GPolyline 對(duì)象可在地圖上創(chuàng)建線(xiàn)性疊加層。GPolyline 包括一系列點(diǎn),并創(chuàng)建一系列有序連接這些點(diǎn)的線(xiàn)段。
折線(xiàn)支持以下屬性:
path - 指定了多個(gè)直線(xiàn)的緯度/經(jīng)度坐標(biāo)
strokeColor - 指定直線(xiàn)的十六進(jìn)制顏色值(格式: "#FFFFFF")
strokeOpacity - 指定直線(xiàn)的透明度(該值為 0.0 到 1.0)
strokeWeight - 定義線(xiàn)的寬度,以像素為單位。
editable - 定義用戶(hù)是否可編輯直線(xiàn)(true/false)
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var x=new google.maps.LatLng(52.395715,4.888916);
var stavanger=new google.maps.LatLng(58.983991,5.734863);
var amsterdam=new google.maps.LatLng(52.395715,4.888916);
var london=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
center:x,
zoom:4,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var myTrip=[stavanger,amsterdam,london];
var flightPath=new google.maps.Polyline({
path:myTrip,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2
});
flightPath.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
實(shí)例效果圖:

Google 地圖 - 多邊形
GPolygon 對(duì)象類(lèi)似于 GPolyline 對(duì)象,因?yàn)樗鼈兌及ㄒ幌盗杏行虻狞c(diǎn)。但是,多邊形不像折線(xiàn)一樣有兩個(gè)端點(diǎn),而是設(shè)計(jì)為定義形成閉環(huán)的區(qū)域。
和折線(xiàn)一樣,您可以自定義多邊形邊(線(xiàn))的顏色、粗細(xì)和透明度,以及封閉的填充區(qū)域的顏色和透明度。顏色應(yīng)是十六進(jìn)制數(shù)字 HTML 樣式。
多邊形支持以下屬性:
path - 指定多個(gè)直線(xiàn)緯度的坐標(biāo) (第一個(gè)和最后一個(gè)坐標(biāo)是相等的)
strokeColor - 指定直線(xiàn)的十六進(jìn)制顏色值(格式: "#FFFFFF")
strokeOpacity -指定直線(xiàn)的透明度(該值為 0.0 到 1.0)
strokeWeight - 定義線(xiàn)的寬度,以像素為單位。
fillColor - 指定閉合區(qū)域的十六進(jìn)制顏色值 (格式: "#FFFFFF")
fillOpacity - 指定填充顏色的透明度 (該值為 0.0 到 1.0)
editable - 定義用戶(hù)是否可編輯直線(xiàn)(true/false)
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var x=new google.maps.LatLng(52.395715,4.888916);
var stavanger=new google.maps.LatLng(58.983991,5.734863);
var amsterdam=new google.maps.LatLng(52.395715,4.888916);
var london=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
center:x,
zoom:4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var myTrip=[stavanger,amsterdam,london,stavanger];
var flightPath=new google.maps.Polygon({
path:myTrip,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2,
fillColor:"#0000FF",
fillOpacity:0.4
});
flightPath.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
實(shí)例效果圖:

Google 地圖 - 圓
圓支持以下屬性:
center - 指定圓的中心點(diǎn)參數(shù) google.maps.LatLng
radius - 指定圓的半徑,以米為單位
strokeColor - 指定弧線(xiàn)的十六進(jìn)制顏色值(格式: "#FFFFFF")
strokeOpacity - 指定弧線(xiàn)的透明度(該值為 0.0 到 1.0)
strokeWeight -定義線(xiàn)的寬度,以像素為單位。
fillColor - 指定圓的十六進(jìn)制顏色值填充值 (格式: "#FFFFFF")
fillOpacity - 指定填充顏色的透明度 (該值為 0.0 到 1.0)
定義用戶(hù)是否可編輯直線(xiàn)(true/false)
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var amsterdam=new google.maps.LatLng(52.395715,4.888916);
function initialize()
{
var mapProp = {
center:amsterdam,
zoom:7,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var myCity = new google.maps.Circle({
center:amsterdam,
radius:20000,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2,
fillColor:"#0000FF",
fillOpacity:0.4
});
myCity.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
實(shí)例效果圖:

Google 地圖 - 信息窗口
在一個(gè)標(biāo)記上顯示一個(gè)文本信息窗口:
實(shí)例
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>
<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
var infowindow = new google.maps.InfoWindow({
content:"Hello World!"
});
infowindow.open(map,marker);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
實(shí)例效果圖:

以上就是對(duì)Google 地圖疊加層的資料整理,后續(xù)繼續(xù)補(bǔ)充,謝謝大家對(duì)本站的支持!
- Google 地圖API資料整理及詳細(xì)介紹
- Google 地圖類(lèi)型詳解及示例代碼
- Google 地圖控件集詳解及實(shí)例代碼
- Google 地圖事件實(shí)例講解
- Google 地圖獲取API Key詳細(xì)教程
- 百度地圖經(jīng)緯度轉(zhuǎn)換到騰訊地圖/Google 對(duì)應(yīng)的經(jīng)緯度
- js+html5獲取用戶(hù)地理位置信息并在Google地圖上顯示的方法
- 在Google 地圖上實(shí)現(xiàn)做的標(biāo)記相連接
- Google Maps API地圖應(yīng)用示例分享
- Google 地圖API Map()構(gòu)造器詳解
相關(guān)文章
Intl對(duì)象DateTimeFormat?ListFormat?RelativeTimeFormat使用講解
這篇文章主要為大家介紹了Intl對(duì)象DateTimeFormat?ListFormat?RelativeTimeFormat使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
mini?webpack打包基礎(chǔ)解決包緩存和環(huán)依賴(lài)
這篇文章主要為大家介紹了mini?webpack打包基礎(chǔ)解決包緩存和環(huán)依賴(lài)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
詳解requestAnimationFrame和setInterval該如何選擇
這篇文章主要為大家介紹了requestAnimationFrame和setInterval該如何選擇示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-03-03
前端對(duì)接WebSocket與心跳重連實(shí)現(xiàn)
這篇文章主要為大家介紹了前端對(duì)接WebSocket與心跳重連實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
微信小程序使用navigateTo數(shù)據(jù)傳遞的實(shí)例
這篇文章主要介紹了微信小程序使用navigateTo數(shù)據(jù)傳遞的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09

