Android GoogleMaps GroundOverlay Padding - PullRequest
       68

Android GoogleMaps GroundOverlay Padding

2 голосов
/ 07 февраля 2020

Этот пост очень похож на Этот , который в настоящее время не имеет решения (3 года)

Основная проблема заключается в том, что GoogleMaps, похоже, добавляет ненужное количество отступов. вокруг моего изображения наложения на землю это не имеет смысла для меня, так как границы установлены на том же значении, что и наложение на земле.

@Override
public void onMapReady(GoogleMap googleMap) {

    final LatLngBounds NewarkBounds = new LatLngBounds(
            new LatLng(FILL, -FILL),
            new LatLng(FILL, -FILL)
    );

    mMap = googleMap;
    mMap.getUiSettings().setMapToolbarEnabled(false);
    mMap.getUiSettings().setZoomGesturesEnabled(false);
    mMap.getUiSettings().setMyLocationButtonEnabled(false);

    LatLng myPosition = new LatLng(latitude,longitude);


    GroundOverlayOptions newarkMap = new GroundOverlayOptions()
            .image(BitmapDescriptorFactory.fromResource(R.drawable.maptest))
            .positionFromBounds(NewarkBounds)
            .visible(true);

    mMap.addGroundOverlay(newarkMap);



    if((myPosition.latitude <= FILL&& myPosition.latitude >=FILL) && (myPosition.longitude >= -FILL&& myPosition.longitude <= -FILL)){
        mMap.setMyLocationEnabled(true);

    }
    else {
        mMap.setMyLocationEnabled(false);
    }

    mMap.setOnMyLocationButtonClickListener(this);
    mMap.setOnMyLocationClickListener(this);
    mMap.setMapType(0);


    /*
    int width = getResources().getDisplayMetrics().widthPixels;
    int height = getResources().getDisplayMetrics().heightPixels;
    int padding = (int) (width * 0.001); // offset from edges of the map 12% of screen

    CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(NewarkBounds, width, height, 0);
    mMap.animateCamera(cu);
    mMap.setPadding(0,0,0,0);
    mMap.setLatLngBoundsForCameraTarget(NewarkBounds);
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(NewarkBounds.getCenter(), 17));
    // Set the camera to the greatest possible zoom level that includes the bounds

    */

    mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
        @Override
        public void onMapLoaded() {
            // Set the camera to the greatest possible zoom level that includes the bounds
            mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(NewarkBounds, 0));
            //Centering the camera within bounds:
            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(NewarkBounds.getCenter(), 17));
            //Restricting the user's scrolling and panning within bounds:
            mMap.setLatLngBoundsForCameraTarget(NewarkBounds);
        }
    });
}

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

enter image description here

Это то, чего я хочу достичь

enter image description here

Буду признателен за любые мысли по этому вопросу, так как это сводит меня с ума. Спасибо!

...