1. 程式人生 > >百度地圖點選觸發事件介紹

百度地圖點選觸發事件介紹

 談一下給標註新增一個事件,事件方法與Map事件機制相同。

 監聽標註事件

監聽標註事件是呼叫marker.addEventListener的方法,現在我們先看到核心類裡面的事件。

這個事件是marker中的事件,但是marker事件是可以應用於全域性的,然後我們在所有的地圖上點選,都可以使用這個事件來獲取。


 然後,我們看到的事件,也就是marker中的事件,從網站的網頁中類參考的覆蓋物類我們可以知道,當要使用“marker.addEventListener”這個程式碼之前先要“new BMap.marker”也就是我們需要要先new,才能使用這個類。

  然後,我們看一下marker下面的方法和事件。我們可以看到它支援很多事件。比如click就是點選標註圖示後會觸發此事件,ablclick就是雙擊標註圖示後會觸發此事件,mousedown就是滑鼠在標註圖示後會觸發此事件,和剛剛看到的事件出發機制基本都是一樣的。

  然後我們看到addEventListener的新增事件的一個方法。我們可以找到addEventListener是新增事件監聽函式,我們在使用的時候第一個是事件的名稱,比如說要使用click,就要把click傳入進來,然後後面就是一個回撥的函式,這個函式是我們觸發這個事件之後,我們需要做的一個操作。

  比如說“marker.addEventListener("click", function(){   alert("您點選了標註")   })”這個監聽標註事件的示例,我們可以看到在例項化marker類之後,通過maker.addEventListener這個事件,新增一個click然後後面有一個回撥的函式“function”這個函式是我們觸發這個事件,然後要操作的,比如說後面的點選了標註。


比如說現在來演示,輸入程式碼之後。


我們可以看到點選後,會彈出一個標註,也就是這就添加了一個事件。


現在替換一下,輸入程式碼給標註新增雙擊事件。


我們可以看到,這個是沒有顯示的,當我們雙擊之後才會顯示出來。

所以,這樣我們就知道點選事件也是非常簡單的,第一步就是先例項化marker,然後呼叫addEventListener的方法,然後新增一個點選事件,那麼這裡就使用click,然後click後面就緊跟著觸發事件之後的一個執行的函式,函式就是我們要執行的一個內容。

  我們還可以替換一個雙擊事件,這個事件點選的時候是不會出來的,要雙擊後才會出來,這個事件是通過marker的方法來觸發了這個事件,當然在這裡我們是給標註新增事件。

相關推薦

地圖觸發事件介紹

 談一下給標註新增一個事件,事件方法與Map事件機制相同。 監聽標註事件監聽標註事件是呼叫marker.addEventListener的方法,現在我們先看到核心類裡面的事件。這個事件是marker中的事件,但是marker事件是可以應用於全域性的,然後我們在所有的地圖上點選

地圖-事件問題

地圖上marker或其他物件的點選事件都會傳到map物件,所以很多人在使用API時發現我綁定了map和一個marker的click事件,發現點選marker的時候,不僅marker的click事件會被觸發,map的click事件也會被觸發。API會將事件向上傳遞,實際上點選

android實現地圖覆蓋物(MyLocationOverlay)彈出自定義彈出視窗

一:增加覆蓋物MyLocationOverlay          MyLocationOverlay在普通的Overlay基礎上進行了封裝,可以更好的進行一個定位處理,例如方向。        要想點選MyLocationOverlay觸發一個事件,就需要繼承MyLoc

iOS地圖BMKPointAnnotation後把該座標點放到螢幕任意位置

由於百度地圖設定螢幕中心點只有一個方法:/// 當前地圖的中心點,改變該值時,地圖的比例尺級別不會發生變化@property (nonatomic) CLLocationCoordinate2D centerCoordinate;但是我們有時可能有需求放到距離任意一點,比如點

地圖 和標註拖拽後的經緯度

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html&

地圖tilesloaded只觸發一次

func view target int .com loaded dde rem http 方法轉自百度地圖論壇@ hx863975383:http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=82409

地圖---亮城市

效果圖 程式碼如下 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

地圖聚合和動畫一起使用

問題:不修改原始碼的情況下,點聚合和點動畫一起使用的時候,會發現只要移動地圖後,點動畫就會消失 解決方法: 修改點聚合原始碼  =>  BMapLib_MarkerClusterer.js中的 _createClusters 方法 MarkerClust

iOS 地圖聚合在房地產專案中的應用

1.公司的專案是面向房地產的,包含新房(全國多個分公司),存租房(與建行建方的合作)專案,所以地圖與看房相結合比較多,之前為了進度,地圖這一塊的業務都是H5實現,現在穩定下來後,H5的體驗度不是很高,所以地圖這一塊全部換成原生。這篇文章也是做個探索和總結,以便

限制按鈕連續觸發事件時間間隔

我這裡用的layui所以以layui為例,個人可用。 var time = null; var flag = true;//按鈕是否可用true 可用,false 不可用 //捕獲普通按鈕事件 $("bod

移動端點擊穿與廣告統計

利用移動端擊穿的原理進行百度廣告點選統計,實施很簡單,在百度廣告上方放置一透明層,當用戶點選時傳送統計日誌, 移動端擊穿的原因,網上文章很多,大意是click事件會有相對於touch事件300毫秒的延遲觸發(因需要判斷雙擊還是單擊), 可以利用這一點當touch事件觸發時隱藏浮層,click

React Native之Android 和 iOS在觸發事件時的相容性處理

最近,我在專案中遇到了一個bug,bug的情況描述大致如下: 當點選按鈕A時,彈出彈層,彈層有一個按鈕B,邏輯是:當點選按鈕B時,首先彈層消失,緊接著開始調取C介面流程。在Android上正確顯示,但是iOS中只是彈層消失,並沒有調取C介面事件。 對於這種情況,我之前開發過

地圖聚合自定義marker

效果如圖自定義ClusterItem類 /** * 每個Marker點,包含Marker點座標以及圖示 */ public class MyClusterItem implements ClusterItem { private final LatLng

vue學習六 元素觸發事件(無v-for父子關係)

1.在學習vue專案中,需使用如下需求:點選按鈕後,遮罩層顯示出來。本來若有v-for父子關係的,可以使用index進行迴圈遍歷實現,而無關聯的元素,則需要繫結類class來實現。 2.對點選元素繫結方法 <img src="../../stati

地圖聚合MarkerClusterer,效能優化

百度的點聚合演算法 是基於方格和距離的聚合演算法,即開始的時候地圖上沒有任何已知的聚合點,然後遍歷所有的點,去計算點的外包正方形(由gridSize指定),若此點的外包正方形與現有的聚合點的外包正方形不相交,則新建聚合點,若相交就把該點加到該聚合點,效果如下圖,為了便於

地圖聚合的聚合樣式修改

百度地圖提供點聚合的功能,但是聚合之後的樣式不一定會滿足我們的需要: 點聚合會用到百度自己寫的js檔案,分別是MarkerClusterer.js,以及TextIconOverlay.js,其中MarkerClusterer.js是實現點的聚合,TextIconOverla

Android地圖聚合功能

在百度地圖的開發說明中有描述到點聚合功能: 點聚合功能 自v3.6.0版本起,新增點聚合功能,可通過縮小地圖層級,將定義範圍內的多個標註點,聚合顯示成一個標註點,並在MarkerClusterDemo中開放原始碼,方便開發者自行修改。   // 初始化點聚合管理

umEditor 圖片上傳問題

點選 umEditor 圖片按鈕沒有反應,原因是路徑問題。 window.UMEDITOR_HOME_URL = "/lyh/resources/umEditor/"; 上面

細讀地圖聚合原始碼(上)

之前在專案中需要用到百度地圖的點聚合,看了百度提供的demo之後,稍微讀了一些原始碼就能達到需求了,所以並未深入解讀原始碼。 最近有空就把百度實現點聚合的原始碼從裡到外仔細研究了一遍受益良多,在此分享一下。 為了方便研究我把百度demo中點聚合相關的類抽出來,新建了個工程,

input圓形多按鈕狀態改變(checked)與觸發事件的優先順序

在1.5之後 click事件先於屬性改變觸發,因為其在執行 click() 方法的時候實際上是走了 trigger ,jquery先走了內部事件系統找到了回撥函式執行,再執行的瀏覽器原生的 click()方法來觸發checkbox屬性變化。(原來如此)