关于自动完成位置搜索的任何不错建议,与Google或Bings位置数据等内容集成在一起?与bing /谷歌地理编码整合的位置搜索自动完成
我想捕获我的用户在注册时的位置,目前我有一个免费的文本输入框。我希望有一些自动完成的功能可以引导用户输入更多的消毒信息,理想情况下我也想对用户进行地理编码。
我目前使用jQuery autocomplete进行自动搜索,但这需要我提供位置数据,我没有或想要维护。
关于自动完成位置搜索的任何不错建议,与Google或Bings位置数据等内容集成在一起?与bing /谷歌地理编码整合的位置搜索自动完成
我想捕获我的用户在注册时的位置,目前我有一个免费的文本输入框。我希望有一些自动完成的功能可以引导用户输入更多的消毒信息,理想情况下我也想对用户进行地理编码。
我目前使用jQuery autocomplete进行自动搜索,但这需要我提供位置数据,我没有或想要维护。
如果你不想维护你自己的位置数据库(对你有好处!),那么你可以看看Freebase和他们的Freebase Suggest插件jQuery。他们会为你完成所有的自动完成工作,甚至是建议UI,你可以指定你只想自动完成位置(或者只是美国的县,或者其他)。
有些地名词典可以提供位置名称的数据库,但不会为您完成自动完成的用户界面。例如,GeoNames有一套很好的web services,您可以将它与jQuery Autocomplete进行匹配。
我们做了“账单地址”字段类似的东西上https://bombsheets.com/ - 你需要做一个AJAX调用来获取自动完成选项:
$(".address-autocomplete").autocomplete('/get_address', {
delay: 250,
scrollHeight: 400,
matchSubset: false,
cacheLength: 10,
minChars: 3
});
,然后使用地理位置API服务器端获取实际地址(我们使用Rails的优秀GeoKit)。
请参阅this question了解其他颜色。
https://github.com/lorenzsell/Geocoded-Autocomplete 此jQuery插件使用Google地理编码JavaScript API和jQuery UI自动完成。
<script>
function init() {
var input = document.getElementById('locationTextField');
var autocomplete = new google.maps.places.Autocomplete(input);
///Start for getting lat and lang
google.maps.event.addListener(autocomplete, 'place_changed',
function() {
var place = autocomplete.getPlace();
var lat = place.geometry.location.lat();
var lng = place.geometry.location.lng();
document.getElementById("lat").innerHTML = "Lat: "+lat+"<br />Lng: "+lng;
}
);
////End
}
google.maps.event.addDomListener(window, 'load', init);
</script>
有点酷,但其本身的以美国为中心,和弹出式窗口的维基是升技矫枉过正。 – Dan 2009-08-25 21:35:22
地名录可以为您提供更完整的名称数据库。 (我已经用一些链接更新了我的答案。) – npdoty 2009-10-01 08:20:06
另外,如果您不喜欢Freebase Suggest的弹出窗口,我会建议'{“flyout”:“false”}。 – npdoty 2009-10-01 08:21:41