2013-07-21 1 views
0

Я пытаюсь открыть пользовательскую карту Google с помощью Shadowbox (адаптера jQuery). Мой код отлично работает в браузерах Webkit, но показывает пустое (черное) окно теневого окна в FF, IE и Opera. Вот мой код:Google Maps v2 в Shadowbox работает только в Webkit

//map 
$('.map').click(function() { 
    Shadowbox.open({ 
     player:  'html', 
     content: '', 
     height:  300, 
     width:  500, 
     options: { 
      onFinish: function(item) { 
       //create map 
       var body = document.getElementById(Shadowbox.playerId); 
       var map = new GMap2(body); 
       map.setCenter(new GLatLng(45.7311, 21.2320), 16); 

       //create icon 
       var marker_icon = new GIcon(G_DEFAULT_ICON); 
       marker_icon.iconSize = new GSize(35, 38); 
       marker_icon.iconAnchor = new GPoint(17, 30); 
       marker_icon.image = 'http://domain.com/images/map-marker.png'; 

       //add marker 

       var point = new GLatLng(45.7311, 21.2320); 
       map.addOverlay(new GMarker(point, {icon: marker_icon})); 

       //add some simple controls 
       map.addControl(new GSmallMapControl()); 
       map.addControl(new GMapTypeControl()); 
      } 
     } 
    }); 
}); 

//shadowbox 
Shadowbox.init(); 
+0

Почему Вы разрабатываете новые функциональные возможности в [устаревшее Google Maps API v2] (https://developers.google.com/maps/documentation/javascript/v2/reference)? Вероятно, лучше потратить свое время на разработку для v3. – geocodezip

+0

Поскольку это не новая функциональность, я унаследовал этот код от другого разработчика, и мне рассказали об этой проблеме. Я не хотел переносить код на новый API, если не нужен, но, вероятно, так или иначе :-) –

ответ

1

Пока я не выяснить причину, приведенный выше код не работает (это может быть просто потому, что это не рекомендуется), мигрирующий код в Maps API V3 решает эту проблему.

//map 
$('.map').click(function() { 
    Shadowbox.open({ 
     player:  'html', 
     content: '', 
     height:  300, 
     width:  500, 
     options: { 
      onFinish: function(item) { 
       //create map 
       var map = new google.maps.Map(document.getElementById(Shadowbox.playerId), { 
        center: new google.maps.LatLng(45.7311, 21.2320), 
        mapTypeId: google.maps.MapTypeId.ROADMAP, 
        zoom: 16 
       }); 

       //add marker 
       var marker = new google.maps.Marker({ 
        icon: 'http://domain.com/test/images/map-marker.png', 
        map: map, 
        position: new google.maps.LatLng(45.7311, 21.2320) 
       }); 
      } 
     } 
    }); 
});