ОБНОВЛЕНИЕ: Этот ответ может быть не лучшим подходом. См. Комментарии ниже ответа для более подробной информации.
В дополнение к тому, что Пекка уже предложил , вы можете объединить ', UK'
с address
, как в следующем примере:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Geocoding only in UK Demo</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<div id="map" style="width: 400px; height: 300px"></div>
<script type="text/javascript">
var mapOptions = {
mapTypeId: google.maps.MapTypeId.TERRAIN,
center: new google.maps.LatLng(54.00, -3.00),
zoom: 5
};
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var geocoder = new google.maps.Geocoder();
var address = 'Boston';
geocoder.geocode({
'address': address + ', UK'
},
function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
new google.maps.Marker({
position:results[0].geometry.location,
map: map
});
}
});
</script>
</body>
</html>
Скриншот:
Я считаю, что это очень надежно. С другой стороны, следующий пример показывает, что ни параметр region
, ни параметр bounds
не оказывают никакого влияния в этом случае:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Geocoding only in UK Demo with Bounds</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<div id="map" style="width: 500px; height: 300px"></div>
<script type="text/javascript">
var mapOptions = {
mapTypeId: google.maps.MapTypeId.TERRAIN,
center: new google.maps.LatLng(50.00, -33.00),
zoom: 3
};
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var geocoder = new google.maps.Geocoder();
// Define north-east and south-west points of UK
var ne = new google.maps.LatLng(60.00, 3.00);
var sw = new google.maps.LatLng(49.00, -13.00);
// Define bounding box for drawing
var boundingBoxPoints = [
ne, new google.maps.LatLng(ne.lat(), sw.lng()),
sw, new google.maps.LatLng(sw.lat(), ne.lng()), ne
];
// Draw bounding box on map
new google.maps.Polyline({
path: boundingBoxPoints,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
map: map
});
// Geocode and place marker on map
geocoder.geocode({
'address': 'Boston',
'region': 'uk',
'bounds': new google.maps.LatLngBounds(sw, ne)
},
function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
new google.maps.Marker({
position:results[0].geometry.location,
map: map
});
}
});
</script>
</body>
</html>