城市内的Google地图自动填充功能

时间:2016-04-22 10:37:09

标签: javascript jquery google-maps autocomplete google-places

我处于这种情况,我需要将Google地图自动填充限制为特定的城市结果。

$(document).ready(function() {

  var autocomplete =
      new google.maps.places.Autocomplete(
          document.getElementById('addr'));

  autocomplete.setTypes(['address']);
  autocomplete.setComponentRestrictions({'country':'us'});

  google.maps.event.addListener(autocomplete, 'place_changed',
        function() {
            var place = autocomplete.getPlace();
            $('#name').text(place.formatted_address);
            $('#lat').text(place.geometry.location.lat());
            $('#long').text(place.geometry.location.lng());

            var service = new google.maps.DistanceMatrixService();
            service.getDistanceMatrix({
                  origins: [new google.maps.LatLng(
                      place.geometry.location.lat(),
                      place.geometry.location.lng())],
                  destinations: ['Raleigh, NC'],
                  travelMode: google.maps.TravelMode.DRIVING,
                  unitSystem: google.maps.UnitSystem.IMPERIAL
                },
                function(response, status) {
                    if (response.rows[0].elements[0].status == 'ZERO_RESULTS')
                        $('#distance').text('No dice!');
                    else
                        $('#distance').text(response.rows[0].elements[0].distance.text);
                });
        });
});

这是我一直在努力的小提琴; http://jsfiddle.net/272tx3qy/8/ 我试图将输入框结果限制为仅限北卡罗来纳州罗利(仅限北卡罗来纳州罗利的街道和地址)

使用Google地图是否可以实现?

提前感谢您抽出宝贵时间。

1 个答案:

答案 0 :(得分:0)

您可以设置自动填充选项以使用地理编码作为类型,这将限制返回到地址的结果,请尝试以下操作:

function initialize() {
 var input = document.getElementById( 'searchTextField' );
 var options = {
    bounds: yourBounds,
    types: ['geocode']
 };
 autocomplete = new google.maps.places.Autocomplete( input, options );
}