Auto Zoom mapView на основе двух разных координат

Я могу отображать маркеры на картах Google, когда они находятся рядом друг с другом, но когда расстояние между ними велико, я могу видеть только один широту.

Вот мой код

   public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    LatLng google_api_lat_lon = new LatLng(lat, lon);
    float zoomLevel = 16.0f;
    Marker markerAPILocation = mMap.addMarker(new MarkerOptions().position(google_api_lat_lon).title(title).icon(BitmapDescriptorFactory.fromResource(R.drawable.saved_locaitons)));
    markerAPILocation.showInfoWindow();
    mMap.setMyLocationEnabled(true);
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(google_api_lat_lon, zoomLevel));
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        // TODO: Consider calling
        //    ActivityCompat#requestPermissions
        // here to request the missing permissions, and then overriding
        //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
        //                                          int[] grantResults)
        // to handle the case where the user grants the permission. See the documentation
        // for ActivityCompat#requestPermissions for more details.
        return;
    }
    //  mMap.setMyLocationEnabled(true);
    mMap.getUiSettings().setMapToolbarEnabled(false);
    mMap.getUiSettings().setZoomControlsEnabled(true);
    mMap.getUiSettings().setScrollGesturesEnabled(false);
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(google_api_lat_lon, zoomLevel));
}

Мне нужно показать две координаты на карте, это может быть достигнуто только путем регулировки уровня масштабирования в зависимости от расстояния. Я пробовал приведенный выше код, но он не работает для меня.

1 ответ

Я решил это, просто добавив,

   LatLngBounds.Builder builder = new LatLngBounds.Builder();
    builder.include(google_api_lat_lon);
    builder.include(current_lat_lon);
    LatLngBounds bounds = builder.build();
    mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 10));
Другие вопросы по тегам