哈哈,又满血复活了。最近天去搞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.恢复成一张大的世界地图,即地图查看器。
下一篇上代码,代码写的很菜,写下来方便日后用。
一:像素和经纬度的转换公式:(这个是必须的了,下载全靠它了).
经度到像素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.恢复成一张大的世界地图,即地图查看器。
下一篇上代码,代码写的很菜,写下来方便日后用。
相关文章推荐
- 最近在学习mongoDB,官网下载的最新的版本。创建用户总是不成功,原来是api改变了。转载记录学习一下
- 记录一下最近两件事
- show一下最近的开发成果,离线消息、查看聊天记录、帮助机器人等
- 大家累了休息一下看看视频,最近有不少朋友索取以前的通用权限管理系统视频下载地址,都上传到服务器上了可以下载了
- 最近的打算,记录一下
- 记录一下 Linux飞鸽传书 QIpMsg 的下载链接
- 最近有点不爽,记录一下
- 记录一下最近开发web移动前端的过程
- 黑马程序员视频学习下载地址记录一下
- 先记录一下自己最近的积累吧(XSL+XML导出及JS对XML的操作)
- 最近学习过程中遇到的问题,记录一下
- 记录一下最近的心情
- 最近系统整理一下 linux 各配置文件备份、编译命令备份、源文件路径、编译命名路径等记录
- 最近被一个socket占用搞的头疼,记录一下netstat用法
- 最近遇到的mysql php 中的各种中文乱码问题,记录一下
- 最近接触dicomserver中得worklist编程,记录一下心得
- 最近由于马虎导致内存越界,整整花费一整天时间来找问题。记录一下,以示警告!
- 记录一下最近用到的几个知识点
- 我靠,经营一个网站容易吗?想伪原创一下啊,下载了一个工具,结果尼玛中招了,我勒个去啊。大家以后小心 伪原创工具 伪原创 病毒 中招 举报为原创 记录
- 最近开始学习ubuntu,想记录一下学习过程,也为在学习的朋友提供一个参考