【发布时间】:2014-11-09 21:24:59
【问题描述】:
我正在创建一个使用地图的 Web 应用程序。在地图上我正在创建圆圈并希望在 div 中显示半径。在使用覆盖完成事件完成半径后,我可以显示半径。但我想在创建圆时在 div 中显示半径,以允许用户绘制具有自己长度半径的圆。有没有办法做到这一点。请帮我解决这个问题。任何反馈和帮助都将受到欢迎和赞赏。 提前谢谢。
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
deleteSelectedShape();
selectedShape = e.overlay;
//selectedShape.setEditable(true);
//overlayClickListener(selectedShape);
if (e.type == google.maps.drawing.OverlayType.CIRCLE) {
var bound = e.overlay.getBounds();
bounds = bound;
var radius = e.overlay.getRadius();
radius = (radius/1000);
$('#radius_size').html("Radius "+Math.round(radius)+" Km");
}
else if (e.type == google.maps.drawing.OverlayType.RECTANGLE) {
deleteSelectedShape();
var bound = e.overlay.getBounds();
map.fitBounds(bound);
}
【问题讨论】:
-
DrawingManager 类只有在形状完成时才具有事件监听器,而不是在它们被拖出时。我认为您也许可以在地图上使用鼠标事件之类的东西,例如单击和拖动,但根据the docs "google.maps.Map 事件,例如单击和鼠标移动在绘图时被禁用地图”
-
具有标准形状的事件,您没有让您在编辑形状时获取半径的事件。您有一个
radius_changed事件,但它只会在您释放鼠标/完成编辑时触发。编辑形状时不会触发其他鼠标事件。即使使用计时功能,在编辑形状时我似乎也无法获得 cricle 半径。 -
* 即使是标准形状...
标签: javascript google-maps google-maps-api-3