在加载TileOverlay地图API v2的Android应用程序时保持瓦片可见。

20

我希望我的TileOverlay能像真正的谷歌地图一样运作。当你放大时,瓷砖仍然可见但会变得像素化,直到新的瓷砖下载完毕。

当前的行为是:当您放大时,瓦片消失并显示丑陋的网格,用户必须等待新的瓦片加载完成。这有点烦人。

是否有解决此问题的方法?


这些链接很有帮助,请参考这些链接。链接1 链接2 - MIkka Marmik
你好,我现在遇到了同样的问题。你找到解决方案了吗? - Rustam Ibragimov
主要问题是,当相机移动时,Google Maps甚至不开始调用TileProvider#getTile。 - Jan Rabe
2个回答

1
我通过“预加载”地图中的所有缩放级别来解决了这个问题(只需复制/粘贴当前状态,需要清理):
@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);
        }
    });
}

-2

基本上,每当GoogleMap想要为特定坐标绘制瓦片时 - 它会要求您提供此瓦片。您可以使用静态瓦片(请参见TileProvider),也可以提供URL,因此GoogleMap会自动访问您的Web服务器并下载此瓦片(请参见UrlTileProvider

不知道它是否适用于您!但是如果它不起作用,您可以分享有关您的要求的详细信息。谢谢


2
TS知道它的工作原理,因此这些信息没有任何价值。 - Boy
好的态度。这是Stackoverflow的调节方式。你最好把你的“答案”发表为评论。如果你给某人-1,礼貌上应该加上一个评论说明为什么这样做。你只是提供了一般信息。我猜你就是给我-1的那个人...相当专业。 - Boy
抱歉,我没听懂你说的!这不是关于+1/-1的争论场所!!我只是问你关于我的扣分,没有别的!就算了吧。。 - Jamil Hasnine Tamim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接