我在google地图多边形中注册了一个带有doubleclick事件的eventListener,但是如果我将一个调试器放在将在dblclick上执行的de函数中,我就无法捕获点击的多边形,对象' newPolygon'未定义。
问题是我有一组多边形,我需要知道点击了什么
var newPolygon = drawPolygon(map, p.cordenadas, true, false, false, "#FF0000", 0.35, "#FF0000", 0.8, 2);
var listener = google.maps.event.addListener(newPolygon, 'dblclick', function (e) {
//newPolygon = undefined
debugger;
});
drawPolygon函数:
function drawPolygon(map, paths, clickable, draggable, editable, fillColor, fillOpacity, strokeColor, strokeOpacity, strokeWeight)
{
polygon = new google.maps.Polygon({
paths: paths,
strokeColor: strokeColor,
strokeOpacity: strokeOpacity,
strokeWeight: strokeWeight,
fillColor: fillColor,
fillOpacity: fillOpacity,
editable: editable,
clickable: clickable,
draggable: draggable,
map: map,
});
var firstCoord = paths[0];
map.setCenter(firstCoord);
return polygon;
}
答案 0 :(得分:0)
点击侦听器功能中对多边形的引用为/proc/kallsyms
。
init_task
代码段
this
var listener = google.maps.event.addListener(newPolygon, 'dblclick', function (e) {
for (var i=0; i<this.getPaths().getAt(0).getLength();i++) {
console.log(this.getPaths().getAt(0).getAt(i).toUrlValue());
}
debugger;
});
var geocoder;
var map;
function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var triangleCoords = [{
lat: 25.774,
lng: -80.190
}, {
lat: 18.466,
lng: -66.118
}, {
lat: 32.321,
lng: -64.757
}, {
lat: 25.774,
lng: -80.190
}];
var newPolygon = drawPolygon(map, triangleCoords, true, false, false, "#FF0000", 0.35, "#FF0000", 0.8, 2);
var listener = google.maps.event.addListener(newPolygon, 'dblclick', function(e) {
for (var i = 0; i < this.getPaths().getAt(0).getLength(); i++) {
console.log(this.getPaths().getAt(0).getAt(i).toUrlValue());
}
debugger;
});
}
google.maps.event.addDomListener(window, "load", initialize);
function drawPolygon(map, paths, clickable, draggable, editable, fillColor, fillOpacity, strokeColor, strokeOpacity, strokeWeight) {
polygon = new google.maps.Polygon({
paths: paths,
strokeColor: strokeColor,
strokeOpacity: strokeOpacity,
strokeWeight: strokeWeight,
fillColor: fillColor,
fillOpacity: fillOpacity,
editable: editable,
clickable: clickable,
draggable: draggable,
map: map,
});
var firstCoord = paths[0];
map.setCenter(firstCoord);
return polygon;
}