您的位置:首页 > 编程语言 > Go语言

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

2014-07-21 21:32 357 查看
google静态地图下载。预备知识,从其他人哪里借鉴过来的。

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

经度到像素X值  

  

public static double lngToPixel(double lng, int zoom) {  

  

return (lng + 180) * (256  * 2^zoom) / 360;  

  

}  

  

像素X到经度  

  

public static double pixelToLng(double pixelX, int zoom) {  

  

return pixelX * 360 / (256 *  2^ zoom) - 180;  

  

}  

  

纬度到像素Y  

  

public static double latToPixel(double lat, int zoom) {  

  

double siny = Math.sin(lat * Math.PI / 180);  

  

double y = Math.log((1 + siny) / (1 - siny));  

  

return (128 * z^ zoom) * (1 - y / (2 * Math.PI));  

  

}  

  

像素Y到纬度  

  

public static double pixelToLat(double pixelY, int zoom) {  

  

double y = 2 * Math.PI * (1 - pixelY / (128  * z ^  zoom));  

  

double z = Math.pow(Math.E, y);  

  

double siny = (z - 1) / (z + 1);  

  

return Math.asin(siny) * 180 / Math.PI;  

  

}  

这里的下载程序主要用到后面两个公式。

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.恢复成一张大的世界地图,即地图查看器。

下一篇上代码,代码写的很菜,写下来方便日后用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐