Question

i am developing an android apps which need to show street view, and i decide to use google street view api. But when i call for the street view function, it will exchange into the "google street view app" but not inside my app...

is it possible to show street view inside my apps?

Was it helpful?

Solution 2

As mentioned,

You cannot embed streetview in your own app using Google Maps Android API v2.

Google street view api: Street view in app.

OTHER TIPS

I don't think there is an api yet. however you can use the web version simply by embedding it in the web browser(WebView) in your app. it is your best choice at the moment.

yeah! its possible I'm also developing an app based on google street view and distance API.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.ronak.justforclone.MapsActivity" >


<LinearLayout
    android:id="@+id/map_container2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.5"
    android:orientation="vertical">

    <fragment
        android:id="@+id/streetviewpanorama"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
                   class="com.google.android.gms.maps.SupportStreetViewPanoramaFragment" />

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        class="com.google.android.gms.maps.SupportMapFragment"
        map:cameraTargetLat="-33.87365"
        map:cameraTargetLng="151.20689"
        map:cameraZoom="15" />
</LinearLayout>

By this u can make layout and for java

 public class MapsActivity extends AppCompatActivity implements GoogleMap.OnMarkerDragListener, StreetViewPanorama.OnStreetViewPanoramaChangeListener {

private static final String MARKER_POSITION_KEY = "MarkerPosition";

// George St, Sydney
private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);

private StreetViewPanorama mStreetViewPanorama;

private Marker mMarker;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);

    final LatLng markerPosition;
    if (savedInstanceState == null) {
        markerPosition = SYDNEY;
    } else {
        markerPosition =     savedInstanceState.getParcelable(MARKER_POSITION_KEY);
    }

    SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
            (SupportStreetViewPanoramaFragment)
                    getSupportFragmentManager().findFragmentById(R.id.streetviewpanorama);
    streetViewPanoramaFragment.getStreetViewPanoramaAsync(
            new OnStreetViewPanoramaReadyCallback() {
                @Override
                public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
                    mStreetViewPanorama = panorama;
                       mStreetViewPanorama.setOnStreetViewPanoramaChangeListener(
                            MapsActivity.this);
                    // Only need to set the position once as the streetview fragment will maintain
                    // its state.
                    if (savedInstanceState == null) {
                        mStreetViewPanorama.setPosition(SYDNEY);
                    }
                }
            });

    SupportMapFragment mapFragment =
            (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
    mapFragment.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap map) {
            map.setOnMarkerDragListener(MapsActivity.this);
            // Creates a draggable marker. Long press to drag.
            mMarker = map.addMarker(new MarkerOptions()
                    .position(markerPosition)
                    .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 onStreetViewPanoramaChange(StreetViewPanoramaLocation location) {
    if (location != null) {
        mMarker.setPosition(location.position);
    }
}

@Override
public void onMarkerDragStart(Marker marker) {
}

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

@Override
public void onMarkerDrag(Marker marker) {
}
 }

for more information check this link https://developers.google.com/maps/documentation/android-api/streetview

by this code u will get something like that :D

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top