2010-10-30 155 views
19

我想向我的用户显示一个可输入地址的文本框。当他们输入他们的地址时,我想向用户提供他们尝试输入的地址的建议/预测。我也关心这个地址的相关性(例如地址不是全世界的地址)。自动填充地址+ Google Maps API

这可能吗?我正在使用jQuery。

+0

这不是可能jQuery的问题。您需要输入一些第三方供应商,他们在运行时为您提供地址,例如QAS服务。 – kobe 2010-10-30 23:42:43

+0

我不知道是否有免费提供商,我们在我们公司实施并使用QAS。 – kobe 2010-10-30 23:43:26

+0

http://www.qas.com/home.htm,检查这是否是你想要实现的。 – kobe 2010-10-30 23:48:54

回答

48

您可以使用Google Places API为地址提供自动填充功能。当选择地址时,address_components字段包含结构化地址数据(例如街道,城市,国家),并且可以很容易地转换为单独的字段。

这里是一个简短的工作演示:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    </head> 
    <body> 
     <input type="text" id="address" style="width: 500px;"></input> 

     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script> 
     <script> 
      var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {}); 

      google.maps.event.addListener(autocomplete, 'place_changed', function() { 
       var place = autocomplete.getPlace(); 
       console.log(place.address_components); 
      }); 
     </script> 
    </body> 
</html> 
+0

有没有办法让它自动填充不同的输入?因此,如果您从输入第一行开始,并为您提供地址选项,那么当您点击它时,它会自动填充多个输入的地址? – 2014-04-02 11:20:11

+0

我如何在地图上显示选定的位置,请帮助我 – Erum 2014-05-09 12:42:36

+0

哇,这非常简单直接,谢谢你! – Brian 2017-05-18 03:23:39

4

@Maksym Kozlenko答案的运行版对于那些想要看到这一点的人。

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
 
    </head> 
 
    <body> 
 
     <input type="text" id="address" style="width: 500px;"></input> 
 

 
     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script> 
 
     <script> 
 
      var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {}); 
 

 
      google.maps.event.addListener(autocomplete, 'place_changed', function() { 
 
       var place = autocomplete.getPlace(); 
 
       console.log(place.address_components); 
 
      }); 
 
     </script> 
 
    </body> 
 
</html>

2

你必须使用一个API密钥。

见参考here.

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    </head> 

    <body> 
     <input type="text" id="address" style="width: 500px;"></input> 

     <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBIWSqJ5-3D-UviE0ZLO4U6AjhVcn58y4g&libraries=places&callback=initMap"></script> 
     <script> 
      function initMap(){ 
       var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {}); 

       google.maps.event.addListener(autocomplete, 'place_changed', function() { 
        var place = autocomplete.getPlace(); 
        console.log(place.address_components); 
       }); 
      } 
     </script> 
    </body> 
</html> 
相关问题