2016-04-21 55 views
0

我正在開發一個網站,我正在實施Gmap與設施。一切都很好,但現在我只是想自動完成限制到一個特定的國家。這是我的代碼..如何限制gmap搜索自動完成到有限國家

$(document).ready(function() { 
initialize_direction_map(); 
setDestination(); 
$("#start").autocomplete({ 
    source: function(request, response) { 
     geocoder.geocode({'address': request.term }, function(results, status) { 
      response($.map(results, function(item) { 
       return { 
        label: item.formatted_address, 
        value: item.formatted_address, 
        latitude: item.geometry.location.lat(), 
        longitude: item.geometry.location.lng() 
       } 
      })); 
     }) 
    }, 
    //This bit is executed upon selection of an address 
    select: function(event, ui) { 
     $("#s_latitude").val(ui.item.latitude); 
     $("#s_longitude").val(ui.item.longitude); 
     var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude); 
     map.setCenter(location); 
     map.setZoom(12); 
     var marker = new google.maps.Marker({ 
      position: location, 
      map: map 
     }); 
     document.getElementById('direction_box').style.display='block'; 
     calcRoute(); 
    } 
}); 

$("#end").autocomplete({ 
    //This bit uses the geocoder to fetch address values 
    source: function(request, response) { 

     geocoder.geocode({'address': request.term }, function(results, status) { 
      response($.map(results, function(item) { 
       return { 
        label: item.formatted_address, 
        value: item.formatted_address, 
        latitude: item.geometry.location.lat(), 
        longitude: item.geometry.location.lng() 
       } 
      })); 
     }) 
    }, 
    //This bit is executed upon selection of an address 
    select: function(event, ui) { 
     $("#e_latitude").val(ui.item.latitude); 
     $("#e_longitude").val(ui.item.longitude); 
     var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude); 

     calcRoute(); 
     $("table.adp-directions").css("width","300px"); 
    } 
    }); 
}); 

function initialize_direction_map(){ 
//MAP 
directionsDisplay = new google.maps.DirectionsRenderer(); 
var latlng = new google.maps.LatLng(20.5937,78.9629); 
var options = { 
    zoom: 5, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 

map = new google.maps.Map(document.getElementById('map-canvas'), options); 
directionsDisplay.setMap(map); 
    directionsDisplay.setPanel(document.getElementById('directions-panel')); 

//GEOCODER 
geocoder = new google.maps.Geocoder(); 
} 
+0

你仍然遇到這個問題? –

回答

1

您可以使用Google Maps JavaScript API Places庫。 Google Places JavaScript庫中的功能使您的應用程序能夠搜索包含在定義區域內的地點,例如地圖邊界或固定點。

下面是一個示例代碼如何按國家限制:

function initialize() { 

var options = { 
types: ['(cities)'], 
componentRestrictions: {country: "us"} 
}; 

var input = document.getElementById('searchTextField'); 
var autocomplete = new google.maps.places.Autocomplete(input, options); 
} 
相關問題