événement


Aperçu des événements de la carte

JavaScript dans le navigateur est "piloté par les événements", ce qui signifie que JavaScript répond aux interactions en générant des événements et s'attend à ce que le programme "écoute" les activités de intérêt . Par exemple, dans un navigateur, les interactions entre la souris et le clavier de l'utilisateur peuvent créer des événements qui se propagent au sein du DOM. Les programmes intéressés par certains événements enregistrent des écouteurs d'événements JavaScript pour ces événements et exécutent du code lorsqu'ils reçoivent ces événements.

L'API Baidu Map possède son propre modèle d'événement. Les programmeurs peuvent écouter les événements personnalisés des objets de l'API cartographique. La méthode d'utilisation est similaire aux événements DOM. Mais veuillez noter que les événements Map API sont indépendants et différents des événements DOM standard.

Event Listening

La plupart des objets de l'API Baidu Map contiennent la méthode addEventListener, grâce à laquelle vous pouvez écouter les événements des objets. Par exemple, BMap.Map contient des événements click, dblclick et d'autres événements. Ces événements seront déclenchés dans des circonstances spécifiques, et la fonction d'écoute obtiendra le paramètre d'événement correspondant e. Par exemple, lorsque l'utilisateur clique sur la carte, le paramètre e contiendra le point de localisation géographique correspondant à la souris.

Pour les événements sur les objets Map API, veuillez vous référer à la documentation complète de référence de l'API.

La méthode addEventListener a deux paramètres : le nom de l'événement à écouter et la fonction à appeler lorsque l'événement est déclenché. Dans l'exemple ci-dessous, une boîte d'alerte apparaît à chaque fois que l'utilisateur clique sur la carte.

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("click", function(){    
 alert("您点击了地图。");    
});

En écoutant les événements, vous pouvez également capturer l'état après le déclenchement de l'événement. L'exemple suivant montre les informations de latitude et de longitude du centre de la carte une fois que l'utilisateur a fait glisser la carte.

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("dragend", function(){    
 var center = map.getCenter();    
 alert("地图中心点变更为:" + center.lng + ", " + center.lat);    
});

Paramètres d'événement et ceci

Dans le modèle d'événement DOM standard (DOM Level 2 Events), la fonction d'écoute obtiendra un objet d'événement e, dans lequel des informations sur l'événement peuvent être obtenues. En même temps, dans la fonction d'écoute, cela pointera vers l'élément DOM qui a déclenché l'événement. Le modèle d'événement de l'API Baidu Map est similaire à celui-ci. L'objet événement e est transmis dans la fonction d'écoute d'événement. Chaque paramètre e contient au moins le type d'événement (type) et l'objet qui a déclenché l'événement (cible). L'API garantit également que cela dans la fonction pointe vers l'objet API qui a déclenché (et était également lié à) l'événement.

Par exemple, obtenez les coordonnées de latitude et de longitude du clic grâce au paramètre e.

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("click", function(e){    
 alert(e.point.lng + ", " + e.point.lat);    
});

Ou obtenez le niveau zoomé de la carte grâce à cela.

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("zoomend", function(){    
 alert("地图缩放至:" + this.getZoom() + "级");    
});

Supprimer les événements d'écoute

Lorsque vous ne souhaitez plus écouter les événements, vous pouvez supprimer l'écoute des événements. Chaque objet API fournit removeEventListener pour supprimer les fonctions d'écoute d'événements.

Dans l'exemple ci-dessous, le premier clic de l'utilisateur sur la carte déclenchera la fonction d'écoute d'événements. La fonction d'écoute d'événements est supprimée à l'intérieur de la fonction, donc les clics suivants ne déclencheront pas la fonction d'écoute.

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
function showInfo(e){    
 alert(e.point.lng + ", " + e.point.lat);    
 map.removeEventListener("click", showInfo);    
}    
map.addEventListener("click", showInfo);