Android 高德地图 添加 天地图 卫星瓦片图片 离线缓存

由于天地图的地图接口请求有次数限制,我们做了本地缓存机制

原理是先查找本地目录是否有保存的瓦片图片,有的话直接返回路径,没有的话去请求天地图加载并保存到本地。

话不多说,直接上代码

我们加载在线瓦片代码是下面这样的,不知道的可以看我上片文章

                    String real_url = String.format(url, zoom, y, x);
                    LatLng mLatLng = mAMap.getProjection().fromScreenLocation(new Point(x,y));
                    Log.e("getTileUrl",x+","+y+""+" "+mLatLng+" "+real_url);
                    return new URL(real_url);
 

我们需要对这部分代码进行修改,修改后如下

加载影像底图部分

String ALBUM_PATH
        = getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath()+"/Cache/";
Bitmap mBitmap;
String mFileDirName = String.format("L%02d/", zoom + 1)+"img/";
String  mFileName = String.format("%s", TileXYToQuadKey(x, y, zoom));//为了不在手机的图片中显示,取消jpg后缀,文件名自己定义,写入和读取一致即可,由于有自己的bingmap图源服务,所以此处我用的bingmap的文件名

String LJ = ALBUM_PATH +mFileDirName+ mFileName;
Log.e("getTileUrl是图片否存在: ", "getTileUrl: "+(MapImageCache.getInstance().isBitmapExit( mFileName,ALBUM_PATH +mFileDirName))+"");
if (MapImageCache.getInstance().isBitmapExit( mFileName,ALBUM_PATH +mFileDirName)) {//判断本地是否有图片文件,如果有返回本地url,如果没有,缓存到本地并返回googleurl
    Log.e("存在: ","file://" + LJ);
    return new URL("file://" + LJ);
}e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值