Обратный запрос геокодирования с библиотекой Algolia place.js - PullRequest
0 голосов
/ 13 мая 2019

Я использую библиотеку place.js для автозаполнения, но также хочу использовать ее для обратного геокодирования. Согласно https://community.algolia.com/places/examples.html#reverse-geocoding это должно быть возможно - автозаполнение работает нормально, но не обратный вызов. Выдержка из кода:

            places.configure({
                hitsPerPage: 1,
                aroundLatLng: position.coords.latitude + ',' + position.coords.longitude,
            });
            places.reverse({
                //aroundLatLng: position.coords.latitude + ',' + position.coords.longitude,
                //hitsPerPage: 1
            }).then(function(response){
                var hits = response.hits;
                var suggestion = hits[0];
                if (suggestion && (suggestion.locale_names || suggestion.city)) {
                    address_input.value = suggestion.locale_names.default[0] || suggestion.city.default[0];
                }
            });

Это вызывает вызов к правильной конечной точке, но ошибки, которые aroundLatLng отсутствуют. Я подтвердил, что данные есть - и также hitsPerPage остается по умолчанию 5. Как вы можете видеть из закомментированных строк, я попытался передать параметры напрямую в вызов reverse и использовать configure.

Может кто-нибудь помочь мне сказать, как правильно использовать библиотеку place.js для обратного вызова?

Спасибо.

1 Ответ

0 голосов
/ 16 мая 2019

Итак, что плохого в том, что Algolia предоставляет два способа вызова обратного геокодирования, но только фактически документирует один.

В примере обратного геокодирования Algolia используется реализация мест из библиотеки algolia client , котораяпозволяет вам:

const places = algoliasearch.initPlaces('appId', 'apiKey');
places.reverse({ aroundLatLng: 'lat,lng', hitsPerPage: 5 }).then(callback);

В библиотеке places.js доступен еще один метод reverse, и этот метод принимает несколько иные аргументы:

const placesAutocomplete = places({ appId: '', apiKey: '', container: inputEl });
places.reverse('lat,lng', { hitsPerPage: 5 });

Обратите внимание, как широта /пара долготы должна быть указана в качестве первого аргумента, а затем запросить параметры в качестве второго аргумента объекта.

...