KML

Sélectionnez une plate-forme : Android iOS JavaScript

Cette page explique comment effectuer le rendu des données géographiques dans le fichier KML en utilisant GMUKMLParser dans conjointement avec GMUGeometryRenderer. KML est un langage pour le rendu de données géographiques telles que les points, les lignes et les polygones.

La capture d'écran suivante montre quelques exemples de données KML affichées sur une carte:

Une carte avec des données KML

Prérequis et remarques

GMUKMLParser fait partie de la bibliothèque d'utilitaires du SDK Maps pour iOS. Si vous n'avez pas encore configuré consultez le guide de configuration avant de poursuivre votre lecture.

Pour obtenir l'exemple de code complet, consultez les applications exemples allumé GitHub

Rendu des données KML

Pour effectuer le rendu des données KML sur une carte, créez un GMUKMLParser avec le paramètre vers une ressource KML (KML_Sample.kml dans cet exemple). Ensuite, créer un GMUGeometryRenderer en transmettant GMUKMLParser Compute Engine. Enfin, appelez GMUGeometryRenderer.render(). La L'exemple de code suivant montre comment afficher des données KML sur une carte:

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