Why isn't this an instance of map of google.maps.Map? InvalidValueError: setMap: not an instance of Map;

前端 未结 3 924
予麋鹿
予麋鹿 2021-02-20 06:19

I am getting the error Assertion failed: InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama on a google map web page. I th

3条回答
  •  攒了一身酷
    2021-02-20 07:13

    The issue is definitely with js not being able to access the initialized map. For me in an angular project, the 'this.gmap' was giving an issue as 'this' was conflicting with some internal 'this' in the 'geocoder.geocode' stub. After breaking my head over this issue for a couple of hours, 'let that = this" outside the stub gave me access to the map initialized in another method.

            ngOnInit() {
            this.gmap = new google.maps.Map(document.getElementById('gmap'), {
              center: { lat: this.lat, lng: this.lng },
              zoom: this.zoom
            });
            this.getGeocode();
          }
           getGeocode() {
            debugger;
            let geocoder = new google.maps.Geocoder();
            let element= "Delhi";
            let that = this;
            geocoder.geocode({ 'address': element }, function (results, status) {
              console.dir(results);
              console.dir(status);
              if (status == google.maps.GeocoderStatus.OK) {
                that.results = results;
              } else {
                alert('Geocode was not successful for the following reason: ' + status);
              }
              that.setMarker();
            });
          }
    
          setMarker() {
            this.marker = new google.maps.Marker({
              position: this.results[0].geometry.location,
              map: this.gmap
            });
          }
    

提交回复
热议问题