这里的Geocoder自动完成API matchLevel参数

时间:2019-06-16 13:23:49

标签: geocoding here-api

是否有一种方法可以根据matchLevel限制结果? 因此,如果我们使用地理编码搜索城市,则可以使用:

matchLevel : 'city'

仅以此获得结果?

当前,当发送带有查询的请求(例如“伦敦”)时,我们会得到有关地区,县,城市的各种结果。我看不出将这些结果限制在城市范围内的方法。仅使用resultType=areas是不够的。对于当前的解决方法,我们在响应后过滤结果以仅显示具有matchLevel=city的结果,但是我们增加了maxresults以进行过滤。也许有一些我们可以使用的beta /隐藏参数?

1 个答案:

答案 0 :(得分:1)

因为不可能直接在API中进行操作,所以唯一的解决方案实际上是过滤结果。对于任何有需要的人,这就是我所使用的。您可以根据需要进行调整。

request.onload = function () {
    if (request.status >= 200 && request.status < 400) {
        // Success!
        var data = JSON.parse(request.responseText);

        var list = [];
        var total = 0;
        for (var i = 0; i < data.suggestions.length; i++) {
            if (data.suggestions[i].matchLevel == "city" && list.indexOf(data.suggestions[i].address.city + ', ' + data.suggestions[i].address.country) < 0) {
                list.push(data.suggestions[i].address.city + ', ' + data.suggestions[i].address.country);
            }
        }

    }
};