2つのGPS座標に沿ってマーカーをスムーズに移動


10

あるGPS座標から別のGPS座標にマーカーをアニメーション化しようとしています。私は現在これを達成するためにGoogleマップを使用しており、私のアルゴリズムは正しいように見えますが、GoogleマップはGPS位置をマップ上の正しいピクセルに変換するのがうまくいっていないため、マップがズームアウトされたときにアニメーションがスムーズになりません。ズームインすると、非常にスムーズで、GoogleがLatLng-> pixel変換を不適切に実行していることが原因で「ジグザグ」が発生したのではないかと思います。

最良の解決策は、マーカー(x、y)ピクセル座標を直接処理することですが、残念ながら、マーカーにピクセル位置を割り当てるためのパブリックメソッドはありません。

コードはこちらから入手できます:http : //dev.syskall.com/map/

ズームアウトしたときにアニメーションをどのようにスムーズにしますか?あるいは、Googleマップでは実現できない場合に、私がやろうとしていることを達成できるGoogleマップの同等物を使用することに興味があります。

PS:これが私の質問をするのに適切な場所かどうかはわかりませんが、そうでない場合はお知らせください。

回答:



2

marker-animate-unobtrusiveライブラリを使用して、マーカーをある場所から別の場所にスムーズに移行できます。

あなたはそのようにあなたのマーカーを初期化することができます:

var marker = new SlidingMarker({
   //your original marker options
   //...
});

したがって、あなたのマーカーはこの呼び出しで開始位置から与えられた位置までアニメーションします:

marker.setPosition(givenPosition);

PS私は図書館の作者です。


あなたのライブラリには、アイコンをある角度に回転させる機能がありますか?最後の緯度に基づいて、次の緯度経度に移動していますか?
Tim Maxey

説明を参照してくださいここに。アニメーションの各ステップで発生するイベントがあり、座標を取得してマーカーを回転させることができます。
viskin 2016


1

次のアプローチも検討できます。

  • 場所ごとに2つの座標の間にマーカーコレクションを生成する
  • marker.setVisibility(value)関数を使用して特定のマーカーを切り替える

完全な例

JSFiddle

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.