谷歌地图自动完成字段从数据库中获取地址

时间:2013-09-19 10:28:39

标签: google-maps-api-3 autocomplete

我正在运行一个具有自动填充字段的脚本,并在自动完成功能中从谷歌中获取地址。 我想通过数据库获取自动完成字段中的地址,然后在地图上显示位置。

这是我的代码:

$(document).ready(function(){

  var mapOptions = {
   zoom: 10,
   mapTypeId: google.maps.MapTypeId.ROADMAP,
   center: new google.maps.LatLng(43.890423,-79.417732)
     };

  var map = new google.maps.Map(document.getElementById("map"),mapOptions);

  var geocoder = new google.maps.Geocoder();  

 $(function() {
     $("#searchbox").autocomplete({

       source: function(request, response) {

      if (geocoder == null){
       geocoder = new google.maps.Geocoder();
      }
         geocoder.geocode( {'address': request.term }, function(results, status) {
           if (status == google.maps.GeocoderStatus.OK) {

              var searchLoc = results[0].geometry.location;
              var lat = results[0].geometry.location.lat();
              var lng = results[0].geometry.location.lng();
              var latlng = new google.maps.LatLng(lat, lng);
              var bounds = results[0].geometry.bounds;

              geocoder.geocode({'latLng': latlng}, function(results1, status1) {
                  if (status1 == google.maps.GeocoderStatus.OK) {
                    if (results1[1]) {
                     response($.map(results1, function(loc) {
                    return {
                        label  : loc.formatted_address,
                        value  : loc.formatted_address,
                        bounds   : loc.geometry.bounds
                      }
                    }));
                    }
                  }
                });
        }
          });
       },
       select: function(event,ui){
  var pos = ui.item.position;
  var lct = ui.item.locType;
  var bounds = ui.item.bounds;

  if (bounds){
   map.fitBounds(bounds);
  }
       }
     });
 });   
 });

非常感谢任何帮助。 我不太了解google api和地图。

0 个答案:

没有答案