2016-04-22 67 views
1

我处于这种情况,我需要将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/ 我想输入框结果限制在北卡罗来纳州罗利只(仅在罗利的街道和地址,NC)

有什么事情可能实现使用谷歌地图?

在此先感谢您抽出时间。

回答

0

您可以设置自动完成选项使用地理编码的类型,这将限制返回到地址的结果,试试这个:

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