调整大小时响应式偏移(panby).谷歌地图



我以前有一个类似的问题,但是由于id会导致死胡同,而且我已经发展了一种新的理解,所以我现在正处于不同的观点。我现在的问题是如何使用媒体查询和panby处理此问题,并具有一个偏移量,该偏移是通过每个尺寸的

新近计算的。

我使用此代码(更新):

var map;
function initialize() {
    var Name = {lat: XX, lng: XX};
    var marker = new google.maps.Marker({
        position: Name,
        map: map,
        title: 'Name!'
    });
    var mapOptions = {
        center: new google.maps.LatLng(XX, XX),
        zoom: 13,
        zoomControl: false,
        disableDoubleClickZoom: false,
        mapTypeControl: false,
        scaleControl: false,
        scrollwheel: false,
        panControl: false,
        streetViewControl: false,
        draggable: false,
        overviewMapControl: false,
        overviewMapControlOptions: {
            opened: false,
        },
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        styles: styleArray
    };
    map = new google.maps.Map(document.getElementById("map"),
        mapOptions);

        marker = new google.maps.Marker({
            icon: markericon,
            position: new google.maps.LatLng(locations[i][5], locations[i][6]),
            map: map,
            title: locations[i][0],
            desc: description,
            tel: telephone,
            email: email,
            web: web
        });
    }
    var mql = window.matchMedia(("(max-height: 750px)"));
    mql.addListener(new function(){
    if(window.matchMedia("(max-height: 750px)").matches){
    map.panBy(0, 150);
  }else {
    map.panBy(0, 250);
  }});
}
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);
});

感谢您的阅读!问候

我认为您不应该使用panby方法。相反,在事件侦听器中使用映射对象变量,您可以按照此线程指示操作。

最新更新