GeoJSON

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wybierz platformę: Android iOS JavaScript

Ta strona pokazuje, jak renderować dane geograficzne w formacie GeoJSON przy użyciu GMUGeoJSONParser w połączeniu z GMUGeometryRenderer. GeoJSON to popularny format renderowania danych geograficznych, takich jak punkty, linie czy wielokąty.

Wymagania wstępne i informacje

GMUGeoJSONParser należy do biblioteki SDK Maps na iOS. Jeśli nie masz jeszcze skonfigurowanej biblioteki, zapoznaj się z przewodnikiem po konfiguracji, zanim przeczytasz pozostałą część tej strony.

Pełną listę przykładów znajdziesz na przykładach aplikacji na GitHubie.

Renderowanie danych GeoJSON

Aby renderować na mapie dane GeoJSON, utwórz GMUGeoJSONParser ze ścieżką do zasobu GeoJSON (w tym przykładzie będzie to GeoJSON_sample.kml). Następnie utwórz GMUGeometryRenderer i przekaż instancję GMUKMLParser. Na koniec zadzwoń do firmy GMUGeometryRenderer.render(). Poniższy przykładowy kod pokazuje, jak renderować dane GeoJSON na mapie:

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