diff --git a/Example/MapKitGoogleStyler/ViewController.swift b/Example/MapKitGoogleStyler/ViewController.swift index 95aa341..2395803 100644 --- a/Example/MapKitGoogleStyler/ViewController.swift +++ b/Example/MapKitGoogleStyler/ViewController.swift @@ -11,28 +11,42 @@ import MapKit import MapKitGoogleStyler class ViewController: UIViewController { - + @IBOutlet weak var mapView: MKMapView! override func viewDidLoad() { super.viewDidLoad() - guard let jsonURL = Bundle.main.url(forResource: "MapStyle", withExtension: "json") else { - print("Invalid json url") + mapView.delegate = self + configureTileOverlay() + } + + func configureTileOverlay() { + // We first need to have the path of the overlay configuration JSON + guard let overlayFileURLString = Bundle.main.path(forResource: "MapStyle", ofType: "json") else { return } + let overlayFileURL = URL(fileURLWithPath: overlayFileURLString) - do { - try mapView.customize(withJSONFileURL: jsonURL) - } catch let error { - print("Error! \(error)") + // After that, you can create the tile overlay using MapKitGoogleStyler + guard let tileOverlay = try? MapKitGoogleStyler.buildOverlay(with: overlayFileURL) else { + return } + + // And finally add it to your MKMapView + mapView.add(tileOverlay) } +} - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. +extension ViewController: MKMapViewDelegate { + func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { + // This is the final step. This code can be copied and pasted into your project + // without thinking on it so much. It simply instantiates a MKTileOverlayRenderer + // for displaying the tile overlay. + if let tileOverlay = overlay as? MKTileOverlay { + return MKTileOverlayRenderer(tileOverlay: tileOverlay) + } else { + return MKOverlayRenderer(overlay: overlay) + } } - } -