Google map api v3 DrawingManager无效

时间:2012-02-24 16:04:24

标签: google-maps google-maps-api-3

我正在尝试使用Google Maps API v3但我总是出错

我在页面中添加了脚本:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing"></script>

我实施了:

var drawingManager = new google.maps.drawing.DrawingManager({
      drawingMode: google.maps.drawing.OverlayType.MARKER,
      drawingControl: true,
      drawingControlOptions: {
        position: google.maps.ControlPosition.TOP_CENTER,
        drawingModes: [google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE]
      },
      /*markerOptions: {
        icon: new google.maps.MarkerImage('http://www.example.com/icon.png')
      },*/
      circleOptions: {
        fillColor: '#ffff00',
        fillOpacity: 1,
        strokeWeight: 5,
        clickable: false,
        zIndex: 1,
        editable: true
      }

我总是得到同样的错误:

  

未捕获的TypeError:无法读取未定义的属性“DrawingManager”

7 个答案:

答案 0 :(得分:15)

'本文档中的概念仅指google.maps.drawing库中提供的功能。默认情况下,在加载Maps Javascript API时不会加载此库,但必须通过使用库引导参数显式指定:'

http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing

答案 1 :(得分:9)

我得到了同样的错误,我想出来了。使用“https”代替“http”...

< script type="text/javascript"
 src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing">
</script>

答案 2 :(得分:2)

在加载库之前,您的代码似乎正在执行。如果要异步加载,则应将库包含在相同API调用中,该函数指定对映射初始化函数的回调(可能包括/调用您的代码片段)。如果您的初始化函数被称为initMap,那么执行以下操作:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY?libraries=drawing&callback=initMap"></script>

我有两个脚本标签我得到了同样的错误;一个加载绘图库(就像你的,没有回调)和另一个只有回调。谷歌在我的控制台中写下以下内容后,我修好了它。

You have included the Google Maps API multiple times on this page. This may cause unexpected errors.

答案 3 :(得分:2)

使用此:

<script async defer src="https://maps.googleapis.com/maps/api/js?libraries=geometry,drawing&key=YOURKEY&v=3&callback=initMapfUNCTION"></script>

YOURKEY ==>将此单词替换为您的Map API密钥 initMapfUNCTION ==>将该单词替换为地图的初始函数的名称

答案 4 :(得分:0)

除了你的代码示例不完整之外(我猜你刚刚复制它时错过了右括号),我看不出任何明显的东西。我没有使用过绘图库,但似乎你正确地遵循文档。我会说使用Firebug检查从谷歌加载的Javascript,看看它是否提到了有关DrawingManager类的任何内容。

答案 5 :(得分:0)

尝试添加

});

最后。

希望它有所帮助。

答案 6 :(得分:0)

所以我不知道是否有人真的回答过这个问题,但是您应该做的是在看起来像"&libraries=drawing的网址末尾添加src="https://maps.googleapis.com/maps/api/js?libraries=geometry,drawing&key=YOURKEY&v=3&callback=initMapfUNCTION **ADD HERE** "