在 NgMap 中显示和隐藏绘图控件 - Google 地图
Show and hide drawcontrols in NgMap - Google Maps
我想让用户点击一个按钮,在地图上显示绘图控件。添加圆圈、标记等后,绘制控件将再次隐藏。
我正在构建一个 Angular 应用程序并且我正在使用 NgMap 指令 (https://ngmap.github.io/)
我的示例代码如下所示:
html:
<ng-map id="myMap">
<drawing-manager
on-overlaycomplete="ctrl.onMapOverlayCompleted()"
drawingControl="ctrl.showDrawControl">
</drawing-manager>
</ng-map>
控制器:
vm.showDrawControl = true;
NgMap.getMap({ id: 'myMap' }).then(function (map) {
vm.onMapOverlayCompleted = function (event) {
vm.showDrawControl = false;
alert(vm.showDrawControl);
}
});
在overlayComplete上调用了函数,但是控件没有隐藏?
检查 ng-map 的源代码我发现缺少 drawingControl
属性的观察者,因此无法在初始设置后更新使用 Angular 绑定。
解决问题的两种方法:
1) 修补 ng-map.js 将以下代码添加到 drawingManager
directive:
attrs.$observe('drawingcontrol', function (newValue) {
drawingManager.setOptions({
drawingControl: (newValue=="true" ? true : false)
});
});
2) 直接使用 Google 映射 API 如所述 here
map.mapDrawingManager[0].setOptions({drawingControl:false/true})
检查我的 plunker 是否有选项 2:
http://plnkr.co/edit/KUCMVdgRZ3TsN9P0FlZR
P.S.: 在上面的 Plunker 中,您还可以看到 ng-map 的补丁版本(但未使用但经过测试可以正常工作)。
我想让用户点击一个按钮,在地图上显示绘图控件。添加圆圈、标记等后,绘制控件将再次隐藏。
我正在构建一个 Angular 应用程序并且我正在使用 NgMap 指令 (https://ngmap.github.io/)
我的示例代码如下所示:
html:
<ng-map id="myMap">
<drawing-manager
on-overlaycomplete="ctrl.onMapOverlayCompleted()"
drawingControl="ctrl.showDrawControl">
</drawing-manager>
</ng-map>
控制器:
vm.showDrawControl = true;
NgMap.getMap({ id: 'myMap' }).then(function (map) {
vm.onMapOverlayCompleted = function (event) {
vm.showDrawControl = false;
alert(vm.showDrawControl);
}
});
在overlayComplete上调用了函数,但是控件没有隐藏?
检查 ng-map 的源代码我发现缺少 drawingControl
属性的观察者,因此无法在初始设置后更新使用 Angular 绑定。
解决问题的两种方法:
1) 修补 ng-map.js 将以下代码添加到 drawingManager
directive:
attrs.$observe('drawingcontrol', function (newValue) {
drawingManager.setOptions({
drawingControl: (newValue=="true" ? true : false)
});
});
2) 直接使用 Google 映射 API 如所述 here
map.mapDrawingManager[0].setOptions({drawingControl:false/true})
检查我的 plunker 是否有选项 2:
http://plnkr.co/edit/KUCMVdgRZ3TsN9P0FlZR
P.S.: 在上面的 Plunker 中,您还可以看到 ng-map 的补丁版本(但未使用但经过测试可以正常工作)。