hun*_*dym 6 android caching android-maps-v2
我正在模拟在Android地图v2上预先录制的路径上行驶的汽车.当我用手放大路径时,效果很好,但是当我将摄像机移到路径上时mMap.animateCamera(),它不会加载可见的地图区域,我只会得到一个非常像素化的低质量地图.如果我触摸屏幕并移动地图或缩放一点,那么它会再次加载此部分.
我怎样才能实现,它总能清楚地加载可见部分?
编辑: 我添加了一个示例图像:这是我在不触摸地图时看到的内容.触摸后,它变得清晰(类似于左下角部分).

编辑2: 我有一个想法,这是因为谷歌希望通过快速移动相机在一个区域上来防止地图被缓存.这可能是导致这个问题的原因吗?(地图显示匈牙利布达佩斯,你无法下载哪部分地图供离线使用......)但在这里我只想展示动画并放置标记,我只需要显示可见区域 - 是否有有什么方法可以解决这个问题?
EDIT3: 动画代码:
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();
Run Code Online (Sandbox Code Playgroud)
终于找到了解决办法。我能够使用您提供的代码重新创建您的问题。我用以下代码替换了您的代码,它对我有用。
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);
Run Code Online (Sandbox Code Playgroud)
只需删除用于睡眠的代码,并将scheduleAtFixedRate(2000) 中的最后一个参数替换为您用于睡眠的任何值即可。
| 归档时间: |
|
| 查看次数: |
1110 次 |
| 最近记录: |