2010-08-06 21 views
8

Estoy tratando de mostrar y eliminar polígonos en un mapa de Google, utilizando la v3 de la API. En mi JavaScript, ya tengo un MVCArray de algunos Lat-Longs personalizados.¿Cómo agrego y elimino polígonos en Google Maps v3?

Estoy tratando de averiguar cómo agregar estos polígonos y luego, en función de algún otro evento de JavaScript o acción del usuario, como hacer clic en un polígono (que se ha renderizado), ese polígono se eliminará.

¿Alguien puede ayudar? ¿Algún código o enlaces a ejemplos? Estoy luchando por encontrar algunos ejemplos. La mayoría de ellos por lo general van a algún código v2.

Respuesta

18

En los documentos de API, hay un par de ejemplos simples de adding a polygon to a map. Aquí está la función initialize() del ejemplo simple Bermuda Triangle con la adición de agregar un detector de eventos para eliminar el polígono cuando se hace clic.

function initialize() { 
    var myLatLng = new google.maps.LatLng(24.886436490787712, -70.2685546875); 
    var myOptions = { 
    zoom: 5, 
    center: myLatLng, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 

    var bermudaTriangle; 

    var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 

    var triangleCoords = [ 
     new google.maps.LatLng(25.774252, -80.190262), 
     new google.maps.LatLng(18.466465, -66.118292), 
     new google.maps.LatLng(32.321384, -64.75737), 
     new google.maps.LatLng(25.774252, -80.190262) 
    ]; 

    // Construct the polygon 
    bermudaTriangle = new google.maps.Polygon({ 
    paths: triangleCoords, 
    strokeColor: "#FF0000", 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: "#FF0000", 
    fillOpacity: 0.35 
    }); 

    bermudaTriangle.setMap(map); 

    // add an event listener 
    google.maps.event.addListener(bermudaTriangle, 'click', function() { 
     this.setMap(null); 
    }); 

} 
+3

AHH! así que el truco fue asegurarse de que google.maps.Polygon _instance_ sea global ... por lo que puede hacer referencia a la misma instancia para eliminarlo ... en lugar de tratar de encontrar la instancia en el mapa, etc. Gotcha :) –

Cuestiones relacionadas