KML

پلاتفرم را انتخاب کنید: Android iOS JavaScript

این صفحه به شما نشان می‌دهد که چگونه داده‌های جغرافیایی را در قالب KML بااستفاده از GMUKMLParser در ارتباط با GMUGeometryRenderer ارائه دهید. KML قالب محبوبی برای ارائه داده‌های جغرافیایی مانند نقاط، خطوط، و چندضلعی‌ها است.

نماگرفت زیر چند نمونه از داده‌های KML را نشان می‌دهد که روی نقشه ارائه شده‌اند:

نقشه با داده‌های KML

پیش‌نیازها و نکته‌ها

GMUKMLParser بخشی از کتابخانه کاروری‌های کیت توسعه نرم‌افزار Maps ویژه iOS است. اگر هنوز کتابخانه را راه‌اندازی نکرده‌اید، قبل‌از خواندن بقیه این صفحه، راهنمای راه‌اندازی را دنبال کنید.

برای نمونه کد کامل، برنامه‌های نمونه را در GitHub ببینید.

درحال پرداز زدن داده‌های KML

برای ارائه داده‌های KML روی نقشه، یک GMUKMLParser با مسیر به منبع KML (KML_Sample.kml در این مثال) ایجاد کنید. سپس، 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()
  }
}
      

آبجکتیو-سی

@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