我正在使用MKTileOverlay在Apple地图上叠加旧地图。
叠加层平铺,覆盖面积约10平方英里。
所有似乎都能正常工作,因为叠加层可以正确呈现。
但是,渲染器似乎正在尝试为视图中的整个区域加载叠加切片,即使切片图像文件不存在,因为它们位于叠加地图区域之外。
这会导致记录错误消息流。
Error Domain=NSURLErrorDomain Code=-1100
"The requested URL was not found on this server."
我尝试过继承MKTileOverlay并捕获未找到URL但没有成功的情况。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
感谢Apple Developer论坛上的用户: junkpile ,需要将 MKTileOverlay 子类化为将 boundingMapRect 限制为所需的大小。
import MapKit
class CustomTileOverlay : MKTileOverlay {
override var boundingMapRect: MKMapRect {
get {
//North-East Corner of overlay region
let lat1 = 53.46075
let long1 = -1.92618
//South-West Corner of overlay region
let lat2 = 53.43018
let long2 = -1.992885
//Convert to Coordinates
let coord1 = CLLocationCoordinate2DMake(lat1,long1)
let coord2 = CLLocationCoordinate2DMake(lat2,long2)
//Convert to map points
let p1 = MKMapPointForCoordinate (coord1);
let p2 = MKMapPointForCoordinate (coord2);
//Return the MKMapRect
return MKMapRectMake(fmin(p1.x,p2.x), fmin(p1.y,p2.y), fabs(p1.x-p2.x), fabs(p1.y-p2.y));
}
}
}