百度与谷歌地图瓦片组织方式对比
百度是从中心点经纬度(0,0)度开始计算瓦片,在第1级时百度将世界地图分为4块。
中心点右上部分(中国地区)占1块。
谷歌是从左上角经纬度(-180,90)度开始计算瓦片,在第1级时谷歌将世界地图分为1块。
在第2级时,百度地图(中心点右上部分)分为2块,
这是因为在这级百度的地图分辨率为65536米/像素,分辨率=math.pow(2,(18 - n))。
WGS84球体周长:40075016.685578488,球体周长一半为20037508.34米。
瓦片个数=20037508.34/(65536*256)=1.19。
因此在第2级百度地图(中心点右上部分)有2块瓦片。
瓦片编号类似于Excel表格单元格编号,原点向上和向右为正,向下和向左为负。单元格X,Y编号从0开始,如右上角第一格X=0,Y=0,X是指向右方向即水平,Y是指向上方向即垂直。
而谷歌地图在第2级将世界地图分为4块,瓦片编号是向右和向下,没有负数。
在经纬度(0,0) 的右上角部分即中国区,只有1块瓦片,而百度却是2块。这是为何呢?
这是由于两者在这级的分辨率不同导致的。
经纬度(0,0)右上角瓦片计算:
百度瓦片个数=20037508.34/(65536*256)=1.19,取最大整数为2块。
谷歌瓦片个数=20037508.34/( 78271.5169639999*256)=1块。
百度分辨率计算公式:
Double res = math.pow(2,(18 - n)) // n为层数(1-18)
谷歌分辨率计算公式:
Double tileSize=256 //瓦片尺寸(256*256)
Double initialResolution = 2 * math.pi * 6378137 / tileSize //6378137为球体半径
Double res = initialResolution /math.pow(2,zoom) //zoom为层数(0-21)
ArcGISServer的瓦片组织方式与谷歌类似。如果想在AGS for Flex中采用百度地图作为底图,且想将百度地图下载为离线数据,并发布瓦片地图服务供flex 调用,有什么方法?
以下提供一种解决方案:
1) 开发一个工具,下载百度地图成离线数据。
2) 开发一个工具,将百度地图瓦片编号转成AGS地图瓦片编号。当然这样做的话底图数据就与谷歌地图无法吻合。但我们假设底图只用百度地图,业务图坐标也是从百度中采集的情况。
3) 如何将百度的瓦片编号转成AGS瓦片编号,这个没有什么公式,我建议固定一个经纬度点,并计算该点的百度和谷歌的瓦片编号,做为瓦片转换的参照目标。
以北京天安门的地理坐标点(116.407945,39.91349)计算出百度与谷歌各层瓦片编号。
百度 |
谷歌 |
||||
级别 |
行 |
列 |
级别 |
行 |
列 |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
1 |
1 |
0 |
3 |
1 |
0 |
2 |
3 |
1 |
4 |
3 |
1 |
3 |
6 |
2 |
5 |
6 |
2 |
4 |
13 |
5 |
6 |
12 |
4 |
5 |
26 |
12 |
7 |
24 |
9 |
6 |
52 |
24 |
8 |
49 |
18 |
7 |
105 |
48 |
9 |
98 |
36 |
8 |
210 |
97 |
10 |
197 |
73 |
9 |
421 |
194 |
11 |
395 |
147 |
10 |
843 |
387 |
12 |
790 |
294 |
11 |
1685 |
776 |
13 |
1581 |
589 |
12 |
3372 |
1551 |
14 |
3163 |
1178 |
13 |
6744 |
3103 |
15 |
6327 |
2356 |
14 |
13489 |
6207 |
16 |
12654 |
4712 |
15 |
26979 |
12415 |
17 |
25308 |
9425 |
16 |
53958 |
24830 |
18 |
50617 |
18851 |
17 |
107917 |
49661 |
4) 有了这张对照表,我们就可以通过百度的瓦片编号来计算对应的谷歌瓦片编号。
计算公式如下:
谷歌瓦片行编号=[谷歌参照瓦片行编号+(百度行编号 – 百度参照瓦片行编号)] //向右,行为递增
谷歌瓦片列编号=[谷歌参照瓦片列编号- (百度列编号 – 百度参照瓦片列编号)] //向上,列为递减
转载于:https://www.cnblogs.com/janehlp/archive/2012/08/27/2658106.html
百度与谷歌地图瓦片组织方式对比相关推荐
- osgEarth的Rex引擎原理分析(一二六)rex瓦片组织方式
目标:(一二五)中问题212 通过如下确定瓦片的组织方式 ,核心是profile osgEarth/Map.cpp void Map::calculateProfile() {// collect t ...
- 高德地图加载谷歌地图瓦片
简介 苦逼外业实验需要用到无人机采集数据,遂利用高德地图SDK和DJI Mobile SDK开发了一款无人机航线规划软件.当地也不算偏僻,然而高德卫星地图缩放等级约为16,无法满足作业需求.调查了其他 ...
- python下载谷歌地图瓦片_openLayers TMS加载谷歌地图瓦片
openLayers TMS中加载谷歌瓦片 经纬坐标(LonLat) 和投影坐标系的转换 /** openLayer根据TMS加载谷歌地图瓦片 (1)先去下载加载谷歌地图瓦片,这样的软件有(水经注 ...
- python下载谷歌地图瓦片_使用 Python 合并地图瓦片
前文提到了合并瓦片图,而瓦片图应用比较多的则是瓦片地图.对地图本就感兴趣的我,也想试试合并互联网地图的某个范围内的地图图层. 随着技术的发展,国内的地图服务商相继将地图瓦片更新为矢量瓦片[1],这下想 ...
- python下载谷歌地图瓦片_python获取bing地图发布自己的TMS服务(一)下载瓦片
部分结果 bing地图瓦片使用QuadKey作为命名方式. QuadKey简介 如何计算quadkey 在给定level下,把行号tileY和列号tileX转换为2进制,然后行列交叉存储,再转换为4进 ...
- 怎么在html插入谷歌地图,html页面插入百度or谷歌地图
一.百度地图 1.打开"百度地图生成器"的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 2.在"1.定位中 ...
- python下载谷歌地图瓦片_python抓取天地图瓦片
[实例简介] 抓取天地图瓦片 [实例截图] [核心代码] # _*_coding:utf-8_*_ from urllib import request import re import urllib ...
- osmdroid 在线加载谷歌瓦片(谷歌地图瓦片地址解释)
osmdroid作为一个开源的项目,在在线地图上还是做的不错,离线地图上也能支持多种格式,例如:zip,sqlite,.mbtiles,gemf,map,gpkg等格式.就是不能直接加载shp文件大为 ...
- google map谷歌地图瓦片地址无偏移矢量地图电子地图影像地图
前几天做谷歌地图踩大坑,目前网上很多文字的瓦片地址是可以访问但,矢量地图有偏移,你将矢量地图和影像地图同时加载出来就会发现两个地图不能完全的重合,而且连标注都没有和地图重合.那是因为矢量地图做了偏移影 ...
最新文章
- 提升网站优化排名的前提是什么?
- 第5章-无人机UAV模型分析
- 关于优酷开放SDK之setOnVideoSizeChangedListener
- 少儿编程150讲轻松学Scratch(八)-如何设计经典游戏打砖块
- Python编程:从入门到实践 - pygal篇 - Die
- 蓝桥杯 基础练习 芯片测试
- 开源GIS(十七)——OGC标准
- noip2009 普及组
- 2D人脸识别之Camera篇
- 【Android安全】fastboot相关
- PLSQL 的安装与简单使用
- Windows安全基础-基线配置
- 无线网络 看不到其他计算机,win10看不到无线局域网其他电脑
- 【企业管理】管理学十大原理
- android播放系统音效,Android用SoundPool播放音效
- 全连接网络:实现第一个全连接网络
- C语言的美学:斐波那契,你会吗?
- 完善人格的好办法 [转]
- 淘东电商项目(14) -公众号获取注册码功能
- Linux课程设计石头剪刀布,课程设计-石头剪刀布程序.doc