首页 > 解决方案 > 谷歌地图地方请求只返回一个地方

问题描述

我需要从他们的名字和位置获得不同的地方,我使用的是 Angular 6 和谷歌地图中的 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 多家商店的城市也是如此

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

编辑:

我尝试使用 textSearch 而不是 findPlaceFromQuery :

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

我现在可以获得多个结果,但有些结果确实超出了半径,我在距离半径为 5000 米的位置 30 公里处获得了一个结果。

标签: angulargoogle-mapsgoogle-places-api

解决方案


推荐阅读