KML

Platform seçin: Android iOS JavaScript

Bu sayfada, GMUGeometryRenderer ile birlikte GMUKMLParser kullanılarak coğrafi verilerin KML biçiminde nasıl oluşturulacağı gösterilmektedir. KML noktalar, çizgiler ve poligonlar gibi coğrafi verileri oluşturmak için kullanılan popüler bir biçimdir.

Aşağıdaki ekran görüntüsünde, haritada oluşturulan bazı KML verileri örneği gösterilmektedir:

KML verilerinin bulunduğu bir harita

Ön koşullar ve notlar

GMUKMLParser, iOS için Haritalar SDK'sı Yardımcı Program Kitaplığı'nın bir parçasıdır. Kitaplığı henüz oluşturmadıysanız bu sayfanın geri kalanını okumadan önce kurulum kılavuzundaki talimatları uygulayın.

Tam kod örneği için GitHub'daki örnek uygulamalara bakın.

KML verileri oluşturma

KML verilerini bir haritada oluşturmak için, KML kaynağına (bu örnekte KML_Sample.kml) giden yolu kullanarak bir GMUKMLParser oluşturun. Ardından, GMUKMLParser örneğini ileten bir GMUGeometryRenderer oluşturun. Son olarak GMUGeometryRenderer.render() adlı kişiyi arayın. Aşağıdaki kod örneğinde, KML verilerinin bir haritada oluşturulması gösterilmektedir:

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