MKTileOverlay - “在此服务器上找不到请求的 URL。”
Posted
技术标签:
【中文标题】MKTileOverlay - “在此服务器上找不到请求的 URL。”【英文标题】:MKTileOverlay - "The requested URL was not found on this server." 【发布时间】:2015-10-28 13:32:22 【问题描述】:我正在使用 MKTileOverlay 将旧地图覆盖在 Apple 地图之上。
覆盖是平铺的,覆盖了大约 10 平方英里的区域。
所有似乎都可以正常工作,因为叠加层可以正确呈现。
但是,渲染器似乎正在尝试为视图中的整个区域加载叠加图块,即使拼图图像文件不存在,因为它们位于叠加图区域之外。
这会导致记录错误消息流。
Error Domain=NSURLErrorDomain Code=-1100
"The requested URL was not found on this server."
我已经尝试子类化 MKTileOverlay 并捕获未找到 URL 但没有成功的情况。
有人知道怎么解决吗?
【问题讨论】:
【参考方案1】:感谢用户:Apple 开发者论坛上的 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));
【讨论】:
以上是关于MKTileOverlay - “在此服务器上找不到请求的 URL。”的主要内容,如果未能解决你的问题,请参考以下文章