MKTileOverlay - "Запрошенный URL не найден на этом сервере".

Я использую MKTileOverlay, чтобы наложить старую карту поверх карт Apple.

Наложение покрыто плиткой и охватывает область около 10 квадратных миль.

Кажется, что все работает нормально в том, что наложение отрисовывается правильно.

Однако, похоже, что средство визуализации пытается загрузить наложенные плитки для всего видимого региона, даже если файлы изображений листов не существуют, потому что они находятся за пределами области карты наложения.

Это приводит к регистрации потока сообщений об ошибках.

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

Я попытался создать подкласс MKTileOverlay и отследить случаи, когда URL не найден, но безуспешно.

Кто-нибудь знает как это решить?

1 ответ

Благодаря пользователю: junkpile на форуме Apple Developer необходимо создать подкласс 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)); 
            }
        }
}
Другие вопросы по тегам