与bing / google地理编码集成的位置搜索自动完成功能

时间:2009-08-24 17:21:21

标签: jquery google-maps autocomplete geolocation bing-maps

有关自动完成位置搜索的任何不错的建议,与Google或Bings位置数据等内容集成?

我想要在注册时捕获我的用户的位置,目前我有一个免费的文本输入框。我想要某种自动完成,引导用户输入更多消毒信息,理想情况下我也希望对用户进行地理编码。

我目前正在使用jQuery autocomplete作为自动搜索,但这需要我提供我没有或想要维护的位置数据。

4 个答案:

答案 0 :(得分:7)

如果您不想维护自己的位置数据库(对您有用!),那么您可以查看Freebase及其Freebase Suggest插件以获取jQuery。他们将为您完成所有自动完成甚至建议UI,您可以指定您只想自动完成位置(或仅限美国县或其他)。

存在可以提供位置名称数据库但不会为您执行自动完成UI的地名录。例如,GeoNames有一组很好的web services,您可以将其与jQuery Autocomplete匹配。

答案 1 :(得分: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了解其他颜色。

答案 2 :(得分:2)

https://github.com/lorenzsell/Geocoded-Autocomplete 这个jQuery插件使用Google Geocoding Javascript API和jQuery UI Autocomplete。

答案 3 :(得分: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>