Google Map v3 не центрируется - PullRequest
1 голос
/ 16 декабря 2010

Кто-нибудь знает, есть ли способ указать размер карты Google независимо от ее контейнера div? Причина, по которой я спрашиваю, состоит в том, что моя карта не центрируется точно в точке широты. Я загружаю карту на свою страницу в фрейме, который имеет ширину и высоту (400 х 200). в кадре, который я загружаю, карта Google также находится в пределах размера div (400 x 200). Но каждый раз он немного смещен от центра.

мой код выглядит следующим образом

function initializeMap(latVal, lngVal, titleStr, merchantName) {
var latlng = new google.maps.LatLng(latVal, lngVal);
var myOptions = {
        zoom: 15,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
};  

var contentString = '<span style="font-size:12pt;">' + merchantName + '</span><span style="font-size:10pt;">' + titleStr + '</span>';
var infowindow = new google.maps.InfoWindow({
    content: contentString
});
var marker = new google.maps.Marker({
    position: latlng,
    title:titleStr
});
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
});
// To add the marker to the map, call setMap();
marker.setMap(map);
}

Я использую v3 API-интерфейса Google Maps и просто искал несколько указателей на то, как я могу правильно центрировать свою карту. Как уже упоминалось, вышеупомянутый скрипт (и div map_canvas) загружается на мою главную страницу в iframe.

Большое спасибо за вашу помощь

1 Ответ

1 голос
/ 16 декабря 2010

Если я правильно прочитал ваш скрипт, вы инициализируете карту, добавляете маркер и затем открываете информационное окно маркера.Обратите внимание на документацию для InfoWindowOptions:

По умолчанию информационное окно будет панорамировать карту, чтобы она была полностью видна при открытии.

Установите свойство disableAutoPan в значение false при создании окна InfoWindow, чтобы предотвратить его изменение положения карты:

var infowindow = new google.maps.InfoWindow({
    content: contentString,
    disableAutoPan: false
});
...