GeoJSON

Sélectionnez une plate-forme : Android iOS JavaScript

Cette page explique comment afficher des données géographiques dans le fichier GeoJSON à l'aide de GMUGeoJSONParser, dans conjointement avec GMUGeometryRenderer. Le format GeoJSON est populaire pour le rendu de données géographiques telles que les points, les lignes et les polygones.

Prérequis et remarques

GMUGeoJSONParser 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

Afficher des données GeoJSON

Pour afficher des données GeoJSON sur une carte, créez un GMUGeoJSONParser avec le chemin d'accès à une ressource GeoJSON (GeoJSON_sample.kml dans ce exemple). Ensuite, créez un GMUGeometryRenderer, en transmettant GMUKMLParser instance. Enfin, appelez GMUGeometryRenderer.render() L'exemple de code suivant montre afficher des données GeoJSON sur une carte:

Swift

import GoogleMapsUtils

class GeoJSON {
  private var mapView: GMSMapView!

  func renderGeoJSON() {
    guard let path = Bundle.main.path(forResource: "GeoJSON_sample", ofType: "json") else {
      return
    }

    let url = URL(fileURLWithPath: path)

    let geoJsonParser = GMUGeoJSONParser(url: url)
    geoJsonParser.parse()

    let renderer = GMUGeometryRenderer(map: mapView, geometries: geoJsonParser.features)
    renderer.render()
  }
}
      

Objective-C

@import GoogleMapsUtils;

@implementation GeoJSON {
  GMSMapView *_mapView;
}

- (void)renderGeoJSON {
  NSString *path = [[NSBundle mainBundle] pathForResource:@"GeoJSON_sample" ofType:@"json"];
  NSURL *url = [NSURL fileURLWithPath:path];
  GMUGeoJSONParser *parser = [[GMUGeoJSONParser alloc] initWithURL:url];
  [parser parse];
  GMUGeometryRenderer *renderer = [[GMUGeometryRenderer alloc] initWithMap:_mapView
                                                                geometries:parser.features];
  [renderer render];
}

@end