私はいくつかのマーカーを表示するためにOnMapReadyCallbackを実装しています。 私は基本的に呼び出すことにより、地図上に近い見てみたいターゲット都市を提供マップを開く前に:GoogleMapsでさまざまな都市の適切なズームレベルを取得する
LatLng currentCity = new LatLng(cityLat,cityLng)
CameraUpdate location = CameraUpdateFactory.newLatLngZoom(currentCity,13);
googleMap.animateCamera(location);
ここでの主な問題は、ズームレベルが正常に動作だけで、任意の数であるということですいくつかの都市では他の人には悪い(ズームインし過ぎ、ズームインしていない)。 私が達成したいのは、Googleマップと同じように都市に応じてズームレベルを動的に決定することです。
私は大きな都市のビューポートがある、小さなズームをする必要がありますが、私は与えられた都市のビューポートを取得する方法を見つけることができないし、それに応じて
をズームレベルを変更することを知っています編集:私は
List<Address> addresses = mGeocoder.getFromLocation(Lat,Lon,maxLimit);
を使用して、都市の緯度と経度を使用してアドレスのリストを取得するためにジオコーダを使用してのことを考えて、その都市のためのavaible最も外側の住所がを見つけるために、このリストを反復処理、順番にされましたsetLatLngBoundsForCameraTarget()メソッドで渡すLatLngBoundsを構築します。 このアプローチの主な問題は、「maxLimit」は任意であり、大都市にとっては非常に大きく、最終的には本当に大きなリストを返す必要があることです。
私は良い長期的な解決策は都市を含むプロパティファイルと各都市に必要なズームレベルを使用することだと思います。各都市に必要なズームレベルは時間の経過とともに変化する可能性があることに注意してください。 –
ええ、私は同じと思ったが、私はデータベース内の各都市を支配していない。私が何を意味するかは、ユーザーがリストに載っていない本当に小さな都市にマーカーを追加することができるということです.JS APIがこの問題を解決するためのいくつかの興味深い機能を提供していますが、Javascriptのレベルは最高と言えば普通です –
Upvoted 。私は今でもAndroid上の地図を使って作業しています。しかし、私は都市の小さなリストを扱っているだけなので、単一の値をハードコーディングして取り除くことができます。 –