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

Utilitas untuk Mengimpor KML Google Maps

  1. Pengantar
  2. Menambahkan layer KML
  3. Menghapus layer KML
  4. Mengakses kontainer KML
  5. Mengakses placemark KML dan overlay bumi KML
  6. Mengakses properti KML
  7. Fitur-fitur yang didukung KML

Pengantar

KML merupakan ekstensi format data XML dan menyatakan data geografis pada peta. Dengan menggunakan utilitas ini, Anda bisa mengonversi objek KML menjadi bentuk geografis dan merendernya sebagai layer di atas peta. Untuk menambahkan dan membuang data KML Anda ke dan dari peta, panggil addLayerToMap() dan removeLayerFromMap(). Untuk mengakses properti dalam objek KML, panggil getProperties() pada Placemark, GroundOverlay, Dokumen atau Folder.

Menambahkan layer KML pada peta

Untuk menambahkan layer data pada peta, buat dahulu instance kelas KmlLayer. Ada dua cara untuk membuat KmlLayer.

Untuk mengimpor dan merender kumpulan data KML dari sumber daya lokal, Anda perlu:

  • Objek GoogleMap tempat layer akan dirender.
  • File sumber daya lokal yang berisi data KML.
  • Objek Context, yang diperlukan untuk membuka file sumber daya lokal.
KmlLayer layer = new KmlLayer(getMap(), R.raw.kmlFile, getApplicationContext());

Untuk mengimpor dan merender kumpulan data KML dari aliran lokal, Anda perlu:

  • Objek GoogleMap tempat layer akan dirender.
  • InputStream yang berisi data KML.
  • Objek Context, yang diperlukan untuk membuka sumber daya lokal.
KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());

Setelah Anda membuat KmlLayer, panggil addLayerToMap()() untuk menambahkan data yang diimpor pada peta.

layer.addLayerToMap();

Menghapus layer KML

Anggaplah Anda sudah membuat KmlLayer ini:

KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());
 

Untuk membuang layer dari peta, panggil removeLayerFromMap():

layer.removeLayerFromMap();

Mengakses kontainer KML

Untuk mengakses kontainer yang sudah ditambahkan ke layer, Anda bisa memanggil getContainers() pada layer yang sudah Anda buat. Untuk memeriksa apakah kontainer memiliki kontainer tersarang, Anda bisa memanggil hasContainers(). Untuk mengakses kontainer tersarang ini, sama dengan apa yang bisa Anda lakukan di layer, Anda bisa memanggil getContainers()

Untuk mengakses kontainer yang tidak tersarang dalam KmlLayer atau KmlContainer:

for (KmlContainer containers : layer.getContainers())
  // Do something to container
}

Untuk mengakses kontainer yang tersarang dalam KmlLayer atau KmlContainer:

Iterable containers = layer.getContainers();
  public void accessContainers(containers) {
    for (KmlContainer container : containers ) {
    // Do something to container
    if (container.hasContainers()) {
      accessContainers(container.getContainers());
    }
  }
}

Mengakses placemark KML dan overlay bumi KML

Untuk mengakses placemark atau overlay bumi yang telah ditambahkan pada layer, Anda bisa memanggil getPlacemarks() atau getGroundOverlays() pada layer atau kontainer. Memanggil keduanya akan mengembalikan iterable dari KmlPlacemarks atau KmlGroundOverlays.

Misalnya, untuk mengakses objek KmlPlacemark dari sebuah layer:

for (KmlPlacemark placemark : layer.getPlacemarks()) {
  // Do something to Placemark
}

Mengakses properti KML

Untuk mengakses properti dalam sebuah kontainer atau placemark, panggil getProperty() dan beri kunci properti. Anda juga bisa memanggil hasProperty() untuk memeriksa keberadaannya. Contoh ini menampilkan cara mengambil "nama" nilai properti dari sebuah kontainer, jika ada.

for (KmlContainer container : layer.getContainers()) {
  if (container.hasProperty("name")) {
    System.out.println(container.getProperty("name")):
  }
}

Melihat aplikasi demo

Untuk contoh mengimpor file KML dan membuat layer dengannya, lihat KmlDemoActivity dalam aplikasi demo yang disertakan bersama pustaka utilitas. Panduan persiapan ini menampilkan cara menjalankan aplikasi demo.

Fitur-fitur yang didukung KML

Elemen KML Didukung? Komentar
<address> sebagian Disimpan sebagai nilai properti
<AddressDetails> tidak
<Alias> tidak
<altitude> tidak
<altitudeMode> tidak
<atom:author> tidak
<atom:link> tidak
<atom:name> tidak
<BalloonStyle> sebagian hanya <text> yang didukung
<begin> N/A <TimeSpan> tidak didukung
<bgColor> tidak
<bottomFov> N/A <PhotoOverlay> tidak didukung
<Camera> tidak
<Change> sebagian hanya perubahan gaya yang didukung
<color> sebagian berisi #AABBGGRR dan #BBGGRR; tidak didukung dalam <ScreenOverlay>, dan <GroundOverlay>
<colorMode> ya
<cookie> tidak <NetworkLinkControl> tidak didukung
<coordinates> ya
<Create> tidak
<Data> tidak
<Delete> tidak
<description> ya Hanya teks biasa, materi HTML tidak didukung
<displayMode> tidak
<displayName> tidak
<Document> ya
<drawOrder> ya
<east> ya
<end> N/A <TimeSpan> tidak didukung
<expires> tidak <NetworkLinkControl> tidak didukung
<ExtendedData> sebagian hanya <Data> tidak bertipe saja, bukan <SimpleData> atau <Schema>, dan penggantian entitas form$[dataName] tidak didukung.
<extrude> tidak
<fill> ya
<flyToView> tidak <NetworkLinkControl> tidak didukung
<Folder> ya
<gridOrigin> N/A <PhotoOverlay> tidak didukung
<GroundOverlay> ya
<heading> ya
<hotSpot> ya
<href> ya
<httpQuery> tidak
<Icon> ya
<IconStyle> ya
<ImagePyramid> N/A <PhotoOverlay> tidak didukung
<innerBoundaryIs> ya secara implisit dari perintah <LinearRing>
<ItemIcon> N/A <ListStyle> tidak didukung
<key> ya
<kml> ya
<LabelStyle> tidak
<latitude> ya
<LatLonAltBox> tidak
<LatLonBox> ya
<leftFov> N/A <PhotoOverlay> tidak didukung
<LinearRing> ya
<LineString> ya
<LineStyle> ya
<Link> tidak
<linkDescription> N/A <NetworkLinkControl> tidak didukung
<linkName> N/A <NetworkLinkControl> tidak didukung
<linkSnippet> N/A <NetworkLinkControl> tidak didukung
<listItemType> N/A <ListStyle> tidak didukung
<ListStyle> tidak
<Location> N/A <Model> tidak didukung
<Lod> ya
<longitude> ya
<LookAt> tidak
<maxAltitude> tidak
<maxFadeExtent> tidak
<maxHeight> N/A <PhotoOverlay> tidak didukung
<maxLodPixels> tidak
<maxSessionLength> tidak
<maxWidth> N/A <PhotoOverlay> tidak didukung
<message> tidak
<minAltitude> tidak
<minFadeExtent> tidak
<minLodPixels> tidak
<minRefreshPeriod> tidak <NetworkLink>
<Model> tidak
<MultiGeometry> ya
<name> ya
<near> N/A <PhotoOverlay> tidak didukung
<NetworkLink> tidak
<NetworkLinkControl> tidak
<north> ya
<open> ya Disimpan sebagai nilai properti
<Orientation> N/A <Model> tidak didukung
<outerBoundaryIs> ya secara implisit dari perintah <LinearRing>
<outline> ya
<overlayXY> tidak
<Pair> ya
<phoneNumber> sebagian Disimpan sebagai nilai properti
<PhotoOverlay> tidak
<Placemark> ya
<Point> ya
<Polygon> ya
<PolyStyle> ya
<range> ya
<refreshInterval> tidak
<refreshMode> tidak
<refreshVisibility> tidak
<Region> ya
<ResourceMap> N/A <Model> tidak didukung
<rightFov> N/A <PhotoOverlay> tidak didukung
<roll> N/A <Camera> dan <Model> tidak didukung
<rotation> ya
<rotationXY> tidak
<Scale> N/A <Model> tidak didukung
<scale> ya
<Schema> tidak
<SchemaData> tidak
<ScreenOverlay> tidak
<screenXY> N/A <ScreenOverlay> tidak didukung
<shape> N/A <PhotoOverlay> tidak didukung
<SimpleData> N/A <SchemaData> tidak didukung
<SimpleField> N/A <Schema> tidak didukung
<size> ya
<Snippet> tidak
<south> ya
<state> N/A <ListStyle> tidak didukung
<Style> ya
<StyleMap> sebagian Gaya yang disorot tidak diberikan. StyleMaps sebaris tidak didukung
<styleUrl> ya
<targetHref> tidak <Alias> tidak didukung
<tessellate> tidak
<text> ya
<textColor> tidak
<tileSize> N/A <PhotoOverlay> tidak didukung
<tilt> tidak
<TimeSpan> tidak
<TimeStamp> tidak
<topFov> N/A <PhotoOverlay> tidak didukung
<Update> N/A <NetworkLinkControl> tidak didukung
<value> ya
<viewBoundScale> tidak
<viewFormat> tidak
<viewRefreshMode> tidak
<viewRefreshTime> tidak
<ViewVolume> N/A <PhotoOverlay> tidak didukung
<visibility> ya
<west> ya
<when> N/A <TimeStamp> tidak didukung
<width> ya

Kirim masukan tentang...

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