这是关于谷歌地理编码的
@agm/core
问,在您的服务中构造google.maps.Geocoder
实例? 你必须注入一个MapsAPILoader
实例,并使用它的加载承诺在幕后完成一些魔法后对google.maps.Geocoder()
进行延迟调用。
类
import { MapsAPILoader } from '@agm/core'
export class GeocodingService
{
private geo : any;
constructor(private mapLoader: MapsAPILoader) {}
..
}
版本 a(
constructor(private mapLoader: MapsAPILoader)
{
this.mapLoader.load().then
{
this.geo = new google.maps.Geocoder();
}
}
版本b(
constructor(private mapLoader: MapsAPILoader)
{
this.getgeo();
}
private getgeo()
{
this.mapLoader.load().then
{
this.geo = new google.maps.Geocoder();
}
}
版本 a( 不起作用
核心.js:6014 错误
错误:未捕获(承诺(: ReferenceError: google 未在新的 GeocodingService (GeocodingService.ts:53( 中定义
版本 b( 确实有效
有什么区别?对我来说 a( 和 b( 似乎是等价的?
我已经准备了一个堆栈闪电战,你可以试试这个。 我希望这有所帮助。
如果仍然看到相同的问题,请分叉并让我知道