0

I want to show the streetview and map from a random location. but I have a problem. it doesn't work. The map does not have any coordinates and the streetview shows a black screen. I referred to https://developers.google.com/maps/documentation/android-sdk/streetview?hl=ko. please give me an answer.

public class MapActivity extends AppCompatActivity implements GoogleMap.OnMarkerDragListener,OnStreetViewPanoramaReadyCallback, StreetViewPanorama.OnStreetViewPanoramaChangeListener {
private static final String MARKER_POSITION_KEY ="MarkerPosition";
double lat = (Math.random() *(85*2) ) - 85;
double lng = (Math.random() *(180*2)) - 180;
private LatLng random = new LatLng(-33.57365,151.20689);

private StreetViewPanorama mStreetViewPanorama;

private Marker mMarker;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
  final LatLng markerPosition;
    if(savedInstanceState ==null){
        markerPosition= random;
    }else {
        markerPosition = savedInstanceState.getParcelable(MARKER_POSITION_KEY);
    }


    SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
            (SupportStreetViewPanoramaFragment)getSupportFragmentManager().
                    findFragmentById(R.id.streetviewpanorama);
    streetViewPanoramaFragment.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
        @Override
        public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
            mStreetViewPanorama = streetViewPanorama;
            mStreetViewPanorama.setOnStreetViewPanoramaChangeListener(
                    MapActivity.this);
            if(savedInstanceState == null){
                mStreetViewPanorama.setPosition(random);
            }

        }
    });
    SupportMapFragment mapFragment=
            (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
    mapFragment.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
            googleMap.setOnMarkerDragListener(MapActivity.this);
            mMarker = googleMap.addMarker(new MarkerOptions()
            .position(random)
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.pegman))
            .draggable(true));
        }
    });
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putParcelable(MARKER_POSITION_KEY,mMarker.getPosition());
}

@Override
public void onMarkerDragEnd(Marker marker) {
    mStreetViewPanorama.setPosition(marker.getPosition(),150);
}

@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
    if (streetViewPanoramaLocation != null) {
        mMarker.setPosition(streetViewPanoramaLocation.position);
    }
}
}
  • To make your question more succesful you could consider making your question-title more explicit. You might also like to take a look at https://stackoverflow.com/help/how-to-ask to improve your question. – Florian Neumann Jun 26 '18 at 08:09
  • Take a look at [this](https://stackoverflow.com/questions/36444274/check-if-google-streetview-location-exists-or-not-to-hide-a-view) question and answer. – Andrii Omelchenko Jun 26 '18 at 11:32
  • Random coordinate maybe somewhere in the region where street view is not available. What you expect for these coordinates? – xomena Jun 28 '18 at 10:50

0 Answers0