2016-04-22 2 views
1

Я в ситуации, когда мне нужно ограничить автозаполнение Google Maps конкретными результатами города.Автозаполнение Google Maps в пределах города

$(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/ Я пытаюсь ограничить результаты поля ввода в Raleigh, NC только (только улица и адрес в Raleigh, NC)

Является ли это что-то можно добиться с помощью Карт Google?

Заранее благодарим за то, что нашли время.

ответ

0

Вы можете настроить параметры автозаполнения использовать геокод как тип, который ограничит результаты, которые возвращаются к адресам, Попробуйте это:

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