此页面介绍了如何将 GMUKMLParser
与 GMUGeometryRenderer
结合使用,以 KML 格式渲染地理数据。KML 是一种渲染地理数据(例如点、线和多边形)的常用格式。
以下屏幕截图显示了在地图上渲染的一些 KML 数据示例:
![一幅包含 KML 数据的地图](https://developers.google.cn/static/maps/documentation/ios-sdk/images/kml-render-example.png?authuser=1&hl=fi)
前提条件和说明
GMUKMLParser
是 Maps SDK for iOS 实用程序库的一部分。如果您尚未设置该库,请先按照设置指南操作,然后再阅读本页面的其余内容。
如需查看完整的代码示例,请参阅 GitHub 上的示例应用。
渲染 KML 数据
如需在地图上渲染 KML 数据,请创建一个 GMUKMLParser
,其中包含 KML 资源(在此示例中为 KML_Sample.kml
)的路径。然后,创建一个传递 GMUKMLParser
实例的 GMUGeometryRenderer
。最后,调用 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