Я пытаюсь получить отзывчивую карту Google и всегда иметь тот же уровень масштабирования, чтобы сосредоточиться на определенной области, когда мы изменяем размер или с разными разрешениями.
Я сейчас это делаю:
var map;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(40.5472,12.282715),
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addDomListener(window, "resize", function() {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
Это прекрасно, но когда мы изменяем размер окна, уровень масштабирования должен измениться, чтобы всегда фокусироваться на Med.
Чтобы попытаться решить эту проблему с масштабированием, я делаю взлом, но я не думаю, что это хорошо:
if($(window).width() > 1600) {
map.setZoom(6);
}
if($(window).width() < 1024) {
map.setZoom(5);
}
if($(window).width() < 800) {
map.setZoom(4);
}
Я читал о построении области, которую хочу всегда видеть, создавая LatLngBounds и вызываю map.fitBounds(), но я не понимаю. Мне очень помогли бы.
Вот это мой jsfiddle: http://jsfiddle.net/tVKMn/7/
Поскольку я думаю, что вы хотите, чтобы пользователи видели одну и ту же карту независимо от размера экрана, используйте map.getBounds()
чтобы получить границы и map.fitBounds(LatLngBounds)
чтобы установить границы.
https://developers.google.com/maps/documentation/javascript/reference#Autocomplete
map.getBounds()
иmap.setBounds()
- это методы вашего друга.