あるポイントから別のポイントへのマーカーの動きをアニメーション化する小さなアルゴリズムを作成しました。アルゴリズムは擬似コードで次のようになります。
lat_delta = new_lat - old_lat;
lng_delta = new_lng - old_lng;
for(alpha=0; alpha < 1; alpha += 0.1) {
lat = old_lat + (alpha * lat_delta);
lng = old_lng + (alpha * lng_delta);
update_marker(lat, lng);
}
完全なコードはhttp://dev.syskall.com/map/および http://dev.syskall.com/map/commute.jsで入手できます。
私が遭遇した問題は、マップをズームアウトすると、アニメーションが「ジグザグ」に見えることです。そうは言っても、ズームインすると、アニメーションははるかにスムーズになります。
私のアニメーションが緯度経度座標に基づいており、画面上のピクセルではないという事実が原因である可能性があります。ズームアウトすると、Google マップはそれほど正確ではなく、何らかの方法で緯度位置を丸める必要があります。
もちろん、現在の実装は、マップがズームインされているときは問題ありませんが、ズームアウトされているときはあまり良くありません。
この問題を回避する方法はありますか?