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; nokta, çizgi ve poligon 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ı örnek KML verileri gösterilmektedir:

KML verileri bulunan bir harita

Ön koşullar ve notlar

GMUKMLParser, iOS Yardımcı Program Kitaplığı'nın Haritalar SDK'sı kapsamındadır. Kitaplığı henüz kurmadıysanız bu sayfanın geri kalanını okumadan önce kurulum kılavuzunu uygulayın.

Kod kodunun tamamı için GitHub'daki örnek uygulamalara bakın.

KML verilerini oluşturma

KML verilerini bir harita üzerinde oluşturmak için KML kaynağı yolu içeren bir GMUKMLParser oluşturun (bu örnekte KML_Sample.kml). Ardından, GMUKMLParser örneğini ileten bir GMUGeometryRenderer oluşturun. Son olarak GMUGeometryRenderer.render() numaralı telefonu arayın. Aşağıdaki kod örneği, KML verilerinin bir haritada oluşturulmasını göstermektedir:

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