Red de conocimiento informático - Material del sitio web - Cómo determinar si hizo clic en un mapa o en una superposición

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;