Эй там, у меня есть проблемы/ошибка при попытке иметь 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, сафари не попробовали оперу.
Я не думаю, что эти два 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&v=2&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>