我有此功能可以根据用户输入的地址返回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