Googleマップとオープンレイヤーの統合を進めています。私はthis example from documentation for openlayers 3に基づいて作業しました。オープンレイヤーでズームレベルを整数に制限する方法
私の問題は、change:resolution
イベントのol 3とol 4.4.2の動作のどこかが変更されたことです。以前は、このコード
view.on('change:resolution',() => {
console.log(view.getZoom())
})
はマウスホイールの回転ごとに一度と呼ばれ、(例えば)記録された:
5
をし、今ではこのような何か生成:だからとき
4.017277252772164
4.08563754449778
4.152661471658049
4.522609511830051
4.691606503462093
4.793368457643155
4.891103916717288
4.980192777999678
4.999621855713164
5
をI Googleマップとopenlayers(例のように)の間でズームを同期しようとすると、ズームごとにGoogleマップが点滅します。 Googleマップはズームの小数値をサポートしていないようです。
オープンソースのズーム値を整数に制限することも、回避することもできますか?
googleMap.setZoom
を呼び出すときにopenlayersのceil/floor値を使用しようとしましたが、ズーミングにも中央の位置が変更されてしまうため、不快な動作になることがあります。
あたり
私の問題を解決するためには表示されません。はい、ズームの最終的な値は整数ですが、それでもそれらの中間の部分を取得します。あなたは、ズーム後に欠けている –
使用 'map.on( 'moveend'、()=> { はconsole.log(map.getView()。getZoom()) })' は、解像度の変更にないため、エンドズームレベル間でアニメートしています。 –
私はopenlayersのアニメーションが終了した後にのみGoogleマップのズームアニメーションを開始することはできません、それは私が今持っているものがさらに奇妙に見えます –