KML

Seleziona la piattaforma: Android iOS JavaScript

Questa pagina mostra come eseguire il rendering dei dati geografici nel file KML utilizzando GMUKMLParser in in combinazione con GMUGeometryRenderer. KML è un popolare per il rendering di dati geografici come punti, linee e poligoni.

Il seguente screenshot mostra alcuni dati KML di esempio visualizzati su una mappa:

Una mappa con dati KML

Prerequisiti e note

GMUKMLParser fa parte di la libreria di utilità di Maps SDK for iOS. Se non l'hai ancora fatto, Nella libreria, segui la guida alla configurazione prima di leggere il resto di questa pagina.

Per l'esempio di codice completo, vedi le app di esempio attivata GitHub.

Rendering dei dati KML

Per visualizzare i dati KML su una mappa, crea un GMUKMLParser con di una risorsa KML (KML_Sample.kml in questo esempio). Poi, crea un GMUGeometryRenderer passando GMUKMLParser in esecuzione in un'istanza Compute Engine. Infine, chiama GMUGeometryRenderer.render(). La l'esempio di codice riportato di seguito mostra il rendering dei dati KML su una mappa:

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