Я плохо знаком с API карт Google. Я хотел бы предложения при достижении следующей функциональности: каждый раз, когда страница загружается, карта загрузится центрируемый по США. Вообразите поле по США с данным lat/longs определением минимальных и максимальных границ. Мне нужна карта для загрузки при соответствующем масштабировании (и масштабирование должно быть отключено), таким образом, что это поле составляет всю карту.
В основном я задаюсь вопросом, существует ли функция, которая загружает карту на основе lat/long границ (или некоторый способ достигнуть этого), скорее затем загружая карту, учитывая уровень масштабирования.
Предполагая, что вы используете API v3, вы можете использовать метод 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
самостоятельно, передав ему точки North East и South West, а метод fitBounds
изменит масштаб и панорамирование вашей карты так, чтобы она поместилась на холсте карты.
Ну, поскольку размер и форма США не меняются, часто вы можете вручную найти оптимальные настройки и использовать их.