KML

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

Trang này trình bày cách kết xuất dữ liệu địa lý trong KML sử dụng GMUKMLParser trong kết hợp với GMUGeometryRenderer. KML là một định dạng tệp phổ biến để kết xuất dữ liệu địa lý như điểm, đường và đa giác.

Ảnh chụp màn hình sau đây minh hoạ một số dữ liệu KML mẫu được kết xuất 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 Bản đồ 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 bật GitHub.

Hiển thị dữ liệu KML

Để kết xuất dữ liệu KML trên bản đồ, hãy tạo GMUKMLParser với phần tử đường dẫn đến một tài nguyên KML (trong ví dụ này là KML_Sample.kml). Sau đó: tạo một GMUGeometryRenderer truyền GMUKMLParser thực thể. Cuối cùng, hãy gọi GMUGeometryRenderer.render(). Chiến lược phát hành đĩa đơn mã ví dụ sau đây minh hoạ việc kết xuất 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