下载谷歌离线地图瓦片图

项目需求中涉及离线地图的下载,通过查阅资料并结合经纬度信息,实现了从网络下载特定区域的离线地图瓦片。这里分享了对应的Java实现代码。
摘要由CSDN通过智能技术生成

项目中遇到一个需求,需要将某个地图区域的离线地图下载下来,整理很多网上的资料自己实现根据起始点的经纬度下载离线地图,代码如下

import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Test {
    private static final int  BUFFER_SIZE = 2 * 1024;
    public static void main(String[] args) throws Exception {
    double [] start = new double[]{36.03267263,103.480619123};//最大纬度 最小精度 起点
    double [] end = new double[]{35.522920921,103.520211928};//最小纬度  最大精度  终点
   // 36.03267263 103.480619123 35.522920921 103.520211928
        int [] z = new int[] {8,9};
        /**
         * 谷歌地图地址参数
         * lyrs = 类型
         *
         * h = roads only 路线图
         * m = standard roadmap
         * p = terrain 地形图
         * r = somehow altered roadmap
         * s = satellite only 卫星图
         * t = terrain only
         * y = hybrid 混合
         */
        String src = "http://mt0.google.cn/vt/lyrs=m@180000000&hl=zh-CN&gl=cn&x=%s&y=%s&z=%s&s=Ga";
        String targetDir  ="D:\\map";
        //getGoogleMap(start,end,z,src,targetDir); //获取谷歌地图瓦片图
        getFileInfo(targetDir);//获取下载之后的文件信息
        toZip(targetDir, "D:/map.zip",true);//压缩下载的文件
    }

/**
 * 获取下载之后的文件信息
 * @param targetDir
 */
public static  void getFileInfo(String targetDir){
    File file = new File(targetDir);
    System.out.println("下载后的文件大小:"+file.length()/1024+"M");
    File[] files = file.listFiles();
    for (File f : files){
        String level = f.getName();
        int count =0;
        File[] cfiles = f.listFiles();
        for (File cf : cfiles){
            count+=cf.list().length;
        }
        System.out.pr
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Android设备上,我们可以使用谷歌地图的API来下载离线地图瓦片离线地图瓦片是将地图切片保存为像文件,以便在离线状态下进行访问。下面是一些步骤来实现离线地图瓦片下载: 首先,我们需要获取一个谷歌地图的API密钥。可以通过Google Cloud控制台创建一个新的项目,启用地图服务,并生成API密钥。将API密钥应用于Android项目中。 其次,我们需要使用谷歌地图的TileProvider类来获取地图瓦片的URL,并进行下载。TileProvider类提供了诸如MapTile,TileUrlGenerator等方法来获取地图瓦片的信息。 接下来,我们可以使用下载库(例如OkHttp或Volley)来下载地图瓦片。我们需要构建一个HTTP请求,并设置瓦片的URL作为请求的URL。然后,我们可以发送请求并将其保存为像文件。 最后,我们可以使用下载地图瓦片来显示地图。我们可以使用谷歌地图的Map类来加载瓦片,并在地图上显示它们。 需要注意的是,离线地图瓦片下载可能会占用较大的存储空间,并且需要进行合法的API使用。此外,由于谷歌地图的使用条款可能会有变化,建议在实施之前查阅最新的使用条款和API文档。 总之,通过使用谷歌地图的API密钥和TileProvider类,结合下载库来下载和使用离线地图瓦片,我们可以在Android设备上实现离线地图的功能。 ### 回答2: 在Android上使用谷歌离线地图瓦片下载功能,可以让用户在没有网络连接的情况下使用地图。首先,确保你的手机上安装了Google Maps应用程序。 下载地图瓦片的第一步是找到你感兴趣的区域。在Google Maps应用程序中,你可以使用缩放和平移手势来选择你要下载的区域。 一旦你确定了下载区域,接下来点击屏幕下方的搜索栏,并输入“ok maps”。然后,点击搜索结果中的“离线地图”。 系统将弹出一个新的界面,显示你选择的下载区域的预览。如果你对区域满意,点击屏幕下方的“下载”按钮。 接下来,你可以选择下载地图瓦片的存储位置。你可以选择将地图存储在手机的内部存储器或外部存储器中。 下载过程可能需要一些时间,具体取决于你选择的区域大小和你的网络速度。 一旦下载完成,你就可以在没有网络连接的情况下使用已下载地图。打开Google Maps应用程序,并点击左上角的菜单标。 然后,选择“离线地图”,你将看到一个列表,其中包含你已经下载地图。选择你感兴趣的地图,系统将加载该地图并显示在屏幕上。 你现在就可以在没有网络连接的情况下使用这些地图了。你可以浏览地图,查找地点和导航,而不需要连接互联网。但需要注意的是,有些功能可能仍然需要网络连接,如实时交通信息和搜索功能。 总的来说,通过这种方式,在Android上下载和使用谷歌离线地图瓦片是非常简便和方便的。用户可以提前下载感兴趣的地图,以便在没有网络连接的情况下使用。 ### 回答3: Android谷歌地图应用可以通过离线下载地图瓦片来实现离线地图操作。以下是一种简单的方法: 首先,打开Android谷歌地图应用并进入所需下载地图区域。可以使用双指捏合手势来缩放地图以选择下载区域。 接下来,点击屏幕上的菜单按钮,然后选择"离线地图"选项。在这个页面上,可以查看已经下载离线地图区域列表。 在离线地图页面中,点击添加(+)按钮,接着选择要下载的区域。可以使用手指通过拖拽来选择下载地图区域的大小。 一旦选择完下载区域,点击"下载"按钮,并在弹出的对话框中确认下载操作。 下载完成后,可以在离线地图列表中找到刚刚下载地图区域。可以在该地图上进行平移和放大控制以查看下载地图瓦片。 值得注意的是,下载离线地图瓦片只在谷歌地图应用中可用,并不能在其他应用中使用。此外,下载地图区域会占据一定的存储空间,需根据实际需要进行合理管理和清除。 总之,通过Android谷歌地图应用的离线地图功能,我们可以方便地下载地图瓦片,实现离线地图浏览,并在没有互联网连接的情况下获得导航方向和位置信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值