如何从Google Maps API V3的drawingManager中移除Polyline绘制工具
移除Google Maps API V3绘制控件中的折线工具方案
你现有初始化代码的配置思路是完全正确的,drawingModes数组用于指定绘制控件要展示的所有工具类型,只要从数组中移除google.maps.drawing.OverlayType.POLYLINE项即可隐藏折线绘制工具,你已经注释掉对应条目,正常初始化后就不会在绘制控件中看到折线选项。
如果修改后折线工具仍然显示,可以按下面的步骤排查:
- 清除浏览器缓存后重新加载页面,避免旧版本代码被加载执行
- 检查全局代码中是否有其他地方调用了
drawingManager.setOptions()方法,重新修改了drawingModes配置,把折线类型重新加回了可绘制列表 - 确认修改后的代码已经正确编译、部署到当前访问的运行环境,没有仍在使用旧版本代码的情况
你可以参考下面的标准生效配置:
// 按你的原有逻辑定义polyOptions即可 const polyOptions = { editable: false, // 其他图形通用配置 } drawingManager = new google.maps.drawing.DrawingManager({ drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, }, // 数组中仅保留需要显示的绘制类型,直接移除POLYLINE相关条目 drawingModes: [ google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON, google.maps.drawing.OverlayType.RECTANGLE, ], markerOptions: { draggable: false, label: "" }, rectangleOptions: polyOptions, circleOptions: polyOptions, polygonOptions: polyOptions, map: map });
如果你是初始化完成后需要动态移除折线工具,可以直接调用更新配置的方法:
drawingManager.setOptions({ drawingModes: [ google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON, google.maps.drawing.OverlayType.RECTANGLE, ] })
内容的提问来源于stack exchange,提问作者zen18
相关产品推荐
相关产品推荐

