7

マップを可能な限りズームインしながら、すべてのマーカーを同時に画面に表示する方法はありますか? 不均一な形状のマーカーが 6 つあります。私は彼らの中心を取り、そこに地図を配置することを考えていましたが、それでもプログラムで地図をどこまでズームできるかわかりません。

これらのマーカーは、マップが作成されるたびに位置が変わります。理想的には、マップをズームインしてすべてがビューに含まれるようにするスクリプトが必要です。

それでわかります。次の行をループして、json から一度に 1 つずつマーカーを作成しています。

mMap.addMarker(new MarkerOptions().position(new LatLng(lat,lng)).title(c.getString("title")));
4

2 に答える 2

24

(おそらく) すべてのプログラムによるマップ移動を行うには、CameraUpdate クラスを使用する必要があります。

これを行うには、まず次のようにすべてのマーカーの境界を計算します。

LatLngBounds.Builder builder = new LatLngBounds.Builder();
for each (Marker m : markers) {
    builder.include(m.getPosition());
}

LatLngBounds bounds = builder.build();

次に、ファクトリを使用して移動記述オブジェクトを取得します: CameraUpdateFactory:

int padding = 0; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);

最後にマップを移動します。

googleMap.moveCamera(cu);

または、アニメーションが必要な場合:

googleMap.animateCamera(cu);

*別の投稿から取得:すべてのマーカーを表示するための Android マップ v2 ズーム

于 2013-07-12T11:33:55.137 に答える
1

あなたはこれを見たいかもしれません:

https://developers.google.com/maps/documentation/android/views#changeing_camera_position

于 2013-07-12T11:33:55.950 に答える