v2 и v3 Google Maps API могут сосуществовать на той же странице?

Эй там, у меня есть проблемы/ошибка при попытке иметь v3 и карты v2 google на странице одновременно.

Ядро нашего приложения использует v2 API и добавляющий некоторую новую функциональность, мы решили использовать v3 API, так как v2 удерживается от использования. Таким образом, я динамично загружаю v3 версию API на другой "вкладке" на приложении.

Проблема состоит в том, если Вы нажимаете на карту v3 и затем нажимаете на карту v2, карта v2 запускается после курсора мыши вокруг, как будто Вы нажали, чтобы начать перетаскивать, но никогда не отпускали кнопку мыши. И в основном ошибки, пока Вы не перезагружаете страницу

Вот пример с простыми инструкциями относительно того, как копировать http://jsbin.com/googlemapv3v2/1

Странная вещь состоит в том, если Вы нажимаете/играете вокруг картой v2 сначала затем, щелчок/игра вокруг с v3 отображается, все это работает приятно.

Таким образом, я попытался "обмануть" его путем увольнения пользовательского щелчка/событий mouseDown по карте v2, после того как v3 api загружается, см. http://jsbin.com/googlemapv3v2/2

Но никакая удача там, кто-либо получил какие-либо идеи?

Править: Должен отметить, это только, кажется, происходит в хроме, Firefox, сафари не попробовали оперу.

7
задан Daniel Vassallo 19 July 2010 в 23:23
поделиться

1 ответ

Я не думаю, что эти два API должны сосуществовать на одной странице. Я пробовал очень простой пример, у которого та же проблема, что и у вас. Проверено в Chrome 5.0 и Firefox 3.6.6 (оба для Mac):

<!DOCTYPE html>
<html> 
<head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  <title>Google Maps v2 and v3 on same page</title> 
  <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false"
          type="text/javascript"></script>
  <script src="http://maps.google.com/maps/api/js?sensor=false" 
          type="text/javascript"></script>
</head> 
<body> 
  <div id="map_v3" style="width: 500px; height: 400px;"></div>
  <div id="map_v2" style="width: 500px; height: 400px; margin-top: 50px;"></div>

  <script type="text/javascript">

    var map3 = new google.maps.Map(document.getElementById('map_v3'), {
      zoom: 6,
      center: new google.maps.LatLng(-41.00, 174.00),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var map2 =  new GMap2(document.getElementById('map_v2'));
    map2.addControl(new GLargeMapControl3D());
    map2.setCenter(new GLatLng(-41.00, 174.00), 6);
  </script>

</body>
</html>
2
ответ дан 7 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: