2009-08-24 76 views
6

關於自動完成位置搜索的任何不錯建議,與Google或Bings位置數據等內容集成在一起?與bing /谷歌地理編碼整合的位置搜索自動完成

我想捕獲我的用戶在註冊時的位置,目前我有一個免費的文本輸入框。我希望有一些自動完成的功能可以引導用戶輸入更多的消毒信息,理想情況下我也想對用戶進行地理編碼。

我目前使用jQuery autocomplete進行自動搜索,但這需要我提供位置數據,我沒有或想要維護。

回答

7

如果你不想維護你自己的位置數據庫(對你有好處!),那麼你可以看看Freebase和他們的Freebase Suggest插件jQuery。他們會爲你完成所有的自動完成工作,甚至是建議UI,你可以指定你只想自動完成位置(或者只是美國的縣,或者其他)。

有些地名詞典可以提供位置名稱的數據庫,但不會爲您完成自動完成的用戶界面。例如,GeoNames有一套很好的web services,您可以將它與jQuery Autocomplete進行匹配。

+0

有點酷,但其本身的以美國爲中心,和彈出式窗口的維基是升技矯枉過正。 – Dan 2009-08-25 21:35:22

+0

地名錄可以爲您提供更完整的名稱數據庫。 (我已經用一些鏈接更新了我的答案。) – npdoty 2009-10-01 08:20:06

+0

另外,如果您不喜歡Freebase Suggest的彈出窗口,我會建議'{「flyout」:「false」}。 – npdoty 2009-10-01 08:21:41

2

我們做了「賬單地址」字段類似的東西上https://bombsheets.com/ - 你需要做一個AJAX調用來獲取自動完成選項:

$(".address-autocomplete").autocomplete('/get_address', { 
    delay: 250, 
    scrollHeight: 400, 
    matchSubset: false, 
    cacheLength: 10, 
    minChars: 3 
}); 

,然後使用地理位置API服務器端獲取實際地址(我們使用Rails的優秀GeoKit)。

請參閱this question瞭解其他顏色。

0
<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> 
相關問題