ユーザーのクエリに基づいて MapView にピンをプロットするマッピング アプリに取り組んでいます。すべての結果ピンに合うようにマップを拡大縮小しようとしていますが、一見奇妙な状況に遭遇しました。
2 つの変数を設定しています。
latSpan は、任意の結果ポイントの最大緯度と最小緯度の差です
lonSpan は、任意の結果ポイントの最大経度と最小経度の差です
この方法
while ((mapView.getLatitudeSpan()) < latSpan) || (mapView.getLongitudeSpan() < lonSpan)){
mapController.zoomOut();
}//end of while loop
すべてのピンが表示可能なマップ画面に収まるようにズームアウトすることになっています。
しかし、私はかなり奇妙なことを経験しています。mapView.getLatitudeSpan() と mapView.getLongitudeSpan() の結果は、私の latSpan と lonSpan の値より常に大きいため、MapController は十分にズームアウトしません。
私のマップはかなり拡大されています - レベル 15 以上です。
例として、ある一連の検索結果から次の値が得られました。
latSpan = 17928
ロンスパン = 11636
mapView.getLatitudeSpan() = 21933
mapView.getLongitudeSpan() = 20598
これらの数値に基づくと、MapController をズームアウトする必要はないと考えられます。それでも、画面の上部と下部の両方にピンがプロットされています。WILE ループを read に変更しました
while ((mapView.getLatitudeSpan() - 6000) < latSpan...
それは役に立ちますが、正しいクエリでも問題が発生します。
しかし、本当の問題は、なぜこれが起こっているのかということです。