angular - 谷歌地图地方请求只返回一个地方
问题描述
我需要从他们的名字和位置获得不同的地方,我使用的是 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 公里处获得了一个结果。
解决方案
推荐阅读
- html - 这个border="50%" 的怪事是什么?
- excel - VBA:如何检测到我正在将鼠标指针移动到 VBA 用户窗体上的标签控件上?
- java - Imap 和 Multimap 的总数 Hazelcast
- java - Top K 频繁元素 - 如何反转元素
- php - 用于避免暴力攻击的 Modsecurity 规则
- airflow - Apache气流运行太多进程
- angular - 如何使用 rxjs 间隔从 API 中获取数据块并在没有数据时停止
- azure - 使用 PowerShell 更新数据集/管道/链接服务/触发器的 Azure 数据工厂属性
- javascript - 如何根据用户的输入将数组中的项目附加到列表中
- apache-flink - Flink 卡在启动 TaskManagers 中