7

嘿,我有一个问题/错误,当试图在页面上同时有一个V3和V2谷歌地图。v2和v3 Google Maps API可以在同一页面上共存吗?

我们的应用程序的核心使用API​​的V2和增加了一些新功能,我们决定自V2不赞成使用API​​的V3。所以我在应用程序的另一个“选项卡”中动态加载a3的v3版本。

的问题是,如果你点击V3地图,然后点击V2映射V2地图开始围着一圈鼠标光标,如果你已经点击开始拖动,但从来没有释放鼠标按钮。基本上虫子,直到你重新载入页面

这里有一个例子,对如何复制简单的指令 http://jsbin.com/googlemapv3v2/1

奇怪的是,如果你点击/玩的V2地图第一,然后单击/玩与v3地图它都很好地工作。

所以我试着用V2地图上烧制定义点击/鼠标按下事件一旦V3 API载入“欺骗”它看到http://jsbin.com/googlemapv3v2/2

但没有运气,任何人有什么想法?

编辑:应该注意,它似乎只发生在铬,火狐,Safari浏览器还没有试过的歌剧。

+0

如果您将地图向右对齐,则看起来您正在拖动一张适合两个div的地图。 – 2010-07-19 23:27:57

回答

2

我不认为这两个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> 
+0

奇怪的是,如果您先与v2地图交互,它们会共存。 – Okeydoke 2010-07-19 03:06:09

+0

是的,注意到:) – 2010-07-19 03:20:47

+4

我是悉尼谷歌开发者大会,并问了一个Google员工这个问题。我可以确认它们不是设计为存在于同一页面上。 – RedBlueThing 2010-07-19 06:14:15

相关问题