2011-11-19 33 views
8

Me encanta la nueva biblioteca de dibujo para Google Maps v3.7, pero tengo la sensación de la documentación todavía no es completa y tengo un par de preguntas:mapas de Google V3: dibujo biblioteca

  1. única Documentation menciona los eventos overlaycompleted y {overlay}completed, pero también he found el evento drawingmode_changed. ¿Hay una lista de eventos en algún lado?

  2. ¿Hay alguna manera de obtener una referencia (objeto) al polígono que estamos dibujando además de esperar hasta que terminemos de dibujarlo y usar un oyente con overlaycompleted como se hace en el ejemplo anterior?

  3. ¿Hay alguna manera de eliminar vértebras de un polígono, simplemente haciendo clic en ellas? Si no, ¿cómo lo harías?

Respuesta

1

Después de un montón de búsqueda aquí es lo que ocurrió:

  1. I could't encontrar ninguna lista de eventos, además de this.

  2. No pude encontrar ninguno.

  3. No, no es posible, pero he puesto un request in y me han mostrado un pequeño trick que usa un clic derecho. Lamentablemente, esto no funcionó para mí, ya que necesitaba hacer clic izquierdo.

espero que esto ayuda a otros

2

Puede llamar a cualquier evento de superposición en completa como esta.

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

overlaycomplete es como un evento global para cualquier superposición, tales como marcadores, polilíneas, círculos y polígonos. pero si desea crear un oyente para una superposición específica, simplemente cambie overlay a su superposición deseada: polygoncomplete, polylinecomplete, circlecomplete.

Sé que esta pregunta es antigua, pero quería compartir mi respuesta de todos modos.

+0

Esto debe ser marcada como la respuesta correcta – ADAM

1

Pregunta muy antigua, pero tengo alguna actualización sobre esto, tal vez ayude a alguien.

  1. hay algunos eventos adicionales para formas editables que podrían ser útiles: https://developers.google.com/maps/documentation/javascript/overlays#user_editable_shapes_events

  2. Además, no han encontrado una solución para esto.

  3. Esta pieza de código se muestra cómo eliminar vértice del polígono/polilínea en el clic izquierdo:

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); 
        } 
       } 
      } 
     }); 
    } 
});