KML

Seleziona la piattaforma: Android iOS JavaScript

Questa pagina mostra come visualizzare i dati geografici in formato KML, utilizzando GMUKMLParser in combinazione con GMUGeometryRenderer. KML è un formato 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 della libreria di utilità di Maps SDK for iOS. Se non hai ancora configurato la libreria, 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 elemento GMUKMLParser con il percorso di una risorsa KML (KML_Sample.kml in questo esempio). Poi, crea un valore GMUGeometryRenderer per passare l'istanza GMUKMLParser. Infine, chiama il numero GMUGeometryRenderer.render(). 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