Bentuk

Pilih platform: Android iOS JavaScript

Peta dengan polyline merah menyala

Google Maps API untuk Android menawarkan beberapa cara mudah menambahkan bentuk ke peta untuk disesuaikan dengan aplikasi Anda.

  • Polyline adalah rangkaian segmen garis terhubung yang dapat menghasilkan bentuk apa pun yang Anda inginkan dan dapat digunakan untuk menandai jalur dan rute pada peta.
  • Polygon adalah bentuk tertutup yang dapat digunakan untuk menandai area pada peta.
  • Circle adalah proyeksi lingkaran yang akurat secara geografis pada permukaan Bumi yang digambar pada peta.

Untuk semua bentuk ini, Anda dapat menyesuaikan tampilannya dengan mengubah sejumlah properti.

Contoh kode

Tutorial tentang cara menambahkan poligon dan polyline untuk mewakili area dan rute mencantumkan semua kode untuk aplikasi Android sederhana.

Selain itu, repositori ApiDemos di GitHub berisi contoh yang menunjukkan penggunaan bentuk dan fiturnya:

Polyline

Class Polyline menentukan kumpulan segmen garis terhubung di peta. Objek Polyline terdiri dari kumpulan lokasi LatLng, dan membuat serangkaian segmen garis yang menghubungkan lokasi tersebut secara berurutan.

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

Untuk membuat Polyline, pertama-tama buat objek PolylineOptions dan tambahkan titik-titik ke objek tersebut. Titik-titik tersebut merepresentasikan titik di permukaan bumi, dan dinyatakan sebagai objek LatLng. Segmen garis digambar di antara titik-titik sesuai urutan Anda menambahkannya ke objek PolylineOptions.

Untuk menambahkan titik ke objek PolylineOptions, panggil PolylineOptions.add(). Perhatikan bahwa metode ini menggunakan angka variabel parameter sehingga Anda dapat menambahkan beberapa titik sekaligus (Anda juga dapat memanggil PolylineOptions.addAll(Iterable<LatLng>) jika titik-titik tersebut sudah ada dalam daftar).

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

Cuplikan kode berikut mengilustrasikan cara menambahkan persegi panjang ke peta:

Kotlin



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

// Get back the mutable Polyline
val polyline = map.addPolyline(polylineOptions)

      

Java


// Instantiates a new Polyline object and adds points to define a rectangle
PolylineOptions polylineOptions = 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 = map.addPolyline(polylineOptions);

      

Persegi panjang akan muncul pada peta seperti yang ditampilkan di bawah ini:

Peta dengan polyline persegi panjang

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

Anda dapat menyesuaikan tampilan polyline baik sebelum menambahkannya ke peta maupun setelah ditambahkan ke peta. Lihat bagian tentang menyesuaikan tampilan di bawah untuk detail lebih lanjut.

Penyesuaian polyline

Ada beberapa cara untuk menyesuaikan tampilan polyline:

  • Polyline warna-warni menetapkan segmen polyline ke berbagai warna.
  • Polyline gradien memberi warna pada polyline menggunakan gradien dua warna.
  • Polyline berstempel menentukan gaya polyline menggunakan bitmap berulang.

Untuk menggunakan Penyesuaian Polyline, Anda harus menggunakan Maps SDK for Android 18.1.0 atau versi yang lebih baru dan menggunakan perender Maps SDK for Android terbaru.

Membuat polyline warna-warni

Peta dengan polyline warna-warni

Anda dapat menggunakan span untuk mewarnai masing-masing segmen polyline, dengan membuat objek StyleSpan dan menambahkannya ke PolylineOptions menggunakan metode addSpan() atau addSpans(). Secara default, setiap item dalam array akan menetapkan warna segmen garis yang sesuai. Contoh berikut menunjukkan setelan warna segmen untuk membuat polyline dengan segmen merah dan hijau:

Kotlin



val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(StyleSpan(Color.RED))
        .addSpan(StyleSpan(Color.GREEN))
)

      

Java


Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(Color.RED))
        .addSpan(new StyleSpan(Color.GREEN)));

      

Membuat polyline gradien

Peta dengan polyline gradien

Anda dapat menentukan gradien dengan menetapkan dua integer ARGB (alpha-red-green-blue) 32-bit, untuk menetapkan warna awal dan akhir goresan. Tetapkan properti ini pada objek opsi bentuk dengan memanggil PolylineOptions.addSpan(). Contoh berikut menunjukkan pembuatan polyline gradien merah ke kuning dari Woodland Park Zoo ke Kirkland, WA.

Kotlin



val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(
            StyleSpan(
                StrokeStyle.gradientBuilder(
                    Color.RED,
                    Color.YELLOW
                ).build()
            )
        )
)

      

Java


Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(StrokeStyle.gradientBuilder(Color.RED, Color.YELLOW).build())));

      

Membuat polyline berstempel

Peta dengan polyline berstempel

Anda dapat menetapkan tampilan polyline ke tekstur bitmap berulang. Untuk melakukannya, buat StampStyle dari TextureStyle, lalu tetapkan properti ini pada objek opsi bentuk dengan memanggil PolylineOptions.addSpan() seperti yang ditunjukkan di sini:

Kotlin



val stampStyle =
    TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build()
val span = StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build())
map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(span)
)

      

Java


StampStyle stampStyle =
        TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build();
StyleSpan span = new StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build());
map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(span));

      

Peristiwa polyline

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

Gunakan OnPolylineClickListener untuk memproses peristiwa klik pada polyline yang dapat diklik. Untuk menetapkan pemroses ini pada peta, panggil GoogleMap.setOnPolylineClickListener(OnPolylineClickListener). Saat pengguna mengklik polyline, Anda akan menerima callback onPolylineClick(Polyline).

Poligon

Objek Polygon serupa dengan objek Polyline yang di dalamnya berisi rangkaian koordinat secara berurutan. Namun, bukannya bersifat terbuka, poligon didesain untuk mendefinisikan region dalam loop tertutup dengan bagian dalam yang diisi.

Anda dapat menambahkan Polygon ke peta dengan cara yang sama seperti menambahkan Polyline. Buat objek PolygonOptions terlebih dahulu dan tambahkan beberapa titik ke objek tersebut. Titik-titik ini akan membentuk garis luar poligon. Selanjutnya, tambahkan poligon ke peta dengan memanggil GoogleMap.addPolygon(PolygonOptions), yang akan menampilkan objek Polygon.

Cuplikan kode berikut menambahkan persegi panjang ke peta.

Kotlin



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

// Get back the mutable Polygon
val polygon = map.addPolygon(rectOptions)

      

Java


// Instantiates a new Polygon object and adds points to define a rectangle
PolygonOptions polygonOptions = 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 = map.addPolygon(polygonOptions);

      

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

Anda dapat menyesuaikan tampilan poligon baik sebelum menambahkannya ke peta maupun setelah ditambahkan ke peta. Lihat bagian tentang menyesuaikan tampilan di bawah untuk detail lebih lanjut.

Penyelesaian poligon otomatis

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

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

Kotlin



val polygon1 = map.addPolygon(
    PolygonOptions()
        .add(
            LatLng(0.0, 0.0),
            LatLng(0.0, 5.0),
            LatLng(3.0, 5.0),
            LatLng(0.0, 0.0)
        )
        .strokeColor(Color.RED)
        .fillColor(Color.BLUE)
)
val polygon2 = map.addPolygon(
    PolygonOptions()
        .add(
            LatLng(0.0, 0.0),
            LatLng(0.0, 5.0),
            LatLng(3.0, 5.0)
        )
        .strokeColor(Color.RED)
        .fillColor(Color.BLUE)
)

      

Java


Polygon polygon1 = 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 polygon2 = 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 dapat digabungkan dalam satu objek Polygon untuk membuat bentuk yang kompleks, seperti cincin yang diisi, atau "donat" (dalam hal ini bidang poligonal muncul di dalam poligon sebagai "pulau"). Bentuk kompleks selalu merupakan komposisi dari beberapa jalur yang lebih sederhana.

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

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

Kotlin



val hole = listOf(
    LatLng(1.0, 1.0),
    LatLng(1.0, 2.0),
    LatLng(2.0, 2.0),
    LatLng(2.0, 1.0),
    LatLng(1.0, 1.0)
)
val hollowPolygon = map.addPolygon(
    PolygonOptions()
        .add(
            LatLng(0.0, 0.0),
            LatLng(0.0, 5.0),
            LatLng(3.0, 5.0),
            LatLng(3.0, 0.0),
            LatLng(0.0, 0.0)
        )
        .addHole(hole)
        .fillColor(Color.BLUE)
)

      

Java


List<LatLng> hole = Arrays.asList(new LatLng(1, 1),
    new LatLng(1, 2),
    new LatLng(2, 2),
    new LatLng(2, 1),
    new LatLng(1, 1));
Polygon hollowPolygon = map.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(hole)
    .fillColor(Color.BLUE));

      

Poligon kosong akan muncul pada peta seperti yang ditampilkan di bawah ini:

Peta dengan polyline persegi panjang kosong

Peristiwa poligon

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

Gunakan OnPolygonClickListener untuk memproses peristiwa klik pada poligon yang dapat diklik. Untuk menetapkan pemroses ini pada peta, panggil GoogleMap.setOnPolygonClickListener(OnPolygonClickListener). Saat pengguna mengklik poligon, Anda akan menerima callback onPolygonClick(Polygon).

Lingkaran

Peta dengan lingkaran

Selain class Polygon generik, Maps API juga menyertakan class 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, bola ini akan tampak sebagai lingkaran hampir sempurna pada peta saat berada di dekat ekuator, dan akan tampak makin bukan-melingkar (pada layar) saat lingkaran bergerak menjauh dari ekuator.

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

Anda dapat menyesuaikan tampilan lingkaran baik sebelum menambahkannya ke peta maupun setelah ditambahkan ke peta. Lihat bagian tentang menyesuaikan tampilan di bawah untuk detail lebih lanjut.

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

Kotlin



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

// Get back the mutable Circle
val circle = map.addCircle(circleOptions)

      

Java


// 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 = map.addCircle(circleOptions);

      

Peristiwa lingkaran

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

Gunakan OnCircleClickListener untuk memproses peristiwa klik pada lingkaran yang dapat diklik. Untuk menetapkan pemroses ini pada peta, panggil GoogleMap.setOnCircleClickListener(OnCircleClickListener).

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

Kotlin



val circle = map.addCircle(
    CircleOptions()
        .center(LatLng(37.4, -122.1))
        .radius(1000.0)
        .strokeWidth(10f)
        .strokeColor(Color.GREEN)
        .fillColor(Color.argb(128, 255, 0, 0))
        .clickable(true)
)
map.setOnCircleClickListener {
    // Flip the r, g and b components of the circle's stroke color.
    val strokeColor = it.strokeColor xor 0x00ffffff
    it.strokeColor = strokeColor
}

      

Java


Circle circle = map.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 GoogleMap.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 tampilan

Anda dapat mengubah tampilan bentuk baik sebelum menambahkannya ke peta (dengan menentukan properti yang diinginkan pada objek opsi) atau setelah ditambahkan ke peta. Pengambil juga diekspos untuk semua properti sehingga Anda dapat dengan mudah mengakses status bentuk saat ini.

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

Kotlin



val polyline = map.addPolyline(
    PolylineOptions()
        .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734))
        .width(25f)
        .color(Color.BLUE)
        .geodesic(true)
)

      

Java


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

      

Peta akan muncul seperti yang ditampilkan di bawah ini:

Peta dengan polyline dari Melbourne ke Perth

Catatan: Meskipun sebagian besar properti diterapkan pada bentuk yang telah dijelaskan, sebagian properti mungkin tidak berlaku untuk bentuk tertentu (misalnya, Polyline tidak dapat memiliki warna isian karena tidak memiliki bagian dalam).

Warna goresan

Warna goresan adalah integer ARGB (alpha-red-green-blue) 32-bit yang menetapkan opasitas dan warna goresan bentuk. Tetapkan properti ini pada objek opsi bentuk dengan memanggil *Options.strokeColor() (atau PolylineOptions.color() dalam kasus polyline). Jika tidak ditentukan, warna goresan default adalah hitam (Color.BLACK).

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

Warna isian

Warna isian hanya berlaku untuk poligon dan lingkaran. Ini tidak berlaku pada polyline karena tidak memiliki bagian dalam yang ditentukan. Untuk poligon, region di dalam lubangnya bukanlah bagian dari bagian dalam poligon dan tidak akan diwarnai jika warna isian ditetapkan.

Warna isian adalah integer ARGB (alpha-red-green-blue) 32-bit yang menetapkan opasitas dan warna bagian dalam suatu bentuk. Tetapkan properti ini pada objek opsi bentuk dengan memanggil *Options.fillColor(). Jika tidak ditentukan, warna goresan default adalah transparan (Color.TRANSPARENT).

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

Lebar goresan

Lebar goresan garis, sebagai float dalam piksel (px). Lebarnya tidak diskalakan jika peta di-zoom (yaitu, bentuk akan memiliki lebar goresan yang sama pada semua tingkat zoom). Tetapkan properti ini pada objek opsi bentuk dengan memanggil *Options.strokeWidth() (atau PolylineOptions.width() untuk polyline). Jika tidak ditetapkan, lebar goresan default adalah 10 piksel.

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

Pola goresan

Pola goresan default adalah garis solid untuk polyline dan untuk garis luar poligon dan lingkaran. Anda dapat menentukan pola goresan kustom untuk objek PatternItem, dengan setiap item berupa tanda hubung, titik, atau celah.

Contoh berikut menetapkan pola polyline ke urutan titik yang berulang, diikuti dengan celah sepanjang 20 piksel, tanda hubung sepanjang 30 piksel, dan celah lain sepanjang 20 piksel.

Kotlin



val pattern = listOf(
    Dot(), Gap(20F), Dash(30F), Gap(20F)
)
polyline.pattern = pattern

      

Java


List<PatternItem> pattern = Arrays.asList(
    new Dot(), new Gap(20), new Dash(30), new Gap(20));
polyline.setPattern(pattern);

      

Pola berulang sepanjang garis, dimulai dengan item pola pertama di verteks pertama yang ditentukan untuk bentuk.

Jenis sambungan

Untuk polyline dan garis luar poligon, Anda dapat menentukan JointType miring atau lingkaran untuk menggantikan jenis sambungan siku-siku tetap default.

Contoh berikut menerapkan jenis sambungan lingkaran ke polyline:

Kotlin



polyline.jointType = JointType.ROUND

      

Java


polyline.setJointType(JointType.ROUND);

      

Jenis sambungan memengaruhi lekukan internal dalam garis. Jika garis ini memiliki pola goresan yang menyertakan tanda pisah, jenis sambungan juga diterapkan jika tanda pisah membagi sambungan. Jenis sambungan tidak memengaruhi titik karena bentuknya tidak selalu bulat.

Ujung garis

Anda dapat menentukan gaya Cap untuk setiap ujung polyline. Opsinya adalah kotak (default), persegi, bundar, atau bitmap kustom. Tetapkan gaya dalam PolylineOptions.startCap dan PolylineOptions.endCap, atau gunakan metode pengambil dan penyetel yang sesuai.

Cuplikan berikut menetapkan ujung bundar di ujung awal polyline.

Kotlin



polyline.startCap = RoundCap()

      

Java


polyline.setStartCap(new RoundCap());

      

Cuplikan berikut menentukan bitmap kustom untuk ujung akhir:

Kotlin



polyline.endCap = CustomCap(BitmapDescriptorFactory.fromResource(R.drawable.arrow), 16F)

      

Java


polyline.setEndCap(
    new CustomCap(BitmapDescriptorFactory.fromResource(R.drawable.arrow), 16));

      

Saat menggunakan bitmap kustom, Anda harus menentukan lebar goresan referensi dalam piksel. API menskalakan bitmap sebagaimana mestinya. Lebar goresan referensi adalah lebar goresan yang Anda gunakan saat mendesain gambar bitmap untuk ujung garis, pada dimensi asli gambar. Lebar goresan referensi default adalah 10 piksel. Petunjuk: Untuk menentukan lebar goresan referensi, buka gambar bitmap dengan zoom 100% di editor gambar, dan tetapkan lebar goresan garis yang diinginkan yang relatif terhadap gambar.

Jika Anda menggunakan BitmapDescriptorFactory.fromResource() untuk membuat bitmap, pastikan Anda menggunakan resource yang tidak tergantung pada kepadatan (nodpi).

Segmen geodesi

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

Setelan geodesi menentukan bagaimana segmen garis di antara puncak polyline/poligon yang berurutan digambar. Segmen geodesi adalah segmen yang mengikuti jalur terpendek sepanjang permukaan Bumi (bola) dan sering muncul sebagai garis melengkung pada peta dengan proyeksi Mercator. Segmen non-geodesi digambar sebagai garis lurus pada peta.

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

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

Indeks Z

Indeks Z menentukan urutan tumpukan dari bentuk ini, yang relatif terhadap overlay lainnya (bentuk lain, overlay bumi, dan overlay ubin) pada peta. Overlay dengan indeks z tinggi digambar di atas overlay dengan indeks z yang lebih rendah. Dua overlay dengan indeks z sama akan digambar dalam urutan arbitrer.

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

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

Visibilitas

Visibilitas menentukan apakah bentuk harus digambar pada peta, dengan true menunjukkan bahwa bentuk harus digambar dan false menunjukkan bahwa bentuk tidak boleh digambar. Ini memungkinkan Anda tidak menampilkan bentuk di peta untuk sementara waktu. Untuk menghapus bentuk secara permanen dari peta, panggil remove() pada bentuk tersebut.

Tetapkan properti ini pada objek opsi bentuk dengan memanggil *Options.visible(). Jika tidak ditentukan, visibilitas default-nya adalah true. Setelah bentuk ditambahkan ke peta, visibilitas dapat diakses dengan memanggil isVisible() dan dapat diubah dengan memanggil setVisible().

Mengaitkan data dengan bentuk

Anda dapat menyimpan objek data arbitrer dengan polyline, poligon, atau lingkaran menggunakan metode setTag() bentuk, dan mengambil objek menggunakan getTag(). Misalnya, panggil Polyline.setTag() untuk menyimpan objek data dengan polyline, dan panggil Polyline.getTag() untuk mengambil objek data.

Kode di bawah menentukan tag arbitrer (A) untuk polyline yang ditentukan:

Kotlin



val polyline = map.addPolyline(
    PolylineOptions()
        .clickable(true)
        .add(
            LatLng(-35.016, 143.321),
            LatLng(-34.747, 145.592),
            LatLng(-34.364, 147.891),
            LatLng(-33.501, 150.217),
            LatLng(-32.306, 149.248),
            LatLng(-32.491, 147.309)
        )
)
polyline.tag = "A"

      

Java


Polyline polyline = map.addPolyline((new PolylineOptions())
    .clickable(true)
    .add(new LatLng(-35.016, 143.321),
        new LatLng(-34.747, 145.592),
        new LatLng(-34.364, 147.891),
        new LatLng(-33.501, 150.217),
        new LatLng(-32.306, 149.248),
        new LatLng(-32.491, 147.309)));

polyline.setTag("A");

      

Berikut adalah beberapa contoh skenario terkait saat yang tepat untuk menyimpan dan mengambil data dengan bentuk:

  • Aplikasi Anda mungkin mengakomodasi berbagai jenis bentuk, dan sebaiknya perlakukan penanda tersebut secara berbeda saat pengguna mengkliknya.
  • Anda mungkin berinteraksi dengan sistem yang memiliki ID catatan unik, dengan bentuk yang merepresentasikan catatan khusus dalam sistem tersebut.
  • Data bentuk dapat menunjukkan prioritas untuk menentukan indeks z untuk bentuk.