Anda sudah siap!

Untuk mulai mengembangkan, masuklah ke dokumentasi developer kami.

Aktifkan Google Maps Android API

Untuk membantu Anda memulai, kami akan memandu Anda melalui Google Developers Console untuk melakukan beberapa hal terlebih dahulu:

  1. Buat atau pilih sebuah proyek
  2. Aktifkan Google Maps Android API
  3. Buat kunci yang sesuai
Lanjutkan

Street View

Google Street View menyediakan tampilan panorama 360-derajat dari jalan yang dipilih sampai area cakupan.

Video ini menampilkan cara menggunakan layanan Street View untuk memberikan pengalaman dunia-nyata kepada pengguna untuk alamat yang ada di peta, sehingga pengguna mendapatkan konteks lengkap mengenai tempat tujuan atau tempat menarik.

Cakupan yang tersedia melalui Google Maps Android API v2 sama dengan cakupan aplikasi Google Maps pada perangkat Android Anda. Anda bisa membaca selengkapnya tentang Street View dan melihat area yang didukung pada peta interaktif, di Tentang Street View.

Kelas StreetViewPanorama membuat model panorama Street View di aplikasi Anda. Dalam UI Anda, panorama akan dinyatakan oleh objek StreetViewPanoramaFragment atau StreetViewPanoramaView.

Contoh kode

Repositori ApiDemos di GitHub mencakup contoh yang menunjukkan penggunaan Street View:

Ringkasan Street View di Google Maps Android API

Google Maps Android API menyediakan layanan Street View untuk memperoleh dan memanipulasi gambar yang digunakan dalam Google Street View. Gambar dikembalikan sebagai panorama.

Setiap panorama Street View adalah gambar, atau serangkaian gambar, yang memberikan tampilan penuh 360 derajat dari satu lokasi. Gambar sesuai dengan proyeksi equirectangular (Plate Carrée), yang berisi tampilan horizontal 360 derajat (satu putaran penuh) dan tampilan vertikal 180 derajat (dari lurus ke atas sampai lurus ke bawah). Panorama 360 derajat yang dihasilkan mendefinisikan proyeksi pada bola dunia dengan gambar yang dibalutkan ke permukaan bola dunia dua dimensi tersebut.

StreetViewPanorama menyediakan penampil yang merender panorama yang dihasilkan sebagai bola dunia dengan kamera di tengahnya. Anda bisa memanipulasi StreetViewPanoramaCamera untuk mengontrol zoom dan orientasi (kemiringan dan penjuru) kamera.

Memulai

Ikuti panduan memulai untuk mempersiapkan proyek Google Maps Android API. Kemudian tambahkan panorama Street View, seperti dijelaskan di bawah ini.

Pustaka klien Google Play Services SDK menyertakan beberapa contoh Street View yang bisa diimpor ke dalam proyek Anda dan digunakan sebagai basis untuk development. Lihat pengantar untuk panduan mengimpor contoh.

Menggunakan API

Ikuti petunjuk di bawah ini untuk menambahkan panorama Street View pada fragmen Android. Itulah cara paling sederhana untuk menambahkan Street View ke aplikasi Anda. Kemudian baca selengkapnya mengenai fragmen, tampilan, dan penyesuaian panorama.

Menambahkan panorama Street View

Rangkuman:

  1. Tambahkan objek Fragmen ke Aktivitas yang akan menangani panorama Street View. Cara paling mudah untuk melakukannya adalah menambahkan elemen <fragment> ke file layout untuk Activity.
  2. Implementasikan antarmuka OnStreetViewPanoramaReadyCallback dan gunakan metode callback onStreetViewPanoramaReady(StreetViewPanorama) guna mendapatkan tuas ke objek StreetViewPanorama.
  3. Panggil getStreetViewPanoramaAsync() pada fragmen untuk mendaftarkan callback.

Di bawah ini adalah detail selengkapnya tentang setiap langkah.

Menambahkan fragmen

Tambahkan elemen <fragment> ke file layout aktivitas untuk mendefinisikan objek Fragmen. Dalam elemen ini, setel atribut class ke com.google.android.gms.maps.StreetViewPanoramaFragment (atau SupportStreetViewPanoramaFragment).

Inilah contoh fragmen dalam file layout:

<fragment
    android:name="com.google.android.gms.maps.StreetViewPanoramaFragment"
    android:id="@+id/streetviewpanorama"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Menambahkan kode Street View

Untuk menangani panorama Street View dalam aplikasi, Anda harus mengimplementasikan antarmuka OnStreetViewPanoramaReadyCallback dan menyetel instance callback pada objek StreetViewPanoramaFragment atau StreetViewPanoramaView. Tutorial ini menggunakan StreetViewPanoramaFragment, karena itulah cara paling sederhana untuk menambahkan Street View ke aplikasi Anda. Langkah pertama adalah mengimplementasikan antarmuka callback:

public class MainActivity extends FragmentActivity
    implements OnStreetViewPanoramaReadyCallback {
...
}

Dalam metode onCreate() Activity Anda, setel file layout sebagai tampilan materi. Misalnya, jika file layout memiliki nama main.xml, gunakan kode ini:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ...
}

Dapatkan handle ke fragmen dengan memanggil FragmentManager.findFragmentById(), dengan meneruskan padanya ID sumber daya elemen <fragment> Anda. Perhatikan, ID sumber daya R.id.streetviewpanorama ditambahkan secara otomatis ke proyek Android bila Anda membagun file layout.

Kemudian gunakan getStreetViewPanoramaAsync() untuk menyetel callback pada fragmen.

StreetViewPanoramaFragment streetViewPanoramaFragment =
    (StreetViewPanoramaFragment) getFragmentManager()
        .findFragmentById(R.id.streetviewpanorama);
streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);

Catatan: getStreetViewPanoramaAsync() harus dipanggil dari thread utama, dan callback akan dieksekusi dalam thread utama. Jika Google Play Services tidak dipasang pada perangkat pengguna, callback tidak akan terpicu hingga pengguna memasang layanan Play.

Gunakan metode callback onStreetViewPanoramaReady(StreetViewPanorama) untuk mengambil instance bukan-nol dari StreetViewPanorama, siap untuk digunakan.

@Override
public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
    panorama.setPosition(new LatLng(-33.87365, 151.20689));
}

Selengkapnya tentang mengonfigurasi status awal

Berbeda dengan peta, tidak mungkin mengonfigurasi status awal panorama Street View melalui XML. Akan tetapi, Anda bisa mengonfigurasi panorama lewat program dengan meneruskan objek StreetViewPanoramaOptions berisi opsi yang Anda tetapkan.

mSvpView = new StreetViewPanoramaView(this,
    new StreetViewPanoramaOptions().position(SAN_FRAN));

Selengkapnya tentang StreetViewPanoramaFragment

StreetViewPanoramaFragment adalah subkelas dari kelas Fragmen Android, dan memungkinkan Anda menempatkan panorama Street View dalam fragmen Android. Objek StreetViewPanoramaFragment berfungsi sebagai kontainer untuk panorama, dan memberikan akses ke objek StreetViewPanorama.

Catatan: Google Maps Android API memerlukan API level 12 atau yang lebih tinggi untuk dukungan objek StreetViewPanoramaFragment. Jika Anda menargetkan sebuah aplikasi yang lebih rendah dari API level 12, Anda bisa mengakses fungsionalitas yang sama melalui kelas SupportStreetViewPanoramaFragment. Anda juga perlu menyertakan Android Support Library.

Catatan: Google Maps Android API tidak mendukung beberapa objek StreetViewPanoramaFragment dalam satu aktivitas.

StreetViewPanoramaView

StreetViewPanoramaView, sebuah subkelas dari kelas View Android, memungkinkan Anda menempatkan panorama Street View dalam View Android. Sebuah View menyatakan region persegi panjang pada layar, dan merupakan blok pembangun fundamental bagi aplikasi dan widget Android. Mirip dengan StreetViewPanoramaFragment, StreetViewPanoramaView berfungsi sebagai kontainer untuk panorama, yang mengekspos fungsionalitas inti melalui objek StreetViewPanorama. Pengguna kelas ini harus meneruskan semua metode daur hidup aktivitas (seperti onCreate(), onDestroy(), onResume(), dan onPause()) ke metode terkait dalam kelas StreetViewPanoramaView.

Catatan: Google Maps Android API tidak mendukung beberapa objek StreetViewPanoramaView dalam satu aktivitas.

Menyesuaikan fungsionalitas yang dikontrol pengguna

Secara default, fungsionalitas berikut ini tersedia bagi pengguna saat menampilkan panorama Street View: menggeser, zooming, dan melihat-lihat panorama yang berdekatan. Anda bisa mengaktifkan dan menonaktifkan isyarat yang dikontrol pengguna melalui metode pada StreetViewPanorama. Perubahan terprogram masih memungkinkan bila isyarat dinonaktifkan.

setPanningGesturesEnabled()
Menentukan apakah pengguna akan bisa mengarahkan ulang kamera dengan menyeret.
      mSvp.setPanningGesturesEnabled(false);
setUserNavigationEnabled()
Menentukan apakah pengguna akan bisa berpindah ke panorama lain. Pengguna bisa menggunakan satu ketukan pada tautan navigasi, atau mengetuk dua kali pada tampilan, untuk berpindah ke panorama baru.
      mSvp.setUserNavigationEnabled(false);
setZoomGesturesEnabled()
Menentukan apakah pengguna akan bisa mencubit untuk melakukan zoom.
      mSvp.setZoomGesturesEnabled(false);

Selain itu, Anda bisa menentukan apakah pengguna akan melihat nama jalan:

setStreetNamesEnabled()
Menentukan apakah pengguna akan bisa melihat nama jalan yang ditampilkan di permukaan tanah.
      mSvp.setStreetNamesEnabled(false);

Menyetel lokasi panorama

Untuk menyetel lokasi panorama Street View, panggil StreetViewPanorama.setPosition(), dengan meneruskan LatLng. Anda juga bisa meneruskan radius sebagai parameter opsional. Radius berguna jika Anda ingin memperlebar atau mempersempit area di mana Street View akan mencari panorama yang cocok. Radius 0 berarti bahwa panorama harus ditautkan ke LatLng yang ditetapkan secara persis. Radius default adalah 50. Jika ada lebih dari satu panorama dalam area yang cocok, API akan mengembalikan yang paling cocok.

private static final LatLng SAN_FRAN = new LatLng(37.765927, -122.449972);
mSvp.setPosition(SAN_FRAN);

Atau, Anda bisa menyetel lokasi berdasarkan ID panorama dengan meneruskan panoId ke StreetViewPanorama.setPosition().

Untuk mengambil ID panorama yang berdekatan, terlebih dahulu gunakan getLocation() untuk mengambil StreetViewPanoramaLocation. Objek ini berisi ID panorama saat ini dan larik objek StreetViewPanoramaLink, yang masing-masing berisi ID panorama yang dihubungkan dengan panorama saat ini.

StreetViewPanoramaLocation location = mSvp.getLocation();
if (location != null && location.links != null) {
    mSvp.setPosition(location.links[0].panoId);
}

Memperbesar dan memperkecil

Anda bisa mengubah tingkat zoom lewat program dengan menyetel StreetViewPanoramaCamera.zoom. Menyetel zoom ke 1.0 akan memperbesar gambar dengan faktor 2.

Cuplikan berikut ini menggunakan StreetViewPanoramaCamera.Builder() untuk membuat kamera baru dengan kemiringan dan penjuru kamera yang sudah ada, sambil meningkatkan zoom sebesar lima puluh persen.

private static final float ZOOM_BY = 0.5f;
StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
    .zoom(mSvp.getPanoramaCamera().zoom + ZOOM_BY)
    .tilt(mSvp.getPanoramaCamera().tilt)
    .bearing(mSvp.getPanoramaCamera().bearing)
    .build();

Menyetel orientasi kamera (titik pandang)

Anda bisa menentukan orientasi kamera Street View dengan menyetel penjuru dan kemiringan pada StreetViewPanoramaCamera.

penjuru
Arah yang ditunjuk kamera, ditetapkan dalam derajat searah jarum jam dari utara sebenarnya, di semua lokus kamera. Utara sebenarnya adalah 0, timur 90, selatan 180, barat 270.
kemiringan
Sumbu Y memiringkan ke atas atau ke bawah. Kisarannya adalah -90 sampai 0 hingga 90, dengan -90 lurus ke bawah, 0 di tengah horizon, dan 90 lurus ke atas. Varian diukur dari pitch default awal kamera, yang sering kali (namun tidak selalu) horizontal datar. Misalnya, gambar yang diambil dari atas bukit kemungkinan akan memiliki pitch default yang tidak horizontal.

Cuplikan berikut ini menggunakan StreetViewPanoramaCamera.Builder() untuk membuat kamera baru dengan zoom dan kemiringan kamera yang sudah ada, sambil mengubah penjuru sebesar 30 derajat ke kiri.

private static final int PAN_BY = 30;
StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
    .zoom(mSvp.getPanoramaCamera().zoom)
    .tilt(mSvp.getPanoramaCamera().tilt)
    .bearing(mSvp.getPanoramaCamera().bearing - PAN_BY)
    .build();

Cuplikan berikut ini memiringkan kamera ke atas sebesar 30 derajat.

float tilt = mSvp.getPanoramaCamera().tilt + 30;
tilt = (tilt > 90) ? 90 : tilt;

StreetViewPanoramaCamera previous = mSvp.getPanoramaCamera();

StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder(previous)
    .tilt(tilt)
    .build();

Menganimasikan gerakan kamera

Untuk menganimasikan gerakan kamera, panggil StreetViewPanorama.animateTo(). Animasi disisipkan di antara atribut kamera saat ini dan atribut kamera baru. Jika Anda ingin melompat langsung ke kamera tanpa animasi, Anda bisa menyetel durasi ke 0.

// Set the tilt to zero, keeping the zoom and bearing at current values.
// Animate over a duration of 500 milliseconds.
long duration = 500;
float tilt = 0;
StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
    .zoom(mSvp.getPanoramaCamera().zoom)
    .bearing(mSvp.getPanoramaCamera().bearing)
    .tilt(tilt)
    .build();

mSvp.animateTo(camera, duration);

Kirim masukan tentang...

Google Maps Android API
Google Maps Android API
Butuh bantuan? Kunjungi halaman dukungan kami.