You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:45:01