KML

Seleziona piattaforma: Android iOS JavaScript

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

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

Una mappa con dati KML

Prerequisiti e note

GMUKMLParser fa parte della Raccolta di Maps SDK for iOS. Se non hai ancora configurato la raccolta, segui la guida alla configurazione prima di leggere il resto di questa pagina.

Per l'esempio di codice completo, consulta le app di esempio su GitHub.

Rendering dei dati KML

Per visualizzare i dati KML su una mappa, crea un GMUKMLParser con il percorso di una risorsa KML (KML_Sample.kml in questo esempio). Dopodiché, crea un elemento GMUGeometryRenderer che passi l'istanza GMUKMLParser. Infine, chiama il numero GMUGeometryRenderer.render(). Il seguente esempio di codice 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