如何以角度检索所有谷歌地图矩形



当我启动映射时,我有这个侦听器:

google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
console.log('value of e');
console.log(e);
polyArray.push(e);
if (e.type != google.maps.drawing.OverlayType.MARKER) {
// Switch back to non-drawing mode after drawing a shape.
drawingManager.setDrawingMode(null);
}
setMapClickEvent(e.overlay, e.type);
setSelection(e.overlay);

}(;

在此声明之后,我立即遍历应在地图上自动绘制的当前矩形。这是代码:

_.each($scope.currentRactangles, function(arr) {
new google.maps.Rectangle({
strokeColor: '#002288',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#333322',
fillOpacity: 0.35,
map: map,
editable: true,
bounds: new google.maps.LatLngBounds(
new google.maps.LatLng(arr.upper_lat, arr.upper_lng),
new google.maps.LatLng(arr.lower_lat, arr.lower_lng)
)
});

}(;

现在,当地图加载时,现有的矩形(从数据库中获取(将绘制在地图上。 但是,侦听器永远不会被触发。 如果我手动绘制一个矩形,我可以在控制台中看到"e的值"和事件本身。 我的问题是:以编程方式绘制矩形时是否可以触发侦听器? 所有这些都是因为当我将矩形存储在数据库中时,我将在数组"polyArray"中存储内容。其中仅包含手动创建的矩形。

好的,解决方案是将新创建的矩形存储在数组中。基本上这个片段:

var tmprect = new google.maps.Rectangle({
strokeColor: '#002288',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#333322',
fillOpacity: 0.35,
map: map,
editable: true,
bounds: new google.maps.LatLngBounds(
new google.maps.LatLng(arr.upper_lat, arr.upper_lng),
new google.maps.LatLng(arr.lower_lat, arr.lower_lng)
)
});
var newrect = {};
newrect.type = 'rectangle';
newrect.overlay = tmprect;
polyArray.push(newrect);

即使数据库中的矩形没有生成事件,它们现在也位于同一数组中,该数组还将包含手动绘制的矩形。这对我来说已经足够了,因为我只需要一种方法来存储来自用户和自动生成的矩形。

相关内容

  • 没有找到相关文章

最新更新