Мне нужно получить разные места по их названию и положению, я использую Angular 6 и PlacesService с карт Google.
Вот что я делаю:
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,
}, ...
Теперь я могу получить несколько результатов, но некоторые результаты действительно находятся за пределами радиуса, я получил один результат на 30 км.от местоположения с этим радиусом 5000 метров.