KML

透過集合功能整理內容 你可以依據偏好儲存及分類內容。
選取平台: Android iOS JavaScript

本頁面顯示如何使用 GMUKMLParserGMUGeometryRenderer 搭配使用,以 KML 格式的算繪地理資料。KML 是轉譯地理資料 (如點、線和多邊形) 的熱門格式。

以下螢幕截圖顯示在地圖上算繪的 KML 資料範例:

含 KML 資料的地圖

必要條件和注意事項

GMUKMLParserMaps SDK for iOS 公用程式庫的一部分。如果您尚未設定程式庫,請先按照設定指南的步驟完成設定,再閱讀本頁面的其他內容。

如需完整程式碼範例,請參閱 GitHub 中的範例應用程式。

轉譯 KML 資料

如要在地圖上顯示 KML 資料,請建立內含 KML 資源路徑 (在此範例中為 KML_Sample.kml) 的 GMUKMLParser。接著建立 GMUGeometryRenderer 傳遞 GMUKMLParser 執行個體。最後,呼叫 GMUGeometryRenderer.render()。以下程式碼範例顯示在地圖上算繪 KML 資料的方式:

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