我希望我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 会转到您的网络服务器并自动下载此图块(请参阅UrlTileProvider)
不知道对你有用吗!但是,如果它不起作用,您可以分享有关您的要求的详细信息。谢谢