{"action":"created","issue":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1158","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1158/labels{/name}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1158/comments","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1158/events","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/1158","id":65264356,"number":1158,"title":"Agressively cancel requests when zooming and panning","user":{"login":"1ec5","id":1231218,"avatar_url":"https://avatars.githubusercontent.com/u/1231218?v=3","gravatar_id":"","url":"https://api.github.com/users/1ec5","html_url":"https://github.com/1ec5","followers_url":"https://api.github.com/users/1ec5/followers","following_url":"https://api.github.com/users/1ec5/following{/other_user}","gists_url":"https://api.github.com/users/1ec5/gists{/gist_id}","starred_url":"https://api.github.com/users/1ec5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/1ec5/subscriptions","organizations_url":"https://api.github.com/users/1ec5/orgs","repos_url":"https://api.github.com/users/1ec5/repos","events_url":"https://api.github.com/users/1ec5/events{/privacy}","received_events_url":"https://api.github.com/users/1ec5/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/iOS","name":"iOS","color":"207de5"},{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/performance","name":"performance","color":"33aa33"}],"state":"open","locked":false,"assignee":{"login":"jfirebaugh","id":98601,"avatar_url":"https://avatars.githubusercontent.com/u/98601?v=3","gravatar_id":"","url":"https://api.github.com/users/jfirebaugh","html_url":"https://github.com/jfirebaugh","followers_url":"https://api.github.com/users/jfirebaugh/followers","following_url":"https://api.github.com/users/jfirebaugh/following{/other_user}","gists_url":"https://api.github.com/users/jfirebaugh/gists{/gist_id}","starred_url":"https://api.github.com/users/jfirebaugh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfirebaugh/subscriptions","organizations_url":"https://api.github.com/users/jfirebaugh/orgs","repos_url":"https://api.github.com/users/jfirebaugh/repos","events_url":"https://api.github.com/users/jfirebaugh/events{/privacy}","received_events_url":"https://api.github.com/users/jfirebaugh/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2015-03-30T17:46:37Z","updated_at":"2015-03-31T00:41:51Z","closed_at":null,"body":"A typical app will set the viewport to a specific location or the world map on launch (perhaps as a workaround for #1145) and will immediately pan and zoom to the user location. In the iOS demo app, this happens if you had user tracking enabled the last time you closed the app.\r\n\r\nFrom testing the demo app on an iPhone 4s running iOS 7.1 on a cellular connection – pretty much our worse-case scenario – it appeared that we were queueing up requests for vector tiles but failing to cancel unnecessary requests. If you allowed the app to pan and zoom to the user location, tiles would take upwards of a minute to load, much longer than if the app had gone directly to the user location in the first place. I have a hunch that this is because the app is attempting to fetch and render numerous irrelevant tiles from the original viewport and at intermediate stages along the pan/zoom animation. If this is the case, it could also affect performance during user-driven panning and zooming.\r\n\r\nEven if we do cancel network requests for irrelevant tiles, is there any way to cancel their rendering as well?\r\n\r\n/cc @ansis @jfirebaugh @kkaefer "},"comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/comments/87888009","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/1158#issuecomment-87888009","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1158","id":87888009,"user":{"login":"jfirebaugh","id":98601,"avatar_url":"https://avatars.githubusercontent.com/u/98601?v=3","gravatar_id":"","url":"https://api.github.com/users/jfirebaugh","html_url":"https://github.com/jfirebaugh","followers_url":"https://api.github.com/users/jfirebaugh/followers","following_url":"https://api.github.com/users/jfirebaugh/following{/other_user}","gists_url":"https://api.github.com/users/jfirebaugh/gists{/gist_id}","starred_url":"https://api.github.com/users/jfirebaugh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfirebaugh/subscriptions","organizations_url":"https://api.github.com/users/jfirebaugh/orgs","repos_url":"https://api.github.com/users/jfirebaugh/repos","events_url":"https://api.github.com/users/jfirebaugh/events{/privacy}","received_events_url":"https://api.github.com/users/jfirebaugh/received_events","type":"User","site_admin":false},"created_at":"2015-03-31T00:41:51Z","updated_at":"2015-03-31T00:41:51Z","body":"Yeah, there is no mechanism for canceling a queued or in-progress tile parse right now. I'm looking into that next."}}