Ответ 1
Предполагая, что вы используете v3 API, вы можете использовать метод fitBounds
следующим образом:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps fitBounds</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: 350px;"></div>
<script type="text/javascript">
var myOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP };
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': 'US'}, function (results, status) {
var ne = results[0].geometry.viewport.getNorthEast();
var sw = results[0].geometry.viewport.getSouthWest();
map.fitBounds(results[0].geometry.viewport);
});
</script>
</body>
</html>
Скриншот:
В приведенном выше примере я получаю окно просмотра в США по геокодированию. Тем не менее, вы также можете создать объект LatLngBounds
, пройдя пункты с северо-востока и юго-запада, а метод fitBounds
будет масштабировать и скопируйте свою карту таким образом, чтобы она поместилась на холсте карты.