【百度地图API】如何判断点击的是地图还是覆盖物?
生活随笔
收集整理的這篇文章主要介紹了
【百度地图API】如何判断点击的是地图还是覆盖物?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:【百度地圖API】如何判斷點擊的是地圖還是覆蓋物?
摘要:很多API愛好者問我,為什么我點擊的是marker,而map也會響應該事件呢?怎樣才能判斷,我點擊的是標注,還是地圖呢?下面一起來看看。
?
------------------------------------------------------------
先看看地圖有哪些事件,查看官網類參考,翻到事件:
?
大家看到這里的參數了麼?
其實,在點擊物體時,通過這些參數就能夠判斷所點擊的物體是什么了。
?
用marker舉例:
先創建一個marker
//覆蓋物Markervar pmk = new BMap.Point(116.249472,39.946583);var mk = new BMap.Marker(pmk);map.addOverlay(mk);?
?
然后對地圖添加點擊事件,如果判斷出來是覆蓋物,就彈出相應的對話框。
map.addEventListener("click",function(e){if(e.overlay){alert('你點擊的是覆蓋物:'+e.overlay.toString()); }else{alert('你點擊的是地圖');}});?
?
?
?
添加一堆覆蓋物,然后給每個覆蓋物寫點擊事件。
?
?
比如我點擊了多邊形,就會彈出這個。
?
?
?
全部源代碼:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>點擊事件</title> <script type="text/javascript" src="http://api.map.baidu.com/api?key=v=1.3"></script> </head><body><!--百度地圖容器--><div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div> </body> <script type="text/javascript">var map = new BMap.Map("dituContent");var point = new BMap.Point(116.331398,39.897445);map.centerAndZoom(point,12);map.enableScrollWheelZoom();map.addEventListener("click",function(e){if(e.overlay){alert('你點擊的是覆蓋物:'+e.overlay.toString()); }else{alert('你點擊的是地圖');}});//覆蓋物Markervar pmk = new BMap.Point(116.249472,39.946583);var mk = new BMap.Marker(pmk);map.addOverlay(mk);//覆蓋物Labelvar plb = new BMap.Point(116.408149,39.958087);var lb = new BMap.Label('我是覆蓋物Label',{point:plb});map.addOverlay(lb);//覆蓋物Polylinevar pl = new BMap.Polyline([new BMap.Point(116.250047,39.919583),new BMap.Point(116.441494,39.919583)],{strokeWeight:10})map.addOverlay(pl);//覆蓋物Polygonvar pg = new BMap.Polygon([new BMap.Point(116.248323,39.893016),new BMap.Point(116.440344,39.893016),new BMap.Point(116.440344,39.811036),new BMap.Point(116.248323,39.811036)]);map.addOverlay(pg);</script> </html>總結
以上是生活随笔為你收集整理的【百度地图API】如何判断点击的是地图还是覆盖物?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置UIAutomator中的ANT环境
- 下一篇: YMP框架学习笔记(二)------基于