2010-12-16 2 views
1

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

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

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); 
} 

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

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

+0

фиксированной ваш блок – Hamish 2010-12-16 00:32:08

+1

кода я имел эту проблему, используя стандартную Embeded карты, когда родительский DIV является скрытый. Маркер всегда находился за пределами окна просмотра. Мне пришлось загрузить карту после показа div. – Keyo 2010-12-16 00:35:47

ответ

1

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

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

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

var infowindow = new google.maps.InfoWindow({ 
    content: contentString, 
    disableAutoPan: false 
}); 
Смежные вопросы