javascript - tarjeta - google maps api pago
Cómo rastrear cambios de eventos en un polígono con la API de Google Maps (1)
Actualmente estoy creando una función de "buscar un área" para un sitio en el que estamos trabajando. Un poco como el de Rightmove .
Tengo todo en funcionamiento, excepto la capacidad de rastrear cambios de eventos a un polígono (la configuración de nuevos puntos y la modificación de los existentes). Necesito poder publicar las coordenadas en el formulario para enviar.
Probé los documentos de Google Code para editar eventos . Y cada vez que lo pruebo, recibo un mensaje sobre que ''set_at'' no es posible o mi objeto no está definido.
Supongo que el bit que sé que está mal es que la variable thePolygon
no se pasa al nuevo google.maps.event.addListener(thePolygon, ''set_at'', function() { // grab paths for infoWindow grabPaths(thePath); });
Pero no sé por qué. Es una variable global. ¿O no?
Entonces, la pregunta es, ¿cómo puedo rastrear los cambios en el polígono para pasar las coordenadas actualizadas a mi formulario?
Toda ayuda es muy apreciada.
Aquí está el código que tengo actualmente:
var mapOptions = {
// options
};
var map = new google.maps.Map(document.getElementById(''map''), mapOptions);
var drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.POLYGON,
drawingControl: false,
polygonOptions: {
// drawing options
}
});
drawingManager.setMap(map);
google.maps.event.addListener(drawingManager, ''polygoncomplete'', function(polygon) {
// complete functions
});
google.maps.event.addListener(thePolygon, ''set_at'', function() {
// complete functions
});
google.maps.event.addListener(thePolygon, ''insert_at'', function() {
// complete functions
});
estos eventos están definidos para MVCArray, una polilínea no es un MVCArray. En su lugar, debe observar los eventos para la path
de la polilínea (que es un MVCArray). Además, no puede agregar un oyente a un objeto que aún no se haya creado. El polígono no está disponible antes de completar polygoncomplete
, por lo que debe agregar los oyentes dentro de la devolución de llamada de polígono completo:
google.maps.event.addListener(drawingManager,''polygoncomplete'',function(polygon) {
// complete functions
google.maps.event.addListener(thePath, ''set_at'', function() {
// complete functions
});
google.maps.event.addListener(thePath, ''insert_at'', function() {
// complete functions
});
});