Google Maps Places请求仅返回一个地方

时间:2019-01-29 09:15:55

标签: angular google-maps google-places-api

我需要从它们的名称和位置获得不同的位置,我正在使用Angular 6和Google地图中的PlacesService。

这就是我要做的:

from(this._mapsApiLoader.load()).subscribe(() => {
    const service = new google.maps.places.PlacesService(document.createElement('div'));
    service.findPlaceFromQuery({
      query: this.search,
      fields: ['geometry', 'name', 'formatted_address'],
      locationBias: new Coordinates(position[0], position[1])
    }, (results) => {

      this._ngZone.run(() => {
        if (results !== undefined
            && results !== null
            && results.length > 0
        ) {

          console.log(results);
        }
      });
    });
  });

我的问题是请求仅返回一个位置,而不是坐标处的所有位置。我还尝试将城市而不是坐标放到一个位置。

这是我得到的结果的一个示例:

[{…}]
  0: {formatted_address: "26 Rue du Dr Mazet, 38000 Grenoble, France", geometry: {…}, name: "IKKS Retail", html_attributions: Array(0)}
  length: 1
  __proto__: Array(0)

即使在拥有10家以上商店的城市中,我总是只能得到一个

当我在Google地图上搜索相同的东西时,有不止一个地方,我怎么能得到所有这些东西?

编辑:

我尝试使用textSearch代替findPlaceFromQuery:

service.textSearch({
      query: this.search,
      location: new google.maps.LatLng(position[0], position[1]),
      radius: 5000,
    }, ...

我现在可以获得多个结果,但是有些结果确实不在半径范围内,我在距半径5000米的位置30公里处获得了一个结果。

0 个答案:

没有答案