下载谷歌离线地图瓦片图「建议收藏」

您所在的位置:网站首页 Google离线地图下载 下载谷歌离线地图瓦片图「建议收藏」

下载谷歌离线地图瓦片图「建议收藏」

2023-09-15 07:43| 来源: 网络整理| 查看: 265

大家好,又见面了,我是你们的朋友全栈君。

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

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.println("L"+level+"文件数量: "+count); } } /** * 根据起始点经纬度获取地图信息 * @param startPoint 数组 如:new double[]{35.522920921,103.480619123}; * @param endPoint 数组 如:new double[]{36.033726441,103.520211928}; * @param z 地图级别 new int[] {8,9}; 0-17 * @param src 地图下载地址 * @param targetDir 本地保存的路径 * @throws IOException */ public static void getGoogleMap(double [] startPoint,double [] endPoint,int [] z,String src,String targetDir) throws IOException { // int zoom = 15; double minlat = startPoint[0]; //35.522920921 double minlon = startPoint[1];//103.480619123 double maxlat = endPoint[0];//36.033726441 double maxlon = endPoint[1];//103.520211928 for (int k = z[0]; k


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3