KML

Chọn nền tảng: Android iOS JavaScript

Trang này cho bạn biết cách hiển thị dữ liệu địa lý ở định dạng KML, bằng cách sử dụng GMUKMLParser kết hợp với GMUGeometryRenderer. KML là một định dạng phổ biến để hiển thị dữ liệu địa lý, chẳng hạn như điểm, đường kẻ và đa giác.

Ảnh chụp màn hình sau đây cho thấy một số dữ liệu KML mẫu được hiển thị trên bản đồ:

Bản đồ có dữ liệu KML

Điều kiện tiên quyết và lưu ý

GMUKMLParser là một phần của SDK Maps dành cho Thư viện tiện ích iOS. Nếu bạn chưa thiết lập thư viện, hãy làm theo hướng dẫn thiết lập trước khi đọc phần còn lại của trang này.

Để xem mã mẫu đầy đủ, hãy xem các ứng dụng mẫu trên GitHub.

Hiển thị dữ liệu KML

Để hiển thị dữ liệu KML trên bản đồ, hãy tạo GMUKMLParser có đường dẫn đến tài nguyên KML (KML_Sample.kml trong ví dụ này). Sau đó, hãy tạo GMUGeometryRenderer truyền thực thể GMUKMLParser. Cuối cùng, hãy gọi GMUGeometryRenderer.render(). Mã ví dụ sau đây cho thấy việc hiển thị dữ liệu KML trên bản đồ:

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