特定の座標リストの中央値を決定し、GoogleMap のカメラのズーム レベルを設定する必要がある状況に遭遇しました (マップの読み込み時にすべての座標が単一のビューに表示されるように、ユーザーはマップをズームする必要はありません)。 )。
以下のアプローチに従って、特定の座標の中央値を決定しました。
Convert lat/lon to Cartesian coordinates for each location.
X = cos(lat) * cos(lon)
Y = cos(lat) * sin(lon)
Z = sin(lat)
Compute average x, y and z coordinates.
x = (x1 + x2 + ... + xn) / n
y = (y1 + y2 + ... + yn) / n
z = (z1 + z2 + ... + zn) / n
Convert average x, y, z coordinate to latitude and longitude.
Lon = atan2(y, x)
Hyp = sqrt(x * x + y * y)
Lat = atan2(z, hyp)
ここで、Google マップのカメラのズーム値を設定して、すべての座標が 1 つのビューでカバーされるようにします。
例えば :
座標のリストがフロリダだけでなくカリフォルニアにも存在すると判断された場合、Google マップをロードして米国全体を表示する必要があります。
座標のリストがカリフォルニアとテキサスの間に存在すると判断された場合、GoogleMap のズーム値を設定すると、USA マップのその部分のみが表示されます。
これを Android アプリケーションと iOS で実装しています。
どうすればこれを達成できるか教えてください。