代码之家  ›  专栏  ›  技术社区  ›  Mohammad Adil

无法读取未定义的属性“drawing”

  •  0
  • Mohammad Adil  · 技术社区  · 6 年前

    我正在使用 检票机地图 使用Google提供的绘图工具绘制自定义区域边界。

    这是我的代码片段 .

      AgmCoreModule.forRoot({
      apiKey: 'here my api_key',
      libraries: ['visualization', 'places', 'drawing']
    })
    

     ngAfterViewInit() {
      //debugger;
        this.mapsAPILoader.load().then(() => {
          // tslint:disable-next-line:no-debugger
         // debugger;
               this.handleGoogleMapApi(map);
    
        });
      }
    
      handleGoogleMapApi(google) {
         this.map1 = google;
        // tslint:disable-next-line:no-debugger
        debugger;
         const drawingManager = new google.maps.drawing.DrawingManager({
          drawingMode: google.maps.drawing.OverlayType.POLYGON,
          drawingControl: true,
          drawingControlOptions: {
            position: google.maps.ControlPosition.TOP_CENTER,
            drawingModes: [
              google.maps.drawing.OverlayType.MARKER,
              google.maps.drawing.OverlayType.CIRCLE,
              google.maps.drawing.OverlayType.POLYGON,
              google.maps.drawing.OverlayType.POLYLINE,
              google.maps.drawing.OverlayType.RECTANGLE
            ]
          },
          circleOptions: {
            fillColor: '#ffff00',
            fillOpacity: 1,
            strokeWeight: 5,
            clickable: false,
            editable: true,
            zIndex: 1
          }
        });
        drawingManager.setMap(this.map1);
      }
    enter image description here

    感谢任何帮助。。。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Dalton Whyte    6 年前

    嗨,抛出的错误你的代码只是说谷歌地图'未定义。我建议你使用控制台.log('谷歌地图');跟踪对象的状态。

    初始化对象时可能缺少重要步骤。

        2
  •  0
  •   Sachink    6 年前

    变量 google 函数参数过右 handleGoogleMapApi(google)

      handleGoogleMapApi(_google) {
         this.map1 = _google;
        // tslint:disable-next-line:no-debugger
        debugger;
         const drawingManager = new google.maps.drawing.DrawingManager({
          drawingMode: google.maps.drawing.OverlayType.POLYGON,
          drawingControl: true,
          drawingControlOptions: {
            position: google.maps.ControlPosition.TOP_CENTER,
            drawingModes: [
              google.maps.drawing.OverlayType.MARKER,
              google.maps.drawing.OverlayType.CIRCLE,
              google.maps.drawing.OverlayType.POLYGON,
              google.maps.drawing.OverlayType.POLYLINE,
              google.maps.drawing.OverlayType.RECTANGLE
            ]
          },
          circleOptions: {
            fillColor: '#ffff00',
            fillOpacity: 1,
            strokeWeight: 5,
            clickable: false,
            editable: true,
            zIndex: 1
          }
        });
        drawingManager.setMap(this.map1);
      }