gpt4 book ai didi

本地图区域自动移动时,Android map v2 变得低质量

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:11:06 27 4
gpt4 key购买 nike

我正在模拟一辆汽车在 Android map v2 上的预先记录的路径上行驶。当我手动放大路径时,效果很好,但是当我使用 mMap.animateCamera() 将相机移动到路径上时,它不会加载可见 map 区域,我只会得到一个非常像素化,低质量的 map 。如果我触摸屏幕并移动 map 或稍微缩放一下,它就会再次加载这部分内容。

我怎样才能实现,它始终清楚地加载可见部分?

编辑:我添加了一个示例图片:这是我不触摸 map 时看到的。触摸后,它变得清晰(类似于左下部分)。

Example image

编辑 2:我有一个想法,这是因为谷歌希望通过在一个区域上快速移动相机来防止 map 被缓存。这可能是这个问题的原因吗? ( map 上显示的是匈牙利布达佩斯,哪部分 map 不能下载离线使用。。。)但是这里我只想展示动画和地方标记,我只需要缓存可见区域-有没有有什么方法可以解决此问题?

编辑 3:动画代码:

new Thread(new Runnable() {

@Override
public void run() {
// ... Calculating and sending new location, in an infinite loop with sleeps for timing

MainActivity.this.runOnUiThread(new Runnable() {

@Override
public void run() {
mMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude())));
}
});
}
}).start();

最佳答案

终于找到解决办法了。我能够使用您提供的代码重现您的问题。我用以下代码替换了您的代码,它对我有用。

    Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {

@Override
public void run() {
// ... Calculating and sending new location, in an infinite loop with sleeps for timing

MainActivity.this.runOnUiThread(new Runnable() {

@Override
public void run() {
mMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude())));
}
});
}

}, 0, 2000);

只需删除 sleep 代码并将 scheduleAtFixedRate(2000)中的最后一个参数替换为您用于 sleep 的任何值。

关于本地图区域自动移动时,Android map v2 变得低质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696945/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com