關於自動完成位置搜索的任何不錯建議,與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