哈哈,又满血复活了。最近天去搞google地图下载了,记录一下

google静态地图下载。预备知识,从其他人哪里借鉴过来的。

一:像素和经纬度的转换公式:(这个是必须的了,下载全靠它了).

  1. 经度到像素X值  
  2.   
  3. public static double lngToPixel(double lng, int zoom) {  
  4.   
  5. return (lng + 180) * (256  * 2^zoom) / 360;  
  6.   
  7. }  
  8.   
  9. 像素X到经度  
  10.   
  11. public static double pixelToLng(double pixelX, int zoom) {  
  12.   
  13. return pixelX * 360 / (256 *  2^ zoom) - 180;  
  14.   
  15. }  
  16.   
  17. 纬度到像素Y  
  18.   
  19. public static double latToPixel(double lat, int zoom) {  
  20.   
  21. double siny = Math.sin(lat * Math.PI / 180);  
  22.   
  23. double y = Math.log((1 + siny) / (1 - siny));  
  24.   
  25. return (128 * z^ zoom) * (1 - y / (2 * Math.PI));  
  26.   
  27. }  
  28.   
  29. 像素Y到纬度  
  30.   
  31. public static double pixelToLat(double pixelY, int zoom) {  
  32.   
  33. double y = 2 * Math.PI * (1 - pixelY / (128  * z ^  zoom));  
  34.   
  35. double z = Math.pow(Math.E, y);  
  36.   
  37. double siny = (z - 1) / (z + 1);  
  38.   
  39. return Math.asin(siny) * 180 / Math.PI;  
  40.   
  41. }  
这里的下载程序主要用到后面两个公式。


google瓦片地图原理:http://blog.csdn.net/hugoandpig/article/details/7719307


主要注意下切图方式,与地图级别的关系。

google地图api:http://blog.csdn.net/u011393661/article/details/14053113    官方网站:https://developers.google.com/maps/documentation/staticmaps/

把这些预备知识看看就差不多了。

二:下载地图算法:

  1.确定下载地图尺寸。一般是256X256的瓦片地图。

2.确定地图级数,获取瓦片地图数目

3.循环下载,由像素转换成经纬度利用url进行下载。

4.去除地图水印,google标识。

5.存入数据库或者本地文件夹(如果存入本地文件夹超过五级的地图就很难恢复成一张大的世界地图了)

6.恢复成一张大的世界地图,即地图查看器。

下一篇上代码,代码写的很菜,写下来方便日后用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值