KML

Plattform auswählen: Android iOS JavaScript

Auf dieser Seite erfahren Sie, wie Sie geografische Daten im KML-Format mit GMUKMLParser in Verbindung mit GMUGeometryRenderer rendern. KML ist ein beliebtes Format zum Rendern geografischer Daten wie Punkte, Linien und Polygone.

Der folgende Screenshot zeigt einige Beispiele für KML-Daten, die auf einer Karte gerendert werden:

Eine Karte mit KML-Daten

Voraussetzungen und Hinweise

GMUKMLParser ist Teil der Maps SDK for iOS-Dienstprogrammbibliothek. Wenn Sie die Bibliothek noch nicht eingerichtet haben, folgen Sie der Einrichtungsanleitung, bevor Sie mit dem Rest dieser Seite fortfahren.

Das vollständige Codebeispiel finden Sie in den Beispielanwendungen auf GitHub.

KML-Daten rendern

Zum Rendern von KML-Daten auf einer Karte müssen Sie einen GMUKMLParser mit dem Pfad zu einer KML-Ressource (in diesem Beispiel KML_Sample.kml) erstellen. Erstellen Sie dann ein GMUGeometryRenderer und übergeben Sie die GMUKMLParser-Instanz. Rufen Sie abschließend GMUGeometryRenderer.render() auf. Das folgende Codebeispiel zeigt das Rendern von KML-Daten auf einer Karte:

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