Cómo determinar si hizo clic en un mapa o en una superposición
Primero, echemos un vistazo a qué eventos tiene el mapa, consulte la referencia de clases del sitio web oficial y vaya a eventos:
¿Ves los parámetros aquí?
De hecho, cuando haces clic en un objeto, puedes usar estos parámetros para determinar en qué objeto hiciste clic. (pmk);
map.addOverlay(mk);?
Luego agregue un evento de clic al mapa. Si se determina que es una superposición, aparecerá el cuadro de diálogo correspondiente. arriba.
map.addEventListener("click", function(e){
if(e.overlay){
alert('Estás haciendo clic en un superposición:' e.overlay.toString()); ?
}else{
alerta('Hiciste clic en el mapa'); /p>
}); ? Agregue una serie de superposiciones y escriba un evento de clic para cada superposición.
Por ejemplo, si hago clic en el polígono, aparece lo siguiente.
Todo el código fuente:
lt;!DOCTYPE htmlgt;
lt;htmlgt;
lt;headgt;
lt;meta /api?key=v=1.3"gt;lt;/scriptgt;
lt;/headgt;
lt;bodygt;lt;!-- Contenedor de mapas Baidu--gt; div style="ancho: 697px; alto: 550px; borde: #ccc solid 1px;" id="dituContent"gt; /bodygt
lt;script type="text/javascript"gt;
var map = nuevo BMap.map("dituContent");
var. punto = nuevo BMap.Point(116.331398, 39.897445);
map.centerAndZoom(punto, 12);
map.enableScrollWheelZoom(); addEventListener("click", function(e){
if(e.overlay){
alert('Hiciste clic en la superposición:' e.overlay. toString()); ?
}else{
alert('Hiciste clic en el mapa');
//Sobrescribir marca
var pmk = new BMap.Point(116.249472, 39.946583
var mk = new BMap.Marker(pmk) ;
var pg = nuevo BMap.Polygon([nuevo BMap.Point(116.248323, 39.893016), nuevo BMap.Point(116.440344, 39.893016), nuevo BMap.39.811036), nuevo BMap.Point(116.248323, 39.811036)]);
map.addOverlay(pg);
lt;/scriptgt;
lt;/htmlgt;