2016-05-08 5 views
1

Das Hinzufügen eines Overlays mit einer gekachelten Karte soll einfach sein. Ich habe ein großes Problem. Sie zeigen es nicht.MKTileOverlay - Hinzufügen von Bündelkacheln

Ich habe Karte Fliesen des Zentrums von Bayeux in 15 16 und 17 zoom in einem Ordner baymap. Ich schob den Ordner in das Projekt.

hier ist der Code

import UIKit 
    import MapKit 

    class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { 

    @IBOutlet weak var mapView: MKMapView! 

    let locationManager = CLLocationManager() 

    var latitude: CLLocationDegrees = 0.0 
    var longitude: CLLocationDegrees = 0.0 

    var cnt: Int = 0 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.mapView.delegate = self 

     self.mapView.mapType = MKMapType.Standard 

     //Map centre 
     let centre = CLLocationCoordinate2D(latitude: 49.275, 
     longitude: -0.7028) 

     //Declare span of map 
     let span = MKCoordinateSpan(latitudeDelta: 0.01, 
     longitudeDelta: 0.01) 

     //Set region of the map 
     let region = MKCoordinateRegion(center: centre, span: span) 
     self.mapView.setRegion(region, animated: false) 
     self.mapView.regionThatFits(region) 



     //Get the URL template to the map tiles 
     let baseURL = NSBundle.mainBundle().bundleURL.absoluteString 

     let urlTemplate = baseURL.stringByAppendingString("baymap/{z}/{x}/{y}.png/") 
     print(urlTemplate) 

     let carte_indice = MKTileOverlay(URLTemplate:urlTemplate) 


     carte_indice.geometryFlipped = true 

     carte_indice.canReplaceMapContent = false 


    self.mapView.addOverlay(carte_indice) 



} 



override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! 
{ 
    print("call overlay") 
    if overlay is MKTileOverlay 
    { 
print("is MKTileoverlay") 
    var renderer = MKTileOverlayRenderer(overlay:overlay) 

    renderer.alpha = 0.8 

    return renderer 
    } 
    return nil 
} 
} 

ich die Frage bearbeitet haben print "Anruf-Overlay" hinzufügen und "ist MKTileoverlay". Beide drucken in der Konsole.

Die Apfelkarte von Bayeux zeigt gut, aber keine Überlagerung.

In der Konsole bekomme ich Dutzende von Fehlern wie diese, die sich auf Kacheln beziehen, die nicht im Paket enthalten sind.

: Fehler beim Laden des URL file: /// Users/colinmcgarry/Library/Developer/CoreSimulator/Geräte/5A9A20A4-9C3F-4A65-8823-9721463FF985/data/Behälter/Bundle/Anwendung/D2C87A46-E848-4C0D-9B05 -30E731EC037F/TileOverlaystack.app/baymap/17/65283/86214.png /: Fehler Domain = NSURLErrorDomain Code = -1100 "Die angeforderte URL wurde auf diesem Server nicht gefunden."

kann jemand sehen, was ich falsch mache. Gibt es ein gutes Tutorial in Swift?

danke

Antwort

0

Die Lösung gefunden. carte_indice.geometryFlipped = true

sollte falsch sein.

hängt vom Kachel-System ab.