2013-06-28 5 views
0

Я создаю представление с картой google в нем, когда запускается определенный клик из события элемента li. Впервые карта отображается в порядке. И результат:Неверное отображение карты google

enter image description here http://postimg.org/image/eolnn0411/

, но когда я нажимаю на другой Li элемент, чтобы создать новую карту показано, как это:

enter image description here http://postimg.org/image/576um203l/

Я заметил странное поведение, что если я изменил размер окна браузера, карта превратится в режим ОК после в.

Я использую следующий код:

var latlng = new google.maps.LatLng(coordinates[0], coordinates[1]); 
var myOptions = { 
      zoom: 16, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

var map; 
map = new google.maps.Map(node, myOptions); 

var marker = new google.maps.Marker({ 
      map: map, 
      position: latlng 
     }); 

Edit: Похожие сообщения here и here.

Редактировать 2: Используя обходной путь использования setInterval(), работает иногда. Так кажется, что проблема заключается в том, что карта не готова к событию.

+0

Вы должны предоставить полный код, лучше всего положить его в пример jsfiddle live! – TMS

+0

Я использую набор инструментов dojo и имею некоторые проблемы, чтобы заставить его работать на jsfiddle ... – mluis

ответ

0

Попробуйте вызвать Google maps (v3) изменить размер события.

google.maps.event.trigger(map, 'resize'); 

Этот fiddle поможет вам найти разницу.

+0

У меня проблемы с изменением размера карты без использования jquery – mluis

+0

Я добавил эту строку кода, но не могу заставить ее работать , Или я не понимаю, как работает событие изменения размера. – mluis

+0

@mluis Я не пробовал Dojo, может ли это [сообщение] (http://lgrammel.blogspot.in/2009/05/google-map-in-dojo-floatingpane.html) помочь вам. – Praveen