2009-08-24 70 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> 
相关问题