Как ограничить максимальный размер результата, возвращаемого поиском по API Google Place? - PullRequest
0 голосов
/ 22 января 2020

Я знаю, что при использовании 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, используя реагировать нативно.

...