Created
May 29, 2017 13:53
-
-
Save asus4/75ee2bd177ab27d6223bb996512a69fd to your computer and use it in GitHub Desktop.
Sample for KML.swift
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// PathViewController.swift | |
// Kml | |
// | |
// Created by Koki Ibukuro on 8/18/15. | |
// Copyright (c) 2015 asus4. All rights reserved. | |
// | |
import UIKit | |
import MapKit | |
// Path to MKPolylineRenderer | |
// Polygon to MKPolygonRenderer | |
class PathViewController: UIViewController { | |
@IBOutlet weak var mapView: MKMapView! | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
mapView.delegate = self | |
loadKml("sample") | |
} | |
override func didReceiveMemoryWarning() { | |
super.didReceiveMemoryWarning() | |
} | |
func loadKml(_ path: String) { | |
let url = Bundle.main.url(forResource: path, withExtension: "kml") | |
KMLDocument.parse(url!, callback: | |
{ [unowned self] (kml) in | |
// Add overlays | |
self.mapView.addOverlays(kml.overlays) | |
// Add annotations | |
self.mapView.showAnnotations(kml.annotations, animated: true) | |
} | |
) | |
} | |
} | |
extension PathViewController: MKMapViewDelegate { | |
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { | |
if let overlayPolyline = overlay as? KMLOverlayPolyline { | |
// return MKPolylineRenderer | |
return overlayPolyline.renderer() | |
} | |
if let overlayPolygon = overlay as? KMLOverlayPolygon { | |
// return MKPolygonRenderer | |
return overlayPolygon.renderer() | |
} | |
return MKOverlayRenderer(overlay: overlay) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment