Отзывчивый Gmap с всегда правильным уровнем масштабирования в определенной области

0

Я пытаюсь получить отзывчивую карту 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/

  • 0
    Эта книга ответит на многие ваши вопросы: barnesandnoble.com/listing/… -Book_25To44- -Q000000633 -_- 2680647336892
  • 0
    Вы имеете в виду, что хотите такие же границы? Если это так, то map.getBounds() и map.setBounds() - это методы вашего друга.
Теги:

1 ответ

0

Поскольку я думаю, что вы хотите, чтобы пользователи видели одну и ту же карту независимо от размера экрана, используйте map.getBounds() чтобы получить границы и map.fitBounds(LatLngBounds) чтобы установить границы.

https://developers.google.com/maps/documentation/javascript/reference#Autocomplete

  • 0
    если вы проверите jfiddle, который я предоставил, вы увидите, что если мы изменим экран, карта будет отзывчивой, она будет центрирована, но уровень масштабирования будет изменяться только в соответствии с хаком, который я предоставляю при проверке ширины окна. Я мог бы нарисовать прямоугольник, чтобы определить область, которой я всегда хочу быть в области просмотра, и когда мы изменим размер окна, масштаб будет изменяться в соответствии с прямоугольником, который я сказал ему показать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню