Google Map V2 как настроить ZoomToSpan?
Как название, на карте v1 я мог бы использовать
mapController.zoomToSpan(..., ..., ...);
чтобы включить все маркеры на экран.
Дозовая карта V2 имеет тот же метод?
2013/2/22 изменить:
сначала получите все точки LatLng, которые вы хотите включить на экран.
Предположим, что у вас есть 3 точки LatLng, используйте
LatLngBounds bounds = new LatLngBounds.Builder().include(point1)
.include(point2).include(point3).build();
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50));
Ответы
Ответ 1
Попробуйте
map.addMarker(new MarkerOptions().position(latlng)).setVisible(true);
// Move the camera instantly to location with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);
Ответ 2
Я надеюсь, что это будет полезно для вас.
public class GoogleMapActivity extends FragmentActivity {
private GoogleMap map;
Bundle extras;
LatLng latlng;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.google);
extras = getIntent().getExtras();
if (extras != null) {
unit_long = extras.getString("unit_long");
unit_lat = extras.getString("unit_lat");
}
latlng = new LatLng(Double.parseDouble("19.25252"),
Double.parseDouble("23.25252525"));
map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(latlng)
.title("Location").snippet("I am here")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15));
// Zoom in, animating the camera.use this line in your code
map.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);
// map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
}
Ответ 3
map V2
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
GoogleMap map = ((SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
if (map != null) {
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(12), 2000, null);
}
}
вы можете изменить значение 12, то есть уровень масштабирования загрузки карты.
Получайте удовольствие!
Ответ 4
Способы использования Google карты V2 могут делать те же самые вещи:
static CameraUpdate newLatLngBounds(LatLngBounds bounds, int padding)
Возвращает CameraUpdate, который преобразует камеру таким образом, что заданные границы широты/долготы центрируются на экране при максимально возможном уровне масштабирования.
static CameraUpdate newLatLngBounds(LatLngBounds bounds, int width, int height, int padding)
Возвращает CameraUpdate, который преобразует камеру таким образом, что заданные границы широты/долготы центрируются на экране в ограничивающей рамке заданных размеров с максимально возможным уровнем масштабирования.
static CameraUpdate newLatLngZoom(LatLng latLng, float zoom)
Возвращает CameraUpdate, который перемещает центр экрана на широту и долготу, заданные объектом LatLng, и перемещается к заданному уровню масштабирования.
Вот пример использования одного из них:
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(geoPoint, zoom));