如何解决Swift IOS 覆盖
我的 IOS 地图没有在它上面渲染 NOAA 瓷砖。有人可以给我一个线索什么是错的?这是我的视图控制器。它只是一个标准的 mapkit 查看器。无论如何,它不起作用,只是在我运行此代码时给我一张标准的卫星地图。有谁知道我做错了什么? 感谢您为我提供的任何帮助。
祝您周末愉快。
import UIKit
import MapKit
class ViewController: UIViewController,MKMapViewDelegate,CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
//Linking MapView
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
self.mapView.mapType = MKMapType.satellite
let centre = CLLocationCoordinate2D(latitude: 39.2189,longitude: -76.0690)
let span = MKCoordinateSpan(latitudeDelta: 0.05,longitudeDelta: 0.05)
let region = MKCoordinateRegion(center: centre,span: span)
self.mapView.setRegion(region,animated: false)
self.mapView.regionThatFits(region)
let template = "https://tileservice.charts.noaa.gov/tiles/50000_1/{z}/{x}/{y}.png"
let carte_indice = MKTileOverlay(urlTemplate:template)
carte_indice.isGeometryFlipped = 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!,rendererFor overlay: MKOverlay!) -> MKOverlayRenderer!
{
if overlay is MKTileOverlay{
var renderer = MKTileOverlayRenderer(overlay:overlay)
renderer.alpha = 0.8
return renderer
}
return nil
}
}
解决方法
经过深思熟虑,我解决了我的问题。如果有人需要,请发布解决方案。
感谢 GJ Nilsen 帮助我解决了这个问题。问题是 NOAA 磁贴没有覆盖所有地方,所以我通过简化强制加载来解决它。
if overlay is MKTileOverlay{
var renderer = MKTileOverlayRenderer(overlay:overlay)
renderer.alpha = 0.8
return renderer
}
else{
var renderer = MKTileOverlayRenderer(overlay:overlay)
renderer.alpha = 0.8
return renderer
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。