2010-08-06 39 views
8

Sto cercando di mostrare e rimuovere poligoni su una mappa di Google, utilizzando la v3 dell'API. Nel mio JavaScript, ho già ottenuto un MVCArray di alcuni Lat-Long personalizzati.Come aggiungere e rimuovere poligoni su Google Maps v3?

Sto cercando di capire come aggiungere questi poligoni e quindi, in base ad altri eventi JavaScript o azioni dell'utente, come un clic su un poligono (che è stato renderizzato), quel poligono verrà rimosso.

Qualcuno può aiutare? Qualche codice o link ad esempi? Sto faticando a trovare alcuni esempi. La maggior parte di loro di solito va in qualche codice v2.

risposta

18

Nei documenti API, ci sono un paio di semplici esempi di adding a polygon to a map. Ecco la funzione initialize() del semplice esempio Bermuda Triangle con l'aggiunta dell'aggiunta di un listener di eventi per rimuovere il poligono quando si fa 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! quindi il trucco era assicurarsi che google.maps.Polygon _instance_ fosse globale .. quindi puoi fare riferimento alla stessa istanza per rimuoverlo .. invece di provare a trovare l'istanza sulla mappa, ecc. Gotcha :) –

Problemi correlati