我希望我的TileOverlay
能像真正的谷歌地图一样运作。当你放大时,瓷砖仍然可见但会变得像素化,直到新的瓷砖下载完毕。
当前的行为是:当您放大时,瓦片消失并显示丑陋的网格,用户必须等待新的瓦片加载完成。这有点烦人。
是否有解决此问题的方法?
我希望我的TileOverlay
能像真正的谷歌地图一样运作。当你放大时,瓷砖仍然可见但会变得像素化,直到新的瓷砖下载完毕。
当前的行为是:当您放大时,瓦片消失并显示丑陋的网格,用户必须等待新的瓦片加载完成。这有点烦人。
是否有解决此问题的方法?
@UiThread
private void preloadAllZoomLevels(final float zoomLevel) {
if (zoomLevel == map.getMaxZoomLevel()) {
map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 7));
mapFragmentContainer.animate().alpha(1f);
return;
}
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoomLevel));
final float nextZoomLevel = zoomLevel + 1;
map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
preloadAllZoomLevels(nextZoomLevel);
}
});
}
基本上,每当GoogleMap想要为特定坐标绘制瓦片时 - 它会要求您提供此瓦片。您可以使用静态瓦片(请参见TileProvider),也可以提供URL,因此GoogleMap会自动访问您的Web服务器并下载此瓦片(请参见UrlTileProvider)
不知道它是否适用于您!但是如果它不起作用,您可以分享有关您的要求的详细信息。谢谢