我希望用户搜索地址,我希望它显示som示例,当用户选择一个我希望它找到坐标的示例时。但是现在我无法完全自动完成工作,也不会搜索地址。
$('[id$=PlaceOfDeparture]:not(.ui-autocomplete-input)').live('focus', function () {
$(this).autocomplete({
source: function (request, response) {
$.ajax({
url: "http://dev.virtualearth.net/REST/v1/Locations",
dataType: "jsonp",
data: {
key: 'AvmdDLtsmPpOQ9N21vLDEAlhnr-H-W-A9HmjXiIDn9cHBVp5ylLELdc_lmnuCcRB',
addressLine: request.term,
},
success: function (data) {
var result = data;
}
});
},
minLength: 2,
select: function (event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
travel = $(this).closest('div').parent();
travel.find('[id$=PlaceOfDepartureCoordinates]').val(ui.item.value);
travel.find('[id$=PlaceOfDepartureContry]').val(ui.item.countryName);
$(this).change();
updateMap();
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
});
答案 0 :(得分:1)
您可以在此处找到有关如何执行此操作的代码示例:http://www.vivienchevallier.com/Articles/use-bing-maps-rest-services-with-jquery-to-build-an-autocomplete-box-and-find-a-location-dynamically
但是,我强烈建议不要这样做。自动填充通常会针对您的帐户生成大量交易。如果您使用的是企业帐户,则会导致高额费用。如果您使用的是非企业帐户,则会遇到自动完成无法始终有效的问题,因为您的帐户由于请求频率较高而受到费率限制。
创建您正在寻找的功能类型的更好方法是创建用户排名自动建议。这将极大地改善对用户的建议,并且将最大限度地提高用户体验,同时最大限度地减少对Bing Maps服务进行的浪费。用户排名自动建议背后的想法是创建一个数据库,您可以在其中存储用户选择的位置。每当用户选择自动建议中的位置时,等级值增加并且建议的排序基于等级值。如果用户在自动建议中未找到与其查询匹配的任何结果,那么当他们按下搜索按钮并且您调用Bing地图服务以返回可能的结果时。如果他们选择了任何结果,那么您将该结果添加到数据库中。我有几个客户已经这样做了几个月之后他们几乎没有针对Bing地图产生任何交易,这意味着长期降低成本。这也意味着他们对用户所寻找的内容以及哪些位置最受欢迎有很多洞察力。这种洞察力非常有价值。
答案 1 :(得分:1)
这是一篇非常古老的帖子。 Bing Maps现在提供autosuggest。以下是一些资源:
http://bingmapsv8samples.azurewebsites.net/#Fill%20Address%20Form%20with%20Autosuggest
http://bingmapsv8samples.azurewebsites.net/#Custom%20Autosuggest%20Input%20with%20JQuery%20UI
https://msdn.microsoft.com/en-us/library/mt750287.aspx
您可能还需要考虑为地址,POI和POI类别提供自动提示的Azure地图:
https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddress
只需使用typeahead
网址参数。