百度地图添加 标示——默认、自定义(小狐狸)标示
一、簡介
所有疊加或覆蓋到地圖的內(nèi)容,我們統(tǒng)稱為地圖覆蓋物。如標(biāo)注、矢量圖形元素(包括:折線和多邊形和圓)、信息窗口等。覆蓋物擁有自己的地理坐標(biāo),當(dāng)您拖動或縮放地圖時,它們會相應(yīng)的移動。
地圖API提供了如下幾種覆蓋物:
Marker:標(biāo)注表示地圖上的點(diǎn),可自定義標(biāo)注的圖標(biāo)。
Label:表示地圖上的文本標(biāo)注,您可以自定義標(biāo)注的文本內(nèi)容。
可以使用map.addOverlay方法向地圖添加覆蓋物,使用map.removeOverlay方法移除覆蓋物,注意此方法不適用于InfoWindow。
二、添加簡單標(biāo)注
標(biāo)注表示地圖上的點(diǎn)。API提供了默認(rèn)圖標(biāo)樣式,您也可以通過Icon類來指定自定義圖標(biāo)。Marker的構(gòu)造函數(shù)的參數(shù)為Point和 MarkerOptions(可選)。注意:當(dāng)您使用自定義圖標(biāo)時,標(biāo)注的地理坐標(biāo)點(diǎn)將位于標(biāo)注所用圖標(biāo)的中心位置,您可通過Icon的offset屬性 修改標(biāo)定位置。
下面的示例向地圖中心點(diǎn)添加了一個標(biāo)注,并使用默認(rèn)的標(biāo)注樣式。
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
var marker = new BMap.Marker(point); // 創(chuàng)建標(biāo)注
map.addOverlay(marker); // 將標(biāo)注添加到地圖中
可以通過設(shè)置標(biāo)注是跳動的
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳動的動畫
三、自定義標(biāo)注圖標(biāo)
通過Icon類可實(shí)現(xiàn)自定義標(biāo)注的圖標(biāo),下面示例通過參數(shù)MarkerOptions的icon屬性進(jìn)行設(shè)置,您也可以使用marker.setIcon()方法。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微軟雅黑";}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密鑰"></script>
<title>設(shè)置點(diǎn)的新圖標(biāo)</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// 百度地圖API功能
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
//創(chuàng)建小狐貍
var pt = new BMap.Point(116.417, 39.909);
var myIcon = new BMap.Icon("http://developer.baidu.com/map/jsdemo/img/fox.gif", new BMap.Size(300,157)); //定義自己的標(biāo)注
var marker2 = new BMap.Marker(pt,{icon:myIcon}); // 創(chuàng)建標(biāo)注
map.addOverlay(marker2); // 將標(biāo)注添加到地圖中
</script>
四、可托拽的標(biāo)注
marker的enableDragging和disableDragging方法可用來開啟和關(guān)閉標(biāo)注的拖拽功能。默認(rèn)情況下標(biāo)注不支持拖拽,您需要調(diào) 用marker.enableDragging()方法來開啟拖拽功能。在標(biāo)注開啟拖拽功能后,您可以監(jiān)聽標(biāo)注的dragend事件來捕獲拖拽后標(biāo)注的最 新位置。
marker.enableDragging(); //設(shè)置其可拖拽
marker.addEventListener("dragend", function(e){
alert("當(dāng)前位置:" + e.point.lng + ", " + e.point.lat);
})
五、內(nèi)存釋放
在API 1.0版本中,如果您需要在地圖中反復(fù)添加大量的標(biāo)注,這可能會占用較多的內(nèi)存資源。如果您的標(biāo)注在移除后不再使用,可調(diào)用 Overlay.dispose()方法來釋放內(nèi)存。注意在1.0版本中,調(diào)用此方法后標(biāo)注將不能再次添加到地圖上。自1.1版本開始,您不在需要使用此 方法來釋放內(nèi)存資源,API會自動幫助您完成此工作。
例如,您可以在標(biāo)注被移除后調(diào)用此方法:
map.removeOverlay(marker); marker.dispose(); // 1.1 版本不需要這樣調(diào)用
ps:最基礎(chǔ)知識可看:http://www.cnblogs.com/0201zcr/p/4679444.html ,感謝您的耐心閱讀!
總結(jié)
以上是生活随笔為你收集整理的百度地图添加 标示——默认、自定义(小狐狸)标示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很管用的治咳嗽秘方
- 下一篇: 【原创】字典攻击教务处(BurpSuit