我需要从它们的名称和位置获得不同的位置,我正在使用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公里处获得了一个结果。