如何通过用户位置过滤Bing位置API结果以进行自动完成



我有此功能可以根据用户输入的地址返回bing地址建议。我已经指定了用户关闭,但是结果并不像我想象的那样准确。我应该在这里做什么额外的?如果需要,我可以手动指定状态或邮政编码,但我宁愿避免进行邮政处理。

例如,键入111个返回结果,来自111,纽约,111瑞典,111丹麦。我想至少只将其限制在美国,实际上只有在我可以进行硬码的几个状态下。当我手动指定数据中邮政编码的选项时,它覆盖了我在查询中使用的内容。

    var geolocate = function(options) {
    $.ajax({
        url: "http://dev.virtualearth.net/REST/v1/Locations",
        dataType: "jsonp",
        data: {
            key: "KEY",
            q: options.address,
            userLocation: options.latitude + ',' + options.longitude,
            maxResults: options.maxResults,
        },
        jsonp: "jsonp",
        success: function(data) {
            if (options.success instanceof Function) {
                options.success(data);
            }
        },
        error: function(xhr, status, text) {
            alert('ERROR:n');
        }
    });
};

事实证明,这实际上将执行我的意图(除非测试证明另有证明),我将地址指定为单个param,q,它按预期过滤结果。

var geolocate = function(options) {
    $.ajax({
        url: "http://dev.virtualearth.net/REST/v1/Locations",
        dataType: "jsonp",
        data: {
            key: "KEY",
            addressLine: options.address,
            countryRegion: 'US',
            userLocation: options.latitude + ',' + options.longitude,
            maxResults: options.maxResults,
        },
        jsonp: "jsonp",
        success: function(data) {
            if (options.success instanceof Function) {
                options.success(data);
            }
        },
        error: function(xhr, status, text) {
            alert('ERROR:nn');
        }
    });
};

我对bing Maps API的熟悉程度不太熟悉,除了我之前进行的一些修补...但是您是否尝试通过IP或包括局部性?您可能需要逆转查找用户LAT/LNG以获取一个城市名称...为什么他们不会从用户列表中推断该信息超出我的范围。

http://msdn.microsoft.com/en-us/library/ff701714.aspx

最新更新