使用Google-Places API时无法读取未定义的属性“自动完成”

时间:2019-06-27 06:34:43

标签: angular google-maps angular6

我想在文本框中获取输入地址的LatLng。我正在使用google map api。通过仅编写新的google.maps.places.Autocomplete({}),我得到无法读取未定义的属性“地方”

下面是我的代码:

@ViewChild('addressText') addressText: any;

ngAfterViewInit() {
   this.getPlaceAutocomplete();
}

getPlaceAutocomplete() {
    const autoComplete = new google.maps.places.Autocomplete(this.addressText.nativeElement, {
      types: this.addressText.nativeElement.value
    })
    // google.maps.event.addListener(autoComplete, 'place_changed', () => {
    //   const place = autoComplete.getPlace();

    //   console.log('places... ', place);
    // })
  }

html文件:

<input matInput placeholder="Locations" class="input" formControlName="text" #addressText>

请帮帮我。

1 个答案:

答案 0 :(得分:0)

该错误是由于未创建“自动完成”对象。

  • 您需要为“ input”标签定义一个ID。
  • 只给您一个基本的例子。

HTML:

<input matInput placeholder="Locations" class="input" formControlName="text" id="addressText">

JS:

autocomplete = new google.maps.places.Autocomplete(
  document.getElementById('addressText'), {types: ['geocode']});

有关更多详细信息,请浏览文档google api autocomplete