我在切换样式URL(自定义和卫星)时遇到问题,同时还加载了多个tileet URL。我们的应用程序运行非常平稳,但是您切换StyleURL的次数越多,我们的应用就会越陷越深(我们从MapBox Studio获得了自定义路线图,并切换到了卫星)。如果您在两次足够的时间之间切换(通常是10-20次而没有时间限制),我们的应用程序就会“崩溃”。因此,我们的用户确实经常遇到这种情况。下面是一些细节。
基于下面的“人工代码”,我们认为这与以下事实有关:我们正在ViewDidFinishLoading
中重新加载所有层(和源),这发生在每个层切换事件上吗?
Mapbox 4.7-4.9
iOS11.0 +
似乎在硬件平台上发生 不依赖于连接性,Wifi / Cell / etc
代码。我最终可以提出一些示例代码,并提供指向一些tileet数据的链接,但是从短期来看,这确实很简单。以下是一些人工代码,以防问题对于地图框专家来说是基本的
ViewDidload(){
// Setup basic mapbox parameters, callout styleURL, load mapbox view. No problems here.
}
ViewDIDFinishLoading(){
// load all of our custom tilesets using urls. We have MGLMultipolygons, MGLmultipolylines, points, etc.
// We noticed this is called whenever you toggle StyleURLs, and so we HAVE ALSO FOUND THAT WE NEED TO RELOAD BOTH THE SOURCES AND LAYERS INTO THE STYLE OBJECT IN THIS FUNCTION on every button press where we want to change from different style URLs
}
On BtnClickedToggleSatellite_Roads() //Switches the map between StyleURLS
styleURL != lastStyleURL
//Note that this calls the ViewDidFinishloading where we reload all our sources and layers
}