实质: 整个地图都是以由 小的地图瓦片组成的,因此可以将这些小瓦片图片保存下来,在需要的时候读取即可。
过程: 客户端将地图的三维坐标发送回服务器,服务器经过计算后,返回对应的 图片。
API 下载地址: http://download.csdn.net/detail/iamwangch/4933837

Google的离线地图并未真正意义上的离线,由于代码过于凌乱,无法正确解读,所以采用了添加本地服务器的方法实现离线

过程:

  • (一)创建项目并添加GoogleMapAPIV3 文件包

下载地址: http://www.cnblogs.com/liongis/archive/2011/04/28/2032316.html

  • (二)修改文件包内的mapapi.js的myUrl变量为项目登录网址如:http:           hostlocal:8080/xx
  • (三)响应请求 项目获取有js发出的一个action的请求 如:

http://"+myUrl+"/mt0/vt.action?lyrs=m@152&src=apiv3&hl=zh-CN&x=216&y=104&z=8&s=

上面的请求有x,y,z的三个参数传进来,这三个参数就是地图瓦片的值

根据这三个参数传回瓦片图片即可。

  • (四)经纬度 转换到 图片坐标

参考: http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/overlays.html#CustomMapTypes

服务器代码
下载

/**
* 保存文件
*/
private  void  SaveImage( int  x,  int  y, int  z,String basePath){
String outPath = basePath+  "/" +x+ "-"  +y+ "-" +z+  ".png" ;
String urlStr =  "http://mt1.googleapis.com/vt?lyrs=m@203000000&src=apiv3&hl=zh-CN&"  +
"x="  +x+
"&y="  +y+
"&z="  +z+
"&s=Galileo&style=api%7Csmartmaps"  ;
int  chByte = 0;
URL url =  null ;
HttpURLConnection httpConn =  null ;
InputStream in =  null ;
FileOutputStream out =  null ;
try  {
url =  new  URL(urlStr);
httpConn = (HttpURLConnection)
url.openConnection();
HttpURLConnection. setFollowRedirects( true );
httpConn.setRequestMethod(  "GET" );
httpConn.setRequestProperty(  "User-Agent" ,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)" );
// logger.info(httpConn.getResponseMessage());
in = httpConn.getInputStream();
out =  new  FileOutputStream( new  File(outPath));
chByte = in.read();
while  (chByte != -1) {
out.write(chByte);
chByte = in.read();
}
catch  (MalformedURLException e) {
e.printStackTrace();
catch  (IOException e) {
e.printStackTrace();
}
}

返回客户端

public  String doLoad()  throws  IOException {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
            String basePath  =  "" ;   //基本路径
            basePath = request.getSession().getServletContext().getRealPath( "/map-images"  );
              //System.out.println("基本路径 ->"+basePath);
            System.  out .println( "坐标: x:"  +  x  +  " y:"  +  y  +  " z:"  +  z  );
            ByteArrayOutputStream byteArrayOutputStream =  new  ByteArrayOutputStream();
            
            
            String path = basePath+  "/" + x  + "-"  + y  + "-"  + z  + ".png"  ;
            File file =  new  File(path);  // 读取指定路径的图片
            
            
            InputStream in =  null ;
              try  {
                  in =  new  FileInputStream(file);
            }  catch  (FileNotFoundException e) {
                    this .SaveImage( x  ,  y  ,  z  , basePath);
                  in =  new  FileInputStream(file);
                    //e.printStackTrace();
                  System.  out .println( "文件不存在,需要下载."  );
            }
              int  tag = 0;
              byte [] b =  new  byte [100];
              while  ((tag = in.read(b))!=-1) {
                    //System.out.println("读取到的大小:"+tag);
                  byteArrayOutputStream.write(b, 0, tag);
            }
            
              this . imageStream  =  new  ByteArrayInputStream(byteArrayOutputStream.toByteArray());
            
              return  "success"  ;
      }

谷歌离线地图的使用(1)相关推荐

  1. 8、 谷歌离线地图开发教程

    谷歌(百度.高德)离线地图开发环境搭建 发布时间:2018-01-17 版权: 1.说明 离线地图开发环境支持谷歌地图.百度地图.高德地图等等所有常用地图类型,支持在局域网内的地图部署.二次开发. 2 ...

  2. BIGEMAP(百度、高德、谷歌)离线地图二次开发

    (百度.高德.谷歌)离线地图二次开发 发布时间:2019-04-10 版权:               1.如何搭建离线地图开发环境               2.下载离线地图数据(金字塔瓦片数据 ...

  3. (百度、高德、谷歌)离线地图二次开发

    (百度.高德.谷歌)离线地图二次开发 发布时间:2019-04-10 版权: 相关链接:三维(3D)离线地图 二次开发                               1.如何搭建离线地图 ...

  4. 如何使用Openlayers 3加载谷歌离线地图

    谷歌地图部署 说明:使用地图下载工具下载的谷歌离线地图大致如下结构,使用合适的WEB服务器发布地图服务. 使用Openlayers 3调用地图服务 说明:这里使用ol.source.XYZ(更多语法请 ...

  5. 谷歌离线地图Api附获取教程

    三版离线Api下载链接:https://pan.baidu.com/s/1ei6tyLKTHMIGdDuowqQW6Q 提取码:x1va GoogleMapAPIV3来自: https://www.c ...

  6. 转:谷歌离线地图基础

    一.需要文件 gapi3文件夹:存放接口等 tilemap文件夹:存放图片 gapi.js文件 maptool.js文件 二.html配置 <script type="text/jav ...

  7. 谷歌离线地图API解析

    [Google离线地图示例解析] 1.说明 离线地图发布有多种方式均可以实现,可以利用ArcGis Server.GeoServer等构建地图Web服务器,还可以使用 谷歌地图.百度地图等API进行地 ...

  8. 如何下载谷歌离线地图瓦片数据

    离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...

  9. 如何搭建谷歌离线地图服务?

    离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...

最新文章

  1. Python入门100题 | 第068题
  2. 最优化——单纯形法学习心得
  3. PHP5中的魔术方法
  4. hide show vue 动画_jQuery动画效果
  5. 复制中文到linux系统,怎么是的window文字复制到linux下
  6. 手机链接路由wifi,设置为固定IP方法
  7. 【转】【Linux】Linux 命令行快捷键
  8. Python正则表达式去除符号
  9. H5 图片自动适应高度
  10. 【IO专栏】Java OIO NIO通信对比分析【002】
  11. hp微型计算机装打印机,hp打印机如何安装 hp打印机安装步骤及注意事项【详解】...
  12. Hbase数据库完全分布式搭建以及java中操作Hbase
  13. Python读取和操作Excel(.xlsx)文件
  14. 数据库系统-数据库的完整性
  15. OpenShift从入门到精通系列之一:通过OpenShift实现数字化转型
  16. LeetCode:第13题 罗马数字转整数 python语言实现 2020.2.3
  17. 苹果邮箱 android设置字体,MacOS如何修改邮件字体大小?MacOS修改邮件字体大小的方法...
  18. 微信小程序毕业设计 基于微信医院预约挂号小程序系统开题报告
  19. 经纬度坐标转换为工程坐标
  20. 爬虫实例:从百度图片下载壁纸

热门文章

  1. Markdown入门总结
  2. 【新华三网络工程师】H3C如何配置三层组网技术
  3. 一键式解压tar, tar.gz. tar.bz2, tar.xv文件的shell脚本【转】
  4. OpenCV 最小二乘+距离最小拟合圆
  5. 毛泽东思想和中国特色社会主义理论体系概论
  6. PERL XS tutorial
  7. 可编辑的el-table表格
  8. 《通灵芯片》阅读笔记 // 持续
  9. 再谈 Go 语言在前端的应用前景
  10. java参考中文站 http://www.javaref.cn