2011-11-19 12 views
8

Mi piace la nuova libreria di disegno per Google Maps v3.7, ma ho la sensazione la documentazione non è ancora completa e ho un paio di domande:Google Maps V3: disegno biblioteca

  1. solo Documentation menziona gli eventi overlaycompleted e {overlay}completed, ma ho anche found l'evento drawingmode_changed. C'è una lista di eventi da qualche parte?

  2. C'è un modo per ottenere un riferimento (oggetto) al poligono che stiamo disegnando oltre ad aspettare fino al termine del disegno e utilizzando un listener con overlaycompleted come nell'esempio precedente?

  3. C'è un modo per eliminare le vertici da un poligono, semplicemente facendo clic su di esse? Se no, come faresti a riguardo?

risposta

1

Dopo un sacco di ricerca qui è quello che mi si avvicinò con:

  1. ho potuto't trovare qualsiasi lista degli eventi oltre this.

  2. Non sono riuscito a trovarne.

  3. No, non è possibile, ma ho messo un request in e sono stato mostrato un piccolo trick che utilizza un tasto destro del mouse. Purtroppo questo non ha funzionato per me perché avevo bisogno di fare clic con il tasto sinistro.

Spero che questo aiuta gli altri

2

È possibile chiamare ogni caso di sovrapposizione per una completa come questa.

google.maps.event.addListener(drawingManager, 'polygoncomplete', function(e) { 
    //Your magic goes here 
}); 

overlaycomplete è come un evento globale per qualsiasi sovrapposizione, come marcatori, polilinee, cerchi e poligoni. ma se si desidera creare un listener per un overlay specifico, è sufficiente modificare overlay nell'overlay desiderato: polygoncomplete, polylinecomplete, circlecomplete.

So che questa domanda è vecchia, ma volevo comunque condividere la mia risposta.

+0

Questo dovrebbe essere contrassegnato come la risposta corretta – ADAM

1

Domanda molto vecchia, ma ho qualche aggiornamento su questo, forse aiuterà qualcuno.

  1. ci sono alcuni eventi aggiuntivi per forme modificabili che potrebbero essere utili: https://developers.google.com/maps/documentation/javascript/overlays#user_editable_shapes_events

  2. Inoltre non riusciva a trovare una soluzione per questo.

  3. Questo pezzo di codice mostra come rimuovere poligono/polilinea vertice sul tasto sinistro del mouse:

google.maps.event.addListener(drawingManager, 'overlaycomplete', function (e) { 
    if (e.type !== google.maps.drawing.OverlayType.MARKER) { 
     // Switch back to non-drawing mode after drawing a shape. 
     drawingManager.setDrawingMode(null); 

     // Add an click event listener for newly-drawn shape 
     // and remove polygon vertex if it was clicked 
     var newShape = e.overlay; 
     google.maps.event.addListener(newShape, 'click', function (e) { 
      if (e.vertex !== undefined) { 
       if (newShape.type === google.maps.drawing.OverlayType.POLYGON) { 
        var path = newShape.getPaths().getAt(e.path); 
        path.removeAt(e.vertex); 
        if (path.length < 3) { 
         newShape.setMap(null); 
        } 
       } 
       if (newShape.type === google.maps.drawing.OverlayType.POLYLINE) { 
        var path = newShape.getPath(); 
        path.removeAt(e.vertex); 
        if (path.length < 2) { 
         newShape.setMap(null); 
        } 
       } 
      } 
     }); 
    } 
});