Pour charger des tuiles personnalisées dans MKMapView
vous devez sous-classe MKTileOverlay
et remplacer la méthode url(forTilePath path: MKTileOverlayPath) -> URL
MKTitleOverlay
contient x, y et z propriétés pour la tuile. Ainsi, la mise en œuvre peut ressembler à ceci:
override func url(forTilePath path: MKTileOverlayPath) -> URL {
let tilePath = Bundle.main.url(
forResource: "\(path.y)",
withExtension: "png",
subdirectory: "tiles/\(path.z)/\(path.x)",
localization: nil)!
return tile
}
Dans votre fonction de réglage mapView
ajouter ce qui suit:
let overlay = CustomTileOverlay()
overlay.canReplaceMapContent = true
mapView.add(overlay, level: .aboveLabels)
aussi ne pas oublier de retourner dans renderer
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
return MKTileOverlayRenderer(tileOverlay: overlay)
}
post-scriptum Il ya un grand tutoriel sur raywenderlich.com sur ce sujet:
s'il vous plaît partager le code que vous avez essayé –