我有此功能可根据用户输入的地址返回bing地址建议。 我已经指定了userLocation ,但结果并不像我想象的那样准确。我还有什么额外的事吗?如果必须的话,我可以手动指定州或邮政编码,但我宁愿避免进行后期处理。
例如,输入111将返回111,NY,111 Sweden,111 Denmark的结果。我想将此限制为仅限于美国,并且仅限于几个我可以硬编码的状态。当我在数据中手动指定postalCode的选项时,它会覆盖我在查询中使用的内容。
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');
}
});
};
答案 0 :(得分:1)
事实证明,这实际上会按照我的意图行事(除非测试证明不是这样)我将地址指定为单个参数q,但如果我将addressLine与userLocation结合使用,则会按预期过滤结果。
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:\n\n');
}
});
};
答案 1 :(得分:0)
我对Bing Maps API的熟悉程度超出了我之前做过的一些修补...但是你试过传递ip还是包含了地方?您可能需要反向查找用户Lat / Lng以获取城市名称...为什么他们不会从userLocation推断该信息超出我的范围。