KML

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

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

تصویر زیر نمونه ای از داده های KML ارائه شده بر روی نقشه را نشان می دهد:

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

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

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

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

ارائه داده های KML

برای ارائه داده های KML روی نقشه، یک GMUKMLParser با مسیر منبع KML ایجاد کنید ( KML_Sample.kml در این مثال). سپس، یک GMUGeometryRenderer ایجاد کنید که نمونه GMUKMLParser را ارسال می کند. در نهایت، GMUGeometryRenderer.render() را فراخوانی کنید. مثال کد زیر نمایش داده های KML را بر روی نقشه نشان می دهد:

سویفت

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()
  }
}
      

هدف-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