2

I have encountered a strange issue with the Google Maps Javascript API. When using the method fitBounds(), webkit browsers are animating the pan and zoom when zooming between certain zoom levels. This is nice, but when using an "Overlay Map Type", the original map tiles aren't displayed sometimes. I haven't been able to recreate this on smaller monitors, so I think it is related to large map canvases.

I have made a simple example page which is pretty much copied from the API documentation. In order to recreate the problem:

1) Open http://pastehtml.com/view/cqloxyo5v.html in Chrome (on either Mac or Windows) with a large monitor and make sure the window is maximized. I am using 24".

2) Press the "Click me!" button in the bottom left corner which triggers the fitBounds()-method with two coordinates that are outside the map scope.

3) The map will animate to fit the coordinates and some map tiles will become empty. If there was no animation, your browser window was probably too small. If it did animate but the tiles look ok, update the page and try it a few times again. It seems to happen sporadically.

This is what it looks like for me: https://vimeo.com/58366640

Has someone encountered something similar? Is there any way to disable the animation?

Thank you in advance!

4

3 に答える 3

0

これは既知の問題であり、アニメーションを無効にするオプションを提供するための多くの要求があります。

ビデオに示されているような動作には気づきませんでしたが、私にとってズームアニメーションは、非常に高いズームレベルと非常に低いズームレベルを切り替えるときに非常に見苦しいプロセスです。

それがあなたの場合のオプションであるかどうか、そしてそれが問題を解決するかどうかはわかりませんが、Googleマップでのアニメーションを回避できるOpenLayersで可能な回避策を見つけました。それらは単に完全なマップコンテナを非表示にし、プロセスが終了したときにコンテナを表示します。

あなたの場合、これは次のようになります。

  $().ready(function() {
      $("#clickButton").click(function() {
        var bounds = new google.maps.LatLngBounds();
        bounds.extend(new google.maps.LatLng(49.0, 2.55));
        bounds.extend(new google.maps.LatLng(35.55, 139.78));
        var mapDiv=map.getDiv();
        map.fitBounds(bounds);
        google.maps.event.addListenerOnce(map,'tilesloaded',
                                          function(){mapDiv.style.visibility=''});
        mapDiv.style.visibility="hidden";
      });
  });
于 2013-01-28T20:22:14.167 に答える
0

別の再現リンク: http://tinyurl.com/baqvppr

Chromeのバグのようです。何らかの理由で Chrome の GPU メモリが不足しています。ここでこの問題に投票できます: https://code.google.com/p/chromium/issues/detail?id=175549

ここに画像の説明を入力

于 2013-02-13T13:21:37.580 に答える