使用Algolia place.js库进行反向地理编码查询

时间:2019-05-13 16:37:19

标签: javascript algolia

我正在使用places.js库进行自动完成,但也想将其用于反向地理编码。根据{{​​3}},这应该是可能的-自动完成功能可以正常工作,但不能反向调用。代码摘录:

            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

请问有人可以告诉我使用places.js库进行反向调用的正确方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

所以问题是Algolia如何提供两种调用反向地理编码的方法,而实际上只记录了其中一种。

Algolia的反向地理编码示例使用 algolia客户库中的places实现,您可以执行以下操作:

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

reverse库中还有另一种places.js方法,该方法采用略有不同的参数:

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

请注意,必须将纬度/经度对作为第一个参数,然后将params作为第二个对象参数。