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

Bentuk

Google Maps API for Android menawarkan beberapa cara sederhana untuk menambahkan berbagai bentuk ke peta Anda untuk menyesuaikannya bagi aplikasi Anda.

  • Polyline adalah serangkaian segmen garis terhubung yang bisa membuat bentuk apa saja yang Anda inginkan dan bisa digunakan untuk menandai jalur dan rute di peta.
  • Polygon adalah bentuk tertutup yang bisa digunakan untuk menandai area di peta.
  • A Circle adalah proyeksi lingkaran yang akurat secara geografis pada permukaan Bumi yang digambar pada peta.

Untuk semua bentuk ini, Anda bisa menyesuaikan penampilannya dengan mengganti angka pada properti.

Contoh kode

Repositori ApiDemos di GitHub mencakup contoh yang menunjukkan penggunaan bentuk dan fitur-fiturnya:

Polyline

Kelas Polyline mendefinisikan satu set segmen garis terhubung di peta. Objek Polyline terdiri dari satu rangkaian lokasi LatLng, dan membuat serangkaian segmen garis yang menghubungkan lokasi-lokasi itu dalam urutan teratur.

Video ini menggambarkan cara membantu pengguna mencapai lokasi yang mereka tuju, dengan menggunakan polyline untuk menggambar jalur di peta,

Untuk membuat Polyline, buat dahulu sebuah objek PolylineOptions dan tambahkan titik-titik ke objek itu. Titik-titik menyatakan titik di permukaan bumi, dan dinyatakan berupa objek LatLng. Segmen garis digambar di antara titik sesuai dengan urutan Anda menambahkannya ke objek PolylineOptions. Untuk menambahkan titik ke objek PolylineOptions, panggil PolylineOptions.add(). Perhatikan, metode ini menggunakan angka variabel parameter sehingga Anda bisa menambahkan beberapa titik sekaligus (Anda juga bisa memanggil PolylineOptions.addAll(Iterable<LatLng>) jika titik-titik tersebut sudah ada dalam daftar).

Anda kemudian bisa menambahkan polyline ke peta dengan memanggil GoogleMap.addPolyline(PolylineOptions). Metode ini akan mengembalikan objek Polyline yang bisa digunakan untuk mengubah polyline di lain waktu.

Cuplikan kode berikut mengilustrasikan cara menambahkan persegi panjang ke peta:

// Instantiates a new Polyline object and adds points to define a rectangle
PolylineOptions rectOptions = new PolylineOptions()
        .add(new LatLng(37.35, -122.0))
        .add(new LatLng(37.45, -122.0))  // North of the previous point, but at the same longitude
        .add(new LatLng(37.45, -122.2))  // Same latitude, and 30km to the west
        .add(new LatLng(37.35, -122.2))  // Same longitude, and 16km to the south
        .add(new LatLng(37.35, -122.0)); // Closes the polyline.

// Get back the mutable Polyline
Polyline polyline = myMap.addPolyline(rectOptions);

Untuk mengubah bentuk polyline setelah ditambahkan, Anda bisa memanggil Polyline.setPoints() dan memberikan daftar titik yang baru untuk polyline tersebut.

Anda bisa menyesuaikan penampilan polyline baik sebelum maupun sesudah menambahkannya ke peta. Lihat bagian tentang menyesuaikan penampilan di bawah ini untuk detail lebih jauh.

Kejadian polyline

Secara default, polyline tidak bisa diklik. Anda bisa mengaktifkan dan menonaktifkan kemampuan diklik dengan memanggil Polyline.setClickable(boolean).

Gunakan OnPolylineClickListener untuk memantau kejadian klik pada polyline yang bisa diklik. Untuk menyetel listener ini pada peta, panggil GoogleMap.setOnPolylineClickListener(OnPolylineClickListener). Bila pengguna mengeklik polyline, Anda akan menerima callback onPolylineClick(Polyline).

Poligon

Objek Polygon serupa dengan objek Polyline karena keduanya terdiri dari serangkaian koordinat dalam urutan teratur. Akan tetapi, daripada dibuat terbuka, poligon didesain untuk mendefinisikan region dalam loop tertutup dengan bagian dalam yang diisi.

Anda bisa menambahkan Polygon ke peta dengan cara yang sama seperti menambahkan Polyline. Buat objek PolygonOptions terlebih dahulu dan tambahkan beberapa titik ke objek itu. Titik-titik ini akan membentuk garis luar poligon. Kemudian tambahkan poligon itu ke peta dengan memanggil GoogleMap.addPolygon(PolygonOptions) yang akan mengembalikan objek Polygon.

Cuplikan kode berikut ini menambahkan persegi panjang ke peta (perhatikan, karena kita belum mendefinisikan warna pengisi, dan warna pengisi default adalah transparan, maka ini akan muncul sama persis dengan polyline dari cuplikan dari bagian sebelumnya):

// Instantiates a new Polygon object and adds points to define a rectangle
PolygonOptions rectOptions = new PolygonOptions()
              .add(new LatLng(37.35, -122.0),
                   new LatLng(37.45, -122.0),
                   new LatLng(37.45, -122.2),
                   new LatLng(37.35, -122.2),
                   new LatLng(37.35, -122.0));

// Get back the mutable Polygon
Polygon polygon = myMap.addPolygon(rectOptions);

Untuk mengubah bentuk poligon setelah ditambahkan, Anda bisa memanggil Polygon.setPoints() dan memberikan daftar titik baru untuk garis luar poligon tersebut.

Anda bisa menyesuaikan penampilan poligon baik sebelum maupun sesudah menambahkannya ke peta. Lihat bagian tentang menyesuaikan penampilan di bawah ini untuk detail lebih jauh.

Penyelesaian poligon otomatis

Poligon dalam contoh di atas terdiri dari lima koordinat, namun perhatikan, koordinat pertama dan terakhir lokasinya sama, sehingga mendefinisikan loop. Akan tetapi dalam praktiknya, karena poligon mendefinisikan area tertutup, Anda tidak perlu mendefinisikan koordinat terakhir ini. Jika koordinat yang terakhir berbeda dari yang pertama, API secara otomatis akan "menutup" poligon dengan menambahkan koordinat pertama di akhir urutan koordinat.

Dua poligon di bawah ini adalah setara, dan memanggil polygon.getPoints() untuk masing-masing poligon akan mengembalikan semua 4 titik.

Polygon polygon = map.addPolygon(new PolygonOptions()
        .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
        .strokeColor(Color.RED)
        .fillColor(Color.BLUE));

Polygon polygon = map.addPolygon(new PolygonOptions()
         .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5))
         .strokeColor(Color.RED)
         .fillColor(Color.BLUE));

Membuat poligon kosong

Beberapa jalur bisa digabung menjadi satu objek Polygon untuk membuat bentuk yang kompleks, misalnya cincin yang diisi, atau "donat" (dalam hal ini bidang poligonal muncul di dalam poligon sebagai "kepulauan"). Bentuk kompleks selalu merupakan gabungan dari beberapa jalur yang lebih sederhana.

Dua jalur harus didefinisikan dalam area yang sama. Bagian yang lebih besar dari dua region mendefinisikan bidang pengisian, dan merupakan poligon sederhana tanpa opsi tambahan. Kemudian, teruskan jalur kedua ke metode addHole(). Bila jalur kedua yang lebih kecil terkurung sepenuhnya oleh jalur yang lebih besar, jalur tersebut akan tampak seperti bagian poligon yang telah dihilangkan. Jika lubang itu berpotongan dengan garis luar poligon, maka poligon itu akan dirender tanpa isi.

Cuplikan di bawah ini akan membuat sebuah persegi panjang, dengan lubang persegi panjang yang lebih kecil.

mMap.addPolygon(new PolygonOptions()
        .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(3, 0), new LatLng(0, 0))
        .addHole(new LatLng(1, 1), new LatLng(1, 2), new LatLng(2, 2), new LatLng(2, 1), new LatLng(1, 1))
        .fillColor(Color.BLUE));

Kejadian poligon

Secara default, poligon tidak bisa diklik. Anda bisa mengaktifkan dan menonaktifkan kemampuan diklik dengan memanggil Polygon.setClickable(boolean).

Gunakan OnPolygonClickListener untuk memantau kejadian klik pada poligon yang bisa diklik. Untuk menyetel listener ini pada peta, panggil GoogleMap.setOnPolygonClickListener(OnPolygonClickListener). Bila pengguna mengeklik poligon, Anda akan menerima callback onPolygonClick(Polygon).

Lingkaran

Selain kelas Polygon generik, Maps API juga menyertakan kelas spesifik bagi objek Circle untuk menyederhanakan konstruksinya.

Untuk membuat lingkaran, Anda harus menetapkan dua properti berikut:

  • center sebagai LatLng.
  • radius dalam meter.

Sebuah lingkaran kemudian didefinisikan sebagai serangkaian titik di permukaan Bumi yang berjarak radius meter dari center yang diberikan. Karena cara proyeksi Mercator yang digunakan oleh Maps API akan merender bola pada permukaan yang datar, ini akan tampak sebagai lingkaran hampir sempurna pada peta bila berada di dekat ekuator, dan akan tampak semakin bukan-melingkar (pada layar) saat lingkaran bergerak menjauh dari ekuator.

Cuplikan kode berikut menambahkan lingkaran ke peta dengan membuat objek CircleOptions dan memanggil GoogleMap.addCircle(CircleOptions):

// Instantiates a new CircleOptions object and defines the center and radius
CircleOptions circleOptions = new CircleOptions()
    .center(new LatLng(37.4, -122.1))
    .radius(1000)); // In meters

// Get back the mutable Circle
Circle circle = myMap.addCircle(circleOptions);

Untuk mengubah bentuk lingkaran setelah menambahkannya, Anda bisa memanggil Circle.setRadius() atau Circle.setCenter() dan memberikan nilai baru.

Anda bisa menyesuaikan penampilan lingkaran, baik sebelum maupun setelah menambahkannya ke peta. Lihat bagian tentang menyesuaikan penampilan di bawah ini untuk detail lebih jauh.

Kejadian lingkaran

Secara default, lingkaran yang tidak bisa diklik. Anda bisa mengaktifkan dan menonaktifkan kemampuan diklik dengan memanggil GoogleMap.addCircle() menggunakan CircleOptions.clickable(boolean), atau dengan memanggil Circle.setClickable(boolean).

Gunakan OnCircleClickListener untuk memantau kejadian klik pada lingkaran yang bisa diklik. Untuk menyetel listener ini pada peta, panggil GoogleMap.setOnCircleClickListener(OnCircleClickListener).

Ketika pengguna mengeklik lingkaran, Anda akan menerima callback onCircleClick(Circle), seperti yang ditunjukkan dalam contoh kode berikut:

public class MyActivity extends FragmentActivity
        implements OnMapReadyCallback {

        private GoogleMap mMap;
        private Circle circle;

        @Override
        public void onMapReady(GoogleMap map) {
            mMap = map;

            circle = mMap.addCircle(new CircleOptions()
                .center(new LatLng(37.4, -122.1))
                .radius(1000)
                .strokeWidth(10)
                .strokeColor(Color.GREEN)
                .fillColor(Color.argb(128, 255, 0, 0))
                .clickable(true);

            map.setOnCircleClickListener(new OnCircleClickListener() {

                @Override
                public void onCircleClick(Circle circle) {
                    // Flip the r, g and b components of the circle's
                    // stroke color.
                    int strokeColor = circle.getStrokeColor() ^ 0x00ffffff;
                    circle.setStrokeColor(strokeColor);
                }
            });
        }
}

Menyesuaikan penampilan

Anda bisa mengubah penampilan bentuk baik sebelum menambahkannya ke peta (dengan menetapkan properti yang diinginkan pada objek opsi) maupun setelah menambahkannya ke peta. Getter juga diekspos untuk semua properti sehingga Anda bisa dengan mudah mengakses status bentuk saat ini.

Cuplikan berikut menambahkan polyline biru tebal bersama segmen geodesi dari Melbourne ke Perth. Bagian di bawah ini akan menjelaskan properti-properti ini secara lebih detail.

Polyline line = map.addPolyline(new PolylineOptions()
    .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734))
    .width(25)
    .color(Color.BLUE)
    .geodesic(true));

Catatan: Walaupun kebanyakan diterapkan pada bentuk yang telah dijelaskan, sebagian properti mungkin tidak berlaku untuk bentuk tertentu (misalnya, Polyline tidak bisa memiliki warna pengisi karena tidak memiliki bagian dalam).

Warna garis luar

Warna garis luar adalah integer ARGB (alpha-red-green-blue) 32-bit yang menetapkan opasitas dan warna garis luar bentuk. Setel properti ini pada objek opsi bentuk dengan memanggil *Options.strokeColor() (atau PolylineOptions.color() jika berupa polyline). Jika tidak ditetapkan, warna garis luar default adalah hitam (Color.BLACK).

Setelah bentuk ditambahkan ke peta, warna garis luar bisa diakses dengan memanggil getStrokeColor() (atau getColor() untuk polyline) dan bisa diubah dengan memanggil setStrokeColor() (setColor() for a polyline).

Warna pengisi

Warna pengisi hanya berlaku untuk poligon dan lingkaran. Ini tidak berlaku untuk polyline karena bagian dalamnya tidak didefinisikan. Untuk poligon, region di bagian dalam lubangnya bukanlah bagian dari bagian dalam poligon dan tidak akan diwarnai jika mengatur warna pengisi.

Warna pengisi adalah integer ARGB (alpha-red-green-blue) 32-bit yang menetapkan opasitas dan warna bagian dalam bentuk. Setel properti ini pada objek opsi bentuk dengan memanggil *Options.fillColor(). Jika tidak ditetapkan, warna garis luar default adalah transparan (Color.TRANSPARENT).

Setelah bentuk ditambahkan ke peta, warna pengisi bisa diakses dengan memanggil getFillColor() dan bisa diubah dengan memanggil setFillColor().

Lebar garis luar

Lebar garis luar, sebagai float dalam pixels (px). Lebar garis luar tidak diskalakan bila peta diperbesar (maksudnya, bentuk akan memiliki lebar garis luar yang sama pada semua tingkat zoom). Setel properti ini pada objek opsi bentuk dengan memanggil *Options.strokeWidth() (atau PolylineOptions.width() untuk polyline). Jika tidak ditetapkan, lebar garis luar default adalah 10 piksel.

Setelah bentuk ditambahkan ke peta, lebar garis luar bisa diakses dengan memanggil getStrokeWidth() (atau getWidth() untuk polyline) dan bisa diubah dengan memanggil setStrokeWidth() (setWidth() for a polyline).

Segmen geodesi

Setelan geodesi hanya berlaku pada polyline dan poligon. Ini tidak berlaku pada lingkaran karena tidak didefinisikan sebagai sekumpulan segmen.

Setelan geodesi menentukan cara menggambar segmen garis di antara verteks polyline/poligon yang berdekatan. Segmen geodesi adalah segmen yang mengikuti jalur terpendek di permukaan Bumi (bola dunia) dan sering kali muncul sebagai garis melengkung di peta pada proyeksi Mercator. Segmen non-geodesi digambar sebagai garis lurus di peta.

Setel properti ini pada objek opsi bentuk dengan memanggil *Options.geodesic(), dalam hal ini true menunjukkan segmen harus digambar sebagai geodesi dan false menunjukkan segmen harus digambar sebagai garis lurus. Jika tidak ditetapkan, default-nya adalah segmen non-geodesi (false).

Setelah bentuk ditambahkan ke peta, setelan geodesi bisa diakses dengan memanggil isGeodesic() dan bisa diubah dengan memanggil setGeodesic().

Indeks-z

Indeks-z menetapkan urutan tumpukan bentuk ini, sesuai dengan overlay lain (bentuk lain, overlay bumi dan overlay petak) di peta. Overlay dengan indeks-z tinggi digambar di atas overlay dengan indeks-z lebih rendah. Dua overlay dengan indeks-z sama akan digambar dalam urutan arbitrarer.

Perhatikan bahwa marker selalu digambar di atas overlay lain, terlepas dari indeks-z overlay lainnya.

Setel properti ini pada objek opsi bentuk dengan memanggil *Options.zIndex(). Jika tidak ditetapkan, indeks-z default adalah 0. Setelah bentuk ditambahkan ke peta, indeks-z bisa diakses dengan memanggil getZIndex() dan bisa diubah dengan memanggil setZIndex().

Visibilitas

Visibilitas menetapkan apakah bentuk harus digambar di peta, dalam hal ini true menunjukkan bentuk harus digambar sedangkan false menunjukkan tidak boleh digambar. Ini memungkinkan Anda untuk sementara tidak menampilkan bentuk di peta. Untuk membuang bentuk dari peta secara permanen, panggil remove() pada bentuk itu.

Setel properti ini pada objek opsi bentuk dengan memanggil *Options.visible(). Jika tidak ditetapkan, visibilitas default adalah true. Setelah bentuk ditambahkan ke peta, visibilitas bisa diakses dengan memanggil isVisible() dan bisa diubah dengan memanggil setVisible().

Kirim masukan tentang...

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