ios - MKMapView fails to load tiles with HTTP 410 error -


i have problem mkmapview. map fails load tiles when zoom in.

-(void)mapviewdidfailloadingmap:(mkmapview *)mapview witherror:(nserror *)error  

error:

domain=geoerrordomain code=-204 "(null)" userinfo={simpletilerequesterunderlyingerrors=( "error domain=geoerrordomain code=-204 \"(null)\" userinfo={httpstatus=410, nserrorfailingurlstringkey=http://gspe19.ls.apple.com/tile.vf?flags=1&style=20&size=2&scale=0&v=11037825&z=15&x=6205&y=12336&sid=0246704635757302674107153038443966765357&accesskey=1454685602_q3bvuyvhbdxsso0a_j0fk7eyq9b21npshv7grlzr4wfkkhxb4vo7%2blxcgsxj4zzhvhtalvwsypa3plu60cdrmrfwmwcybgrla9mchv%2fhorhotu9agi72vqp9ukzw%2b0gkqfrhpcw4xr%2f%2fttvgjz7wu4u4kna8k2rvvq%2foffhjq7oo4nyectvy0ur4i9d3sxf%2btn9dcxu8agdrjignb}", ...

edit: seems related cache somehow, i'm not sure. problem disappears time after loading same map region in maps application.

thanks in advance

i analysed , described problem on apple developer forum: https://forums.developer.apple.com/thread/43077


there problem mapkit on ios - map fails load, time loads partially, displaying plain grid tile failed load. problem happens systemwide in every app uses mapkit, in apple maps app. problem happens on both iphones (6+) , ipads (ipad air, ipad air 2, ipad mini) , range of ios versions (9.0, 9.0.2, 9.2.1). furthermore seems happen more when map zoom high. problem hard reproduce, because looks happen randomly, persists on affected device time , disappears.

i managed analyse network traffic , found possible reason of strange behaviour. network requests associated missing tiles fail http status code 410 , empty content:

get http://gspe19.ls.apple.com/tile.vf?flags=1&style=13&size=2&scale=0&v=11040322&z=15&x=17923&y=10756&sid=some_sid_1&accesskey=some_access_key_1 <- 410   http://gspe19.ls.apple.com/tile.vf?flags=1&style=20&size=2&scale=0&v=11040322&z=15&x=17923&y=10756&sid=some_sid_1&accesskey=some_access_key_1 <- 410   ...   

'v' parameter seems map version number , grow time. looks version number can change after 'geo_manifest' network call, happens time time:

get https://gspe35-ssl.ls.apple.com/geo_manifest/dynamic/config?application=geod&application_version=1&country_code=pl&hardware=ipad4,2&os=ios&os_build=13c75&os_version=9.2   

after downloading new geo_manifest, version number becomes valid once again , every tile request ends http status code 200:

get http://gspe19.ls.apple.com/tile.vf?flags=1&style=13&size=2&scale=0&v=11040529&z=15&x=17923&y=10756&sid=some_sid_2&accesskey=some_access_key_2 <- 200   http://gspe19.ls.apple.com/tile.vf?flags=1&style=20&size=2&scale=0&v=11040529&z=15&x=17923&y=10756&sid=some_sid_2&accesskey=some_access_key_2 <- 200   ...   

i used lldb confirm, stale geo_manifest reason of 410 responses. ran arbitrary app on device showed symptoms using xcode. tiles missing on mkmapview, , 410 responses appeared in network traffic. closed map, paused execution lldb, executed private geoservice framework method seemed force geo_manifest update:

(lldb) po [[georesourcemanifestmanager sharedmanager] forceupdate]   

after resuming execution, geo_manifest update request appeared in network traffic. after opening map view, successful tile responses appeared , map loaded. looks com.apple.geod daemon fails query new geo_manifest time time. because problem ephemeral, impossible find com.apple.geod errors in device console logs.

following questions arise: why com.apple.geod, geoservices or mapkit not try query new geo_manifest when tile request results in 410 response? known issue? apple plan fix in future ios versions?

edit: fixed in ios 10 (https://openradar.appspot.com/radar?id=6075032430182400).


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -