私はしばらくの間、GoogleマップAPI 10を使用しています.99.9%がGoogleライブラリ内にあると確信しているため、修正できないバグがあります。
私は.toPixels()
ものを描くために多くのプロジェクションを行い、すべてうまくいきます。カスタムズーム方法mapController.setZoom(getZoom() +1)
でズームしますが、ピンチズーム(2本指ズーム)を使用するまではすべて機能します。その後、投影は特定のズーム レベル内で動かなくなったようです。
ズームを 12 から 11 にピンチすると、マップに 11 が表示されますgetZoomLevel()
(常に適切なレベルが報告されます)。ここで、zoomOut メソッドを使用するとレベル 13 になり、投影はレベル 13 で問題なく計算されますが、その後の zoomOut はすべて、マップのズーム レベルを変更するだけです (内部的には、デバイスにはインターネットがないため、マップ データがないことに注意してください)。投影は、ズームレベル 13 のままであるかのようにすべてを計算し続けます!
ズームインすると、マップの実際のレベルに関係なく、投影が突然レベル 11 にジャンプします。したがって、12 にピンチ ズームすると、投影は 11/13 でスタックし、ズーム アウト/インした場合にのみ、これら 2 つの間でジャンプします。
もう一度ピンチズームすると、投影は更新されますが、ピンチズームした新しいレベルで再びスタックします。
したがって、インターネットなしでピンチ ズームすると、投影が完全に無効になり、マップ全体が役に立たなくなります (私の場合、視覚的なマップは必要ありません。geoPoint の変換が必要なだけです。これが最も重要な部分です)。
オンタッチで複数のポインターを無効にする以外に、ホットフィックス/回避策または何かを知っている人はいますか?
私のcustomMapViewのコンストラクターにあるものをマップする
setVisibility(View.VISIBLE);
mapController = getController();
mapController.setZoom(17);
setBuiltInZoomControls(false);
getZoomButtonsController().setVisible(false);
setSatellite(false);
setTraffic(false);
setClickable(true);
preLoad();
それがカスタムボタンでズームする方法です
mapController.setZoom(getZoomLevel() + 1); // zoom in
mapController.setZoom(getZoomLevel() - 1); // zoom out
1) ズーム ボタンが機能する
2) ピンチ ズーム アウト
3) これで、ボタン/ボタンによるズームが上記の動作を示します
追加情報:
アプリ「myTracks」と「Torque」を使用しました。
どちらもグーグルマップを使用しています。
両方で私はトラックを録音しました。
ここで、インターネットを無効にして 2 本指ズームを使用し、その後通常のボタンでズームイン/ズームアウトすると、トラックが完全に中央に配置されていても、ある時点でトラックが特定の方向にずれてしまいます。何度もズームアウト/ズームインした後、トラックがなくなるポイントまで。
2番目にインターネットを再アクティブ化し、マップはいくつかのタイルをロードできます。次のズームは機能しており、すべて問題ありません...マップは投影内で何かを計算するためにインターネットからのデータを必要とするようで、この何かが提供されているようです2本指ズームで・・・そう見えます。
3 つのアプリ、すべて同じ問題...