TypeError:google.map未定义(即使加载了MapsAPILoader)

时间:2017-07-05 10:21:38

标签: angular google-maps typescript

我想在我的代码中使用google.map.XXX(例如google.map.LatLng)。

首先,为了能够构建一个项目,我在课程定义之前添加了declare let google : any;

当我尝试运行项目时,发生了TypeError: google.map is undefined错误。 我在ngOnInit()方法中使用了google.map.XXX,因此我认为"也许GoogleMaps仍然没有被加载?" ...所以,这是一种正确的假设。

然后我尝试在下面的代码中使用google.map.XXX

ngAfterViewInit() {
  this.mapsAPILoader.load().then(() => {
    // code that uses namespace of google.map
  });
}

并发生以下错误:

  

EXCEPTION:未捕获(承诺):TypeError:google.map未定义

为什么即使在MapsAPILoader触发回调后,google.map也未定义?

2 个答案:

答案 0 :(得分:0)

外部非打字稿库总是很棘手,将它们实现到正确的范围就是这样。

有多种方法可以解决这个问题。

  1. 使用AGM之类的预建库来处理几乎所有内容
  2. 自己实施
    • 在您的html <script src="https://maps.googleapis.com/maps/api/js?key=[YOUR-KEY]" async defer></script>
    • 中加载脚本
    • 使用declare let google : any;导入它,就像您一样
    • 使用new google.maps.function()环境
    • 中的ngOnInit(){}调用地图功能

答案 1 :(得分:0)

问题是愚蠢的拼错!

❌google.map.XXX
⭕️google.maps.XXX