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](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/ios-sdk/images/kml-render-example.png?authuser=4&hl=it)
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