MapView があり、getController().zoomToSpan() を呼び出します。zoomToSpan() に関する私の問題は、ユーザーがズームアウトするためにピンチする必要なく選択できるように、マップ ピンの外側に一貫した (たとえば 15 dp) パディングが必要なことです。現在、マップ ピンの最小/最大の長さ/緯度を zoomToSpan() に入力しているため、端にあるピンはすぐに表示または選択できません。
固定長/緯度パディングの使用を検討しましたが、マップ ピンが互いに近すぎたり遠すぎたりしないという保証はありません。そのため、固定長/緯度パディングはほとんどの場合に機能しますが、すべての場合に機能するとは限りません。
これは私が現在 zoomToPan() を設定している方法です:
mapView.getController().zoomToSpan(MapPoint.convertToGeoPoint(Math.abs(fMinLat - fMaxLat)), MapPoint.convertToGeoPoint(Math.abs(fMinLong - fMaxLong)));
これは私が設定する方法についてのアイデアですが、実際に問題が解決するかどうか、またはそれを行うためのより良い方法があるかどうかはわかりません。
mapView.getController().zoomToSpan(MapPoint.convertToGeoPoint((float) (Math.abs(fMinLat-fMaxLat) + (Math.abs(fMaxLat - fMaxLat)) * 0.5)), MapPoint.convertToGeoPoint((float) (Math.abs(fMinLong-fMaxLong) + (Math.abs(fMinLong - fMaxLong) * 0.5))));
私はすでにこれらの質問をチェックアウトしましたが、それを機能させるポイントを過ぎています。洗練されたものにしたいだけです: zoomToSpan 実装の問題、およびmapView にある最小/最大緯度/経度に基づいて zoomToSpan() 度を計算します。