瓦片是什么意思?

news/2024/11/28 3:37:39/

先了解几个概念:

一、经纬度

地球是个椭球,Datum是一组描述这个椭球的数据集合。最常用的一个Datum是WGS84(World Geodetic System 1984)。主要的参数有:长短轴,质心,子午线,扁平比例

  • 坐标系的原点地球质心
  • 子午线,即零度经线
  • 椭球截面长轴a
  • 椭球截面短轴b,可选参数
  • 扁平比例f=(a−b)/a=1/298.257223563;
  • geoid,海平面,用于定义高度,本文从略。

WGS84 Datum的信息可以用下图进行概括:
在这里插入图片描述

二、投影

投影就是把球面坐标转为平面坐标。常见投影是墨卡托投影,因为他具有等角性质,即球体两点之间的角度方位和平面上的两点之前的角度方位保持不变。适用于导航。

Web墨卡托投影(球体墨卡托投影)是墨卡托投影的变种,接受的是WGS84的经纬度,投影式不再把地球当作椭球而是当作半径为6378137米的标准球体。

计算公式推导如下(反正我也看不明白,笔记就做上吧=学会了):

在这里插入图片描述

Web墨卡托投影有两个相关的投影标准(EPSG4326,EPSG3857):

  • EPSG4326:Web墨卡托投影后的平面地图,但仍然使用WGS84的经度、纬度表示坐标;
  • EPSG3857:Web墨卡托投影后的平面地图,坐标单位为米。

三、瓦片

Web墨卡托投影以后,地球变为一张图。zoom(缩放级别)级别高的时候要看宏观的地图信息,zoom级别小的时候需要看围观的地图信息。比如瓦片就是zoom=1的时候,可能只有一张图,在下一级别4个瓦片,再下一级别是16个瓦片。这样就形成了一个金字塔坐标系。

在这里插入图片描述

四、瓦片编号

瓦片生成后,对一堆图片如何进行编号。有四个流派。

  • 谷歌XYZ:Z表示缩放层级,Z=zoom;XY的原点在左上角,X从左向右,Y从上向下。
  • TMS:开源产品的标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。
  • QuadTree:微软Bing地图使用的编码规范,Z的定义与谷歌相同,同一层级的瓦片不用XY两个维度表示,而只用一个整数表示,该整数服从四叉树编码规则
  • 百度XYZ:Z从1开始,在最高级就把地图分为四块瓦片;XY的原点在经度为0纬度位0的位置,X从左向右,Y从下向上。

下图显示了前三个流派在zoom=1层级上的瓦片编号结果:
在这里插入图片描述
五、中国的经纬度
国内的经纬度有三套系统:

  • WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系
    GCJ02:又称火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
    BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

使用OpenStreetMap的坐标为WGS84;使用高德地图、腾讯地图的坐标为GCJ02;使用百度地图的坐标为BD09;谷歌地图和Bing地图的中国部分采用了高德地图的数据,所以坐标为GCJ02。

WGS84的坐标转化为GCJ02的坐标是单向的,即WGS84的坐标能够准确地变换为GCJ02坐标;但GCJ02坐标转换为WGS84时会存在精度损失。

GCJ02的坐标和BD09的坐标转换是双向的,转换规则可以参考下面的python代码:

import mathx_pi = 3.14159265358979324 * 3000.0 / 180.0def amapcoor2bmapcoor(amap_lon, amap_lat):x = amap_lony = amap_latz = math.sqrt(x * x + y * y) + 0.00002 * math.sin(y * x_pi)theta = math.atan2(y, x) + 0.000003 * math.cos(x * x_pi)bmap_lon = z * math.cos(theta) + 0.0065bmap_lat = z * math.sin(theta) + 0.006return (bmap_lon, bmap_lat)def bmapcoor2amapcoor(bmap_lon, bmap_lat):x = bmap_lon - 0.0065y = bmap_lat - 0.006;z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * x_pi);theta = math.atan2(y, x) - 0.000003 * math.cos(x * x_pi);amap_lon = z * math.cos(theta);amap_lat = z * math.sin(theta);return (amap_lon, amap_lat)

五、小结

个人总结:

  • 经纬度和瓦片的概念
  • 墨卡托投影与Web墨卡托投影(Web墨卡托投影是摩卡投影的变种)
  • EPSG4326、EPSG3857(Web墨卡托的标准,EPSG4326是WGS84表示坐标,EPSG3857坐标单位是米)
  • WGS84、GCJ02、BD09(WGS84大家广泛GPS用的,GCJ02是国家加密的,BD09是百度在国家加密的基础上再加密的)
根据以下作者做的笔记,他的比较完整。
参考地址:https://segmentfault.com/a/1190000011276788
【瓦片编号】https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection/#3/15.00/50.00
【墨卡托投影】
【百度XYZ】https://lbsyun.baidu.com/index.php?title=jspopular/guide/maplayer
【微软QuadTree】https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system?redirectedfrom=MSDN

http://www.ppmy.cn/news/487383.html

相关文章

wap2app是什么

wap2app 是一个将现有M站(也称手机wap站,区别于pc的web站)快速发布成 App 的增强方案,通过 DCloud 的 wap2app 框架,进行简单的配置和必要的编程,即可完成M站的体验强化,达到原生应用的功能体验,进而再发布为原生安装包或流应用。 名词解释 wap 这里并不是严格意义上的…

什么是WAP?

译者序: 我当初翻译这篇文章只是出于个人对这个技术的好奇,没想到会得到大家的激烈讨论,至于WAP技术的前景和发展演化,我将继续为大家翻译更好的文章。我的第二篇关于WAP的文章《WAP FAQ24问》已经发表,在哪儿也许会消除您对部分问题的疑惑。  有关这篇文章的技术性问题…

WAP是什么意思?

WAP(Wireless Application Protocol)无线应用协议是一个开放式标准协议,利用它可以把网络上的信息传送到移动电话或其他无线通讯终端上。WAP是由爱立信(Ericsson)、诺基亚(Nokia)、摩托罗拉&…

SPI实验-ICM20608测量值计算与IMX6ULL开启硬件浮点

一. SPI 实验 SPI实验:学习如何使用 I.MX6U 的 SPI 接口来驱动 ICM-20608,读取 ICM-20608 的六轴数据。 ICM20608 传感器包括陀螺仪与加速度计,还有温度值。本篇文章来学习 通过ADC的值,来转换为实际的值。例如,通过陀…

ATKCK红队评估实战靶场(二)-简记

001# 信息收集 nmap -sS -v 192.168.0.80 //端口探测 open : 80、135、139、445、1433、3389、7001、49152、49153、49154 445 -》smb ms17_010 139-》samba->爆破/未授权访问/远程命令执行 1433-》mssql-》爆破/注入/SA弱口令 7001-》weblogic-》反序列…

AI热门垂直领域大模型盘点(附论文)

上回分享了一些通用大模型的使用感受,今天咱们就来聊聊垂直领域大模型,照旧附上论文资料,同学们自取哈! 其实照目前的趋势来看,垂直领域大模型的未来发展是要比通用大模型好的,一是通用大模型有GPT4这座难…

Pandas数据清洗常用函数

构造一个数据集,便于演示这些函数。 import pandas as pd df {姓名: [漩涡鸣人, 宇智波佐助, 旗木卡卡西, 春野樱, 宇智波鼬],性别: [男, 男, men, women, 男],身份证: [463895200003128433, 429475199912122345, 420934199110102311, 431085200005230122, 420953…

Python数据挖掘入门与实践-第9章-古腾堡计划网站书籍资料下载

由于python版本以及网站更新等原因,导致了书上的代码没有用了。因此自己试着修改了代码。 下面就来讲讲修改中遇到的主要问题 问题:网站URL变更 # 书上的代码 url_base "http://www.gutenberg.myebook.bg/"fixes[1044] url_base "1…