0

我正在使用 MKTileOverlay 在 Apple 地图上覆盖旧地图。

覆盖是平铺的,覆盖了大约 10 平方英里的区域。

一切似乎都可以正常工作,因为叠加层可以正确呈现。

但是,渲染器似乎正在尝试为视图中的整个区域加载覆盖图块,即使因为它们在覆盖图区域之外而不存在图块图像文件也是如此。

这会导致记录错误消息流。

Error Domain=NSURLErrorDomain Code=-1100 
"The requested URL was not found on this server." 

我已经尝试子类化 MKTileOverlay 并捕获未找到 URL 但没有成功的情况。

有谁知道如何解决这个问题?

4

1 回答 1

0

感谢用户:Apple 开发者论坛上的垃圾堆,需要继承 MKTileOverlayboundingMapRect限制为所需的大小。

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)); 
            }
        }
}
于 2015-10-29T11:16:10.737 回答