2007年6月19日火曜日

Google maps API panToの不審な動作

どうも、地図の表示中心位置を移動するpanToメソッドの動きがおかしいような気がする。

画面内に指定座標がある場合は、アニメーションして移動する。動作はO.K.
完全に画面外というか、遥かに?離れている場合は、再描画する。動作はO.K.

で、指定座標が、画面からちょっと外れた位置にあるような場合、mapは表示領域より大きな領域をクライアント側にバッファしてあるようなのだが、ここからの移動がN.G.

中心点まで移動してくれない。移動量の計算の時に、バッファ分を計算処理に誤りがあるのかもしれない。で、苦し紛れに書いた強引に移動するルーチンが下記。

 map.panTo(target);
  adjust = new GLatLng(target.lat(), target.lng());

  var pCenter = new map.getCenter();
  if(pCenter != adjust){
   window.setTimeout(function() {
    map.panTo(adjust);
   }, 10);
  }
  map.panTo(target);

もしかしたら、ドキュメントをきちんと読めば、何か書いてあるのかもしれないけど、力技で真ん中にもって来ました(^^;

0 件のコメント: