2015-10-28 203 views
0

我正在使用MKTileOverlay在Apple地图上覆盖旧地图。MKTileOverlay - ”在此服务器上找不到请求的URL。“

覆盖物平铺并覆盖约10平方英里的区域。

所有似乎正常工作,覆盖层呈现正确。

但是,看起来渲染器正试图加载视图中整个区域的叠加拼贴,即使拼贴图像文件因为位于叠加贴图区域之外而不存在时也是如此。

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

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

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

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

回答

0

感谢用户: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)); 
      } 
     } 
} 
相关问题