Я знаю, что при использовании Google Places API можно вернуть более 20 результатов несколькими способами. Можно ли ограничить размер возвращаемой страницы до значения, меньшего 20? Например: 3, 5 или 10?
Я хотел бы объединить несколько запросов API Google Place Place (3-5 поисков) и возвращать только несколько результатов из каждого, объединяя их в один массив из 20 или so objects.
Причина, по которой мне нужно это решение:
Одно ограничение, которое имеет API Google Places, заключается в текстовом поиске запросов API, где только один параметр типа может быть задан; если включено больше, то для поиска будет учитываться только последний тип. Существует невероятное количество типов , к которым поисковый запрос может обратиться, и моя проблема включает использование, возможно, 3-5 из них.
Я хотел бы объединить 3-5 поисков вместе с различными типами будучи уникальным идентификатором между ними. Но вместо того, чтобы возвращать 60-100 результатов за нажатие клавиши от пользователя, я хотел бы вернуть только 20 результатов.
Вот одна из моих функций запроса. Остальные похожи, единственное отличие в том, что используется typeString.
async searchGooglePlacesByBar(userInput) {
const url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?key=MY_API_KEY_HERE&input=';
const locationString = '&location=' + this.props.userLocation.latitude + ',' + this.props.userLocation.longitude + '&radius=10000';
const typeString = '&type=bar';
const urlString = userInput.length > 0 ? url + userInput + locationString + typeString : url;
try {
const googlePlacesApiCall = await fetch(urlString, {
method: 'GET',
headers:{
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials':true,
'Access-Control-Allow-Methods':'POST, GET'
},
dataType: 'json'
})
.then(response => {
console.log(response);
return response.json();
})
.then(json => {
console.log(json)
this.setState({results: json.results});
});
} catch(err) {
console.log("Error fetching data-----------", err);
}
}
Я пишу приложение в javascript, используя реагировать нативно.