KML

Pilih platform: Android iOS JavaScript

Halaman ini menunjukkan cara merender data geografis dalam format KML, menggunakan GMUKMLParser bersama dengan GMUGeometryRenderer. KML adalah format populer untuk merender data geografis seperti titik, garis, dan poligon.

Screenshot berikut menunjukkan beberapa contoh data KML yang dirender pada peta:

Sebuah peta dengan data KML

Prasyarat dan catatan

GMUKMLParser adalah bagian dari Library Utilitas Maps SDK for iOS. Jika Anda belum menyiapkan library, ikuti panduan penyiapan sebelum membaca bagian lainnya dari halaman ini.

Untuk contoh kode lengkap, lihat aplikasi contoh di GitHub.

Merender data KML

Untuk merender data KML pada peta, buat GMUKMLParser dengan jalur ke resource KML (KML_Sample.kml dalam contoh ini). Kemudian, buat GMUGeometryRenderer yang meneruskan instance GMUKMLParser. Terakhir, panggil GMUGeometryRenderer.render(). Contoh kode berikut menunjukkan rendering data KML pada peta:

Swift

import GoogleMapsUtils

class KML: NSObject {
  private var mapView: GMSMapView!

  func renderKml() {
    guard let path = Bundle.main.path(forResource: "KML_Sample", ofType: "kml") else {
      print("Invalid path")
      return
    }

    let url = URL(fileURLWithPath: path)

    let kmlParser = GMUKMLParser(url: url)
    kmlParser.parse()

    let renderer = GMUGeometryRenderer(
      map: mapView,
      geometries: kmlParser.placemarks,
      styles: kmlParser.styles
    )

    renderer.render()
  }
}
      

Objective-C

@import GoogleMapsUtils;

@implementation KML {
  GMSMapView *_mapView;
}

- (void)renderKml {
  NSString *path = [[NSBundle mainBundle] pathForResource:@"KML_Sample" ofType:@"kml"];
  NSURL *url = [NSURL fileURLWithPath:path];
  GMUKMLParser *parser = [[GMUKMLParser alloc] initWithURL:url];
  [parser parse];
  GMUGeometryRenderer *renderer = [[GMUGeometryRenderer alloc] initWithMap:_mapView
                                                                geometries:parser.placemarks
                                                                    styles:parser.styles];
  [renderer render];
}

@end