Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于坐标系、投影与瓦片 #178

Open
liujiusheng opened this issue Jul 24, 2020 · 0 comments
Open

关于坐标系、投影与瓦片 #178

liujiusheng opened this issue Jul 24, 2020 · 0 comments
Labels

Comments

@liujiusheng
Copy link
Owner

liujiusheng commented Jul 24, 2020

这将是一篇很长很专业的文章,这涉及到我的专业 ......

地理学的人掌握坐标系和投影知识就应该像计算机的人掌握计算机原理和操作系统原理一样,但近几年工作发现很少有人能说清楚这些皮毛。

此文将包含:地理坐标系、投影方法、切片规则等内容,内容可能来自网络、书籍和自己的总结理解,如果觉得有用请随意取用,我不负版权责任,我也在学习中,写错的地方欢迎讨论指正。

常见问题点:

1.到底CGCS2000与WGS84的技术区别在哪里?

总体来讲它们两个几乎一样,都是以地球质心为球心,赤道半径一致,偏率一致,但是极半径有细微差别。

2.高斯克吕格投影和WEB默卡托投影的技术区别又在哪里?

高斯克吕格是横轴投影,是按3度带或6度带对地球进行分片投影的,因为是分区域投影所以形变很小,一般只适合市域大小区域的投影;WEB墨卡托投影是正轴投影是全球整个进行的投影,不用分带,县是把地球当作一个正圆来投影的,投影出来的全球地图是个正方形,虽然高纬度地区会有形变(85度以上直接舍弃了),但整体上基本保持了经纬度同比例放大,所以只是物体放大了而实际相对的长宽并没有变化。

3.它们对应到现在的信息化技术,又在哪些实现方案上有什么不同?

所谓现代信息技术大概就是指把它放到网页上来,网页上现在采用的主流是Web墨卡托,其次以经纬度直投为辅助。高斯克吕格投影的网页地图还没看见过,所以在实现方案上无法做出什么比较。

4.CGCS2000与WGS84,高斯克吕格投影和WEB默卡托投影它们如何从技术上进行变换?

CGCS2000与WGS84之间的变换有网友提供的计算公式,不过因为差异实在太小,变不变都无所谓。
高斯克吕格投影和WEB默卡托投影没有变换的必要。

5.坐标转换涉及到的七参数法、四参数法到底是怎样操作的?

七参数是针对三维空间,四参数是针对二维空间

两个不同的三维空间直角坐标系之间转换时,通常使用七参数模型(数学方程组),在该模型中有七个未知参数,即:

(1)三个坐标平移量(△X,△Y,△Z),即两个空间坐标系的坐标原点之间坐标差值;

(2)三个坐标轴的旋转角度(△α,△β,△γ),通过按顺序旋转三个坐标轴指定角度,可以使两个空间直角坐标系的XYZ轴重合在一起。

(3)尺度因子K,即两个空间坐标系内的同一段直线的长度比值,实现尺度的比例转换。通常K值几乎等于1。

以上七个参数通常称为七参数。运用七参数进行的坐标转换称为七参数坐标转换。

在转换范围较小的小范围内不同的平面坐标转换通常采用二维四参数模型转换,四个参数分别为:

X:x方向平移量

Y:y方向平移量

α:旋转参数,单位为弧度

m:尺度参数,无单位

6.i3s规范是什么?

i3s是一种用树结构来组织大体积量三维数据的数据格式标准,与位图界的jpg格式一样,只不过i3s是“标准”,具体实现的文件格式另有一说。

i3s采用json文件来描述数据,采用二进制文件(格式为.bin)来存储三维地理数据。

i3s是OGC规范,目前OGC版本是1.0,但是在Esri维护的社区项目中,i3s已经演进到1.7了。可以说是“一般”与“特殊”的区别。

OGC标准一旦制定就不应该频繁更改,但是社区维护版本可以根据实际生产需要,基于OGC标准做结构优化等。

i3s标准将三维地理数据切分,用“节点”的概念组织起来,然后这些节点被有序地写在“节点页”中,即以树形结构存储数据。

i3s将三维地理数据组织起来后,可以放在服务器上通过REST接口访问。

i3s目前由slpk格式的文件实现(主要是ArcGIS使用)。

7.3Dtile是什么?

3dtiles/gltf/s3m与i3s一样是三维的标准。
3dtile主要是cesium在支持。
gltf是一种很轻量的格式,是three.js推荐的三维格式。

8.UTM是什么?

指通用横轴墨卡托投影。它与WEB墨卡托和高斯克吕格的不同看后面的投影部分就明白了。

9.3度带和6度带详解?

以格林威治为第一条中央经线,将地球以经线方向按3度和6度将地球均分为120份和60份的分带方式,每个分带中以中央经线为中心进行独立的投影。

10.采用2000国家大地坐标系后投影方式有无改变?

2000国家大地坐标系平面坐标投影仍采用高斯-克吕格投影。海图仍采用横轴墨卡托投影(UTM)。

11.“国家天文大地网”是什么?

天文大地网(astrogeodetic network)。如果在大地网中每隔一定距离选取若干大地点测定天文经纬度和天文方位角,作为网的起算和校核数据,并用以计算天文大地垂线偏差,这种天文测量和三角测量(或导线测量)方法建立的水平控制网称为“天文大地网”。
我国在全国范围内首先建立起的一等天文大地网,其基本图形为沿经线和纬线方向布设、长度约200km的三角形锁段所组成的方格形的控制网。

12.大地原点与坐标系原点的区别是什么?

大地原点一般选在特定范围的中心位置,其坐标通过各种方法综合确定。如1980西安坐标系以我国范围内高程异常平方和最小为条件,采用多点定位的结果确定椭球定位和定向;并由此推算大地原点在此坐标系的坐标作为起算数据,推算其他各点的坐标。1980西安坐标系的大地原点设在我国中部地区,可使推算坐标的精度比较均匀。因此大地原点坐标绝不是(0,0,0),而是与大地原点在椭球上所处具体位置密切相关的(B,L,H)。按多点定位解得的大地原点的垂线偏差和高程异常值分别为:
ξ =-1.9,η=-1.6,ζ=-14.0m
坐标系的原点为坐标系的各点位置的参照点,一般定义为(0,0,0)

13.坐标系还有个“历元”的概念?

历元,在天文学是一些天文变数作为参考的时刻点,例如天球座标或天体的椭圆轨道要素,因为这些会受到摄动而随着时间变化。这些会随着时间变动的天文变量可能包括天体的平黄经或平近点角、轨道相对于参考平面的交点、轨道近日点和远日点或拱点的方向、其轨道半长轴的大小等等。历元按用途不同主要分为3种:

(1)星表(星图)历元

由于岁差和章动以及自行的影响,各种天体的天球坐标都随时变化。因此,星表(星图)所列的各种天体的天球坐标,都只能对应于某一特定时刻,所以需要注明属于某一历元,如1950.0、1975.0等,这种历元称为星表(星图)历元。在使用星表(星图)时,可以利用岁差、章动和自行的资料,将种种天体对应于星表(星图)历元的天球坐标换算为使用时刻的天球坐标。

(2)观测历元
为了比较不同时刻的观测结果,需要注明观测资料所对应的观测时刻,这种时刻称为观测历元。

(3)时间计量的初始历元
在时间计量系统中,除了确定时间单位外,还要确定时间计量的起点,这种起点称为时间计量的初始历元。
现在ITRF框架中使用的标准历元是J2000.0,即TT为2000年1月1日12:00。前缀“J”,代表这是一个儒略历元。在使用2000.0前的标准历元是B1950.0,前缀“B”代表这是一个贝塞尔历元。贝塞尔历元在1984年前使用,现在使用的是儒略历元。

14.“2000国家大地控制网”是什么?

2000国家大地控制网点是2000国家大地坐标系的框架点,是2000国家大地坐标系的具体实现。除了包括2000国家GPS大地控制网外,还包括在2000国家GPS大地控制网的基础上完成的天文大地网联合平差获得的在ITRF97框架下的近5万个一、二等天文大地网点,同时也将包括在ITRF97框架下平差后获得的近10万个三、四等天文大地网点。

按精度不同可划分为以下3个层次:
(1)2000国家GPS大地控制网中的连续运行基准站,其坐标精度为毫米级。
(2)国家测绘局GPS A、B级网,总参测绘局GPS一、二级网以及由中国地震局、总参测绘局、中国科学院、国家测绘局共建的中国地壳运动观测网,还有其他地壳形变GPS监测网等中除了CORS站以外的所有站。2000国家GPS大地控制网提供的地心坐标的精度平均优于+-3cm。
(3)2000国家大地坐标系下的一、二、三、四等天文大地网点。

国家测绘局和总参测绘局分别完成的我国天文大地网与2000国家GPS大地控制网的观测数据联合处理,获得的我国48919个一、二GPS站,21个VLBI站和11个SLR站,其中有中国的拉萨和上海的SLR站。

15.“参考系与参考框架间的关系”是什么?

参考框架是坐标参考系的实现。参考系定义明确且严密,抽象难把握。需通过一些具体直观的点来描述或反映某一特定的坐标参考系,这些满足特定坐标参考系的点就是人们通常所说的坐标参考框架。一般而言,只要涉及与空间位置有关的问题,就会涉及参考系;而涉及参考系必将会涉及坐标参考系框架。

16.“2000国家GPS大地控制网”是什么?

2000国家GPS大地控制网由国家测绘局布设的A、B级网,联合总参测绘局布设的GPS一、二级网以及由中国地震局、总参测绘局、中国科学院、国家测绘局共建的中国地壳运动观测网,还有其他地壳形变GPS监测网等。所有参加三网平差的上述GPS网点,经过筛选和相邻点合并,最近选取了国内2542个GPS点(其中CORS站25个—)参加了2000国家GPS大地控制网的数据处理,通过联合数据处理将框架点坐标统一归算到一个坐标参考框架(参考框架为ITRF97,参考历元为2000.0)下,处理后网点相对精度优于10^-7以上,2000国家GPS大地控制网提供的地心坐标的精度平均优于+-3cm。可满足现代测量技术对地心坐标的需求,同时为建立我国新一代的地心坐标系统奠定了坚实的基础。

17.有“经纬度投影”这个说法么?如果没有,那ArcGIS里面看地理坐标的数据的时候是 怎样处理的?

经纬度表示的是地理坐标系(单位是度),不是投影坐标系(单位是米),两者放一起明显不妥。
但事实上有“经纬度直投”这个说法,ArcGIS在不指定投影坐标系的时候会默认使用经纬度直投,现在的天地图也可以切换为经纬度直投的方式。

18.有哪些坐标系标准?比如3857、900913实际是同一个东西在不同标准系统里面的不同名字

常见的有EPSG、ESRI、OSGeo。

19.大地坐标系与地理坐标系有何不同?

大地坐标系和地理坐标系都是经纬度表示的坐标系,本身并不包含投影信息,很多时候,这两种说法都是相同的。

20.为什么会形成城市坐标系统?

城市坐标系统是指某些不适宜采用国家坐标系统的城市(如果采用国家标准分带,将会导致地面点的高斯投影变形超过国家相关测量规范规定的极限值),根据实际情况采用并报国家测绘管理部门批准的任意带高斯投影平面直角坐标系。

譬如,某城市采用的是中央子午线117°高斯投影平面直角坐标系,它就属于国家坐标系统;而另一个城市采用的是中央子午线116°20′高斯投影平面直角坐标系,它就属于城市坐标系统

21.什么是本初子午线?什么是经线?

位于两极点中间的纬线称为赤道。它定义的是零纬度线。零经度线称为本初子午线。对于绝大多数地理坐标系,本初子午线是指通过英国格林尼治的经线。其他国家/地区使用通过伯尔尼、波哥大和巴黎的经线作为本初子午线。经纬网的原点 (0,0) 定义在赤道和本初子午线的交点处。这样,地球就被分为了四个地理象限,它们均基于与原点所成的罗盘方位角。南和北分别位于赤道的下方和上方,而西和东分别位于本初子午线的左侧和右侧。

22.常说的WKID即Well Known ID都是什么?

WKID即Well Known ID,众所周知的ID号的意思。
WKT即Well-Known Text,都出自OGC。
EPSG是管理这些ID号的一个组织,网站是 epsg.io

投影面是(椭)圆柱面的投影均叫“墨卡托投影”

23.常说的kml(kmz)/gml/gpx都是些什么?

三种都是XML的一种扩展,kmz是kml的压缩文件,kml是早期Google Earth的数据格式,现在是OGC的一种数据标准规范,gml也是OGC的一种标准数据规范。gpx是gps卫星信息的记录文件。

24.ArcGIS Server发布的MapServer为什么会有子图层,ImageServer(影像服务)没有?

image

几种常用坐标系的椭球体对比

坐标系名 北京54 西安80 WGS84 CGCS2000
参考椭球 Krasovsky_1940 IAG75(ArcGIS中标注是Xian_1980椭球) WGS_1984 CGCS2000
椭球极半径b 6356863.0187730473 6356755.288158 6356752.314245 6356752.314140
椭球赤道半径a 6378245.000000 6378140.000000 6378137.000000 6378137.000000
扁率 1/298.3 1/298.25722101 1/298.257223563 1/298.257222101
参考水准面 56黄海 85黄海 - 85黄海
ArcGIS中的名称 GCS_Beijing_1954 GCS_Xian_1980 GCS_WGS_1984 GCS_China_Geodetic_Coordinate_System_2000
ArcGIS中WKID 4214 4610 4326 4490

25.比例尺怎么计算?是不是投影后的地图计算比例尺都是不准确的?

比例尺是指图片一厘米代表实际多长距离。由于投影后两极形变比较大,所以比例尺原则上是不准确的。

26.各种地理坐标系转换为投影坐标系时的函数应该各是什么样?

不同的投影公式各有不同,尤其高斯克吕格投影公式超级复杂,由于公式太多不好编辑,所以直接参考别人写好的吧。
常用地图投影转换公式

27.国家现在要求所有的地理数据必须为CGCS2000那我们还能用WEB墨卡托投影么?

完全可以。CGCS2000是属于地理坐标系,并不指投影坐标。国家从来没有强制规定要用什么样的投影方法,虽然我们都知道我国多数据情况下是使用高斯克吕格投影,但并不代表必须要在网页地图上使用高斯克吕格投影。

据我所知现在网页地图上几乎没有看到谁用的高斯克吕格投影,都是用的WEB墨卡托投影或者经纬度直投,而且天地图也是使用WEB墨卡托投影方式。所以实际使用过程中,只要源数据是地理坐标系,投影坐标使用WEB墨卡托应该也无妨。

28.天文坐标和大地坐标是什么玩意儿?

地面点在球面上的位置用经纬度表示时,称为地理坐标。地理坐标按坐标所依据的基准线、基准面及求坐标方法的不同,可分为天文坐标和大地坐标两种。

天文坐标又称天文地理坐标,是用天文经度和天文纬度表示地面点在大地水准面上的位置。

大地坐标又称大地地理坐标,用大地经度和大地纬度表示地面点在旋转椭球面上的位置。

天文经纬度是用天文测量方法测定的。大地经纬度是根据一个起始的大地点(大地原点,这点的大地经、纬度与天文经度一致)的大地坐标,按大地测量所得的数据推算而得的。现在我国以永乐镇的大地原点为起算点,由此建立新的统一坐标系,称为1980年国家大地坐标系。在国家各等级平面控制测量中,实际测定和应用的是大地坐标。

地理坐标系

1.CGCS2000(2000国家大地坐标系,wkid=4490)

2000国家大地坐标系的原点为包括海洋和大气的整个地球的质量中心。2000国家大地坐标系的Z轴由原点指向历元2000.0的地球参考极的方向,该历元的指向由国际时间局给定的历元为1984.0作为初始指向来推算,定向的时间演化保证相对于地壳不产生残余的全球也旋转;X轴由原点指向格林尼治参考子午线与地球赤道面(历元2000.0)的交点;Y轴与Z轴、X轴构成右手正交坐标系。2000国家大地坐标系的尺度为在引力相对论意义下的局部地球框架下的尺度。
2000国家大地坐标系采用的地球椭球参数数值为:

长半轴 α=6378137m

扁率 f=1/298.257222101

地心引力常数 GM=3.986004418X10^14m^3s^-2

自转角速度 ω= 7.292115x10^-5rad/s

2.WGS84(1984年世界大地坐标系统,wkid=4326)

WGS-84坐标系(World Geodetic System一1984 Coordinate System)
一种国际上采用的地心坐标系,称为1984年世界大地坐标系统。WGS-84椭球采用国际大地测量与地球物理联合会第17届大会测量常数推荐值,采用的两个常用基本几何参数。

WGS-84是修正NSWC9Z-2参考系的原点和尺度变化,并旋转其参考子午面与BIH定义的零度子午面一致而得到的一个新参考系,WGS-84坐标系的原点在地球质心,Z轴指向BIH1984.0定义的协定地球极(CTP)方向,X轴指向BIH1984.0的零度子午面和CTP赤道的交点,Y轴和Z、X轴构成右手坐标系。它是一个地固(地心固连)坐标系。

长半径:a=6378137±2(m);

地球引力和地球质量的乘积:GM=3986005×108m3s-2±0.6×108m3s-2;

正常化二阶带谐系数:C20=-484.16685×10-6±1.3×10-9;

地球重力场二阶带球谐系数:J2=108263×10-8;

地球自转角速度:ω=7292115×10-11rads-1±0.150×10-11rads-1;

扁率f=0.003352810664

GPS广播星历是以WGS-84坐标系为根据的

3.西安80(wkid=4610)

西安80坐标系是指1980年西安坐标系,又简称西安大地原点。1978年4月在西安召开全国天文大地网平差会议上建立。

1980年国家大地坐标系采用地球椭球基本参数为1975年国际大地测量与地球物理联合会第十六届大会推荐的数据。该坐标系的大地原点设在我国中部的陕西省泾阳县永乐镇,位于西安市西北方向约60公里,故称1980年西安坐标系,又简称西安大地原点。基准面采用青岛大港验潮站1952-1979年确定的黄海平均海水面(即1985国家高程基准)。
我国在积累了30年测绘资料的基础上,采用1975年第16届国际大地测量及地球物理联合会IUGG/IAG)推荐的新的椭球体参数(长半径、地心引力常数、自转角速度等数据),椭球短轴平行于由地球质心指向1968.0地极原点的方向,首子午面平行于格林尼治平均天文台的子午面。以陕西省西安市以北泾阳县永乐镇某点为国家大地坐标原点,通过全国天文大地网整体平差建立了全国统一的大地坐标系,即1980年国家大地坐标系,简称1980年西安原点或西安80坐标系。

西安80是为了进行全国天文大地网整体平差而建立的。根据椭球定位的基本原理,在建立西安80坐标系时有以下先决条件:

(1)大地原点在我国中部,具体地点是陕西省泾阳县永乐镇;

(2)西安80坐标系是参心坐标系,椭球短轴Z轴平行于地球质心指向地极原点方向,大地起始子午面平行于格林尼治平均天文台子午面;X轴在大地起始子午面内与 Z轴垂直指向经度 0方向;Y轴与 Z、X轴成右手坐标系;

(3)椭球参数采用IUG 1975年大会推荐的参数,因而可得西安80椭球两个最常用的几何参数为:

长半轴a=6378140±5(m)

短半轴b=6356755.2882(m)

扁 率α=1/298.257

第一偏心率平方 =0.00669438499959 第二偏心率平方=0.00673950181947

椭球定位时按我国范围内高程异常值平方和最小为原则求解参数。

(4)多点定位;

(5)基准面采用青岛大港验潮站1952-1979年确定的黄海平均海水面(即1985国家高程基准)。

4.北京54(wkid=4214)

北京54坐标系(BJZ54)是指北京54坐标系为参心大地坐标系,大地上的一点可用经度L54、纬度M54和大地高H54定位,它是以克拉索夫斯基椭球为基础,经局部平差后产生的坐标系。1954年北京坐标系可以认为是前苏联1942年坐标系的延伸。它的原点不在北京而是在前苏联的普尔科沃。

北京54坐标系特点可归结为:
a.属参心大地坐标系;
b.采用克拉索夫斯基椭球的两个几何参数;
c.大地原点在原苏联的普尔科沃;
d.采用多点定位法进行椭球定位;
e.高程基准为 1954年青岛验潮站求出的黄海平均海水面;
f.高程异常以原苏联 1955年大地水准面重新平差结果为起算数据。按我国天文水准路线推算而得。

椭球坐标参数如下:
长半轴a=6378245m;
短半轴=6356863.0188m;
扁率α=1/298.3;
第一偏心率平方 =0.006693421622。

5.GCJ02

GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。

它是一种对经纬度数据的加密算法,即加入随机的偏差。

国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

高德地图、腾讯地图使用此坐标系。

6.BD09

由百度定义的坐标系,只有百度地图使用此坐标系。

在GCJ02坐标系基础上再次加密。其中BD09LL表示百度经纬度坐标,BD09MC表示百度墨卡托米制坐标。

投影方法

投影是将球面数据放到平面上来看的一种方法,类似于一个转换函数。

1.Web默卡托投影

web墨卡托是将地球看成一个标准的圆球,在leaflet.js的投影定义里还有一个椭球的墨卡托投影。

Web墨卡托是2005年谷歌在谷歌地图中首次使用的,当时或更早的Web墨卡托使用者还是称其为世界墨卡托 World Mercator - Spherical Mercator (unofficial deprecated ESRI),代号 WKID 54004 (在 EPSG:54004 或 ESRI:54004 中,非官方)。

在2006年,OSGeo在提出的 Tile Map Service (TMS) 标准中使用代号 OSGEO:41001,WGS84 / Simple Mercator - Spherical Mercator (unofficial deprecated OSGEO / Tile Map Service)。

2007年8月6日 Christopher Schmidt (OpenLayers的重要贡献者之一)在通过一次GIS讨论中为了在OpenLayers中使用谷歌投影,提出给谷歌投影(Web墨卡托)使用一个统一的代号(已有如54004、41001之类的代号)900913(也形似 Google),并与同年9月11日在OpenLayers的OpenLayers/Layer/SphericalMercator.js中正式使用代号 900913。

在2008年5月EPSG在6.15版本中正式(可能是谷歌地图取得了巨大成功)给谷歌地图投影赋予 CRS 代号 EPSG:3785(Popular Visualisation CRS / Mercator),这也是Web墨卡托正式被EPSG组织承认(由于Web墨卡托不是标准的地图投影,之前一直没有被EPSG没有收录)。

很快EPSG于2009年2月9号使用新代号 EPSG:3857 代替之前的 EPSG:3785,给谷歌地图投影方法命名为“公共可视化伪墨卡托投影”(PVPM),投影运算方法代号 1024。

至今,EPSG:3857(WGS 84 / Pseudo-Mercator) 代号是web墨卡托的正式代号。

在GIS界,离不开 ESRI,Web墨卡托的代号在 ESRI 中也有几个。最早在 ESRI 的软件中给Web墨卡托投影的称号为 102113(WGS 1984 Web Mercator),与 EPSG:3785 对应;后来使用 102100(WGS 1984 Web Mercator Auxiliary Sphere),与 EPSG:3857 对应。

在 ArcGIS 10.0 版本中,ESRI 正式使用 EPSG:3857 替换之前的 EPSG:102100。

总之,Web墨卡托现在的正式官方代号 EPSG:3857,同时 900913、3587、54004、41001、102113、102100 和 3785 等也是指Web墨卡托,虽然他们的具体定义会有一些差别,但他们在数学上是相等的。

Web墨卡托取得了巨大成功,如今主流的Web地图几乎都是使用的Web墨卡托,如国外的 Google Maps,OpenStreetMap,Bing Map,ArcGIS 和 Heremaps 等,国内的百度地图、高德地图、腾讯地图和天地图等也是基于Web墨卡托(由于国内政策的原因,国内地图会有加密要求,一般有两种情况,一种是在 Web墨卡托的基础上经过国家标准加密的国标02坐标系,熟称“火星坐标系”;另一种是在国标的02坐标系下进一步进行加密,如百度地图的BD09坐标系)。

默卡托投影在地图上直观看起来就是一张正方形的地图

在地图上保持方向和角度的正确是墨卡托投影的优点,墨卡托投影地图常用作航海图和航空图,如果循着墨卡托投影图上两点间的直线航行,方向不变可以一直到达目的地,因此它对船舰在航行中定位、确定航向都具有有利条件,给航海者带来很大方便。

Web墨卡托较接近与最原始的墨卡托,即正轴墨卡托(投影圆柱的轴心与地球自转轴重合)。(而横轴墨卡托的投影圆柱轴心垂直于地球自转轴)

image
image

墨卡托投影

image
image

横轴墨卡托投影(如高斯等)

2.UTM投影(通用横轴墨卡托投影)

UTM投影全称为“通用横轴墨卡托投影”,英文名称为Universal Transverse Mercator,该坐标系是由美国军方在1947提出的。虽然我们仍然将其看作与“高斯-克吕格”相似的坐标系统,但实际上UTM采用了网格的分带(或分块)。除在美国本土采用Clarke 1866椭球体以外,UTM在世界其他地方都采用WGS84。

UTM是由美国制定,因此起始分带并不在本初子午线,而是在180度,因而所有美国本土都处于0-30带内。UTM投影采用6度分带,从东经180度(或西经180度)开始,自西向东算起,因此1带的中央经线为-177(-180 -(-6)),而0度经线为30带和31带的分界,这两带的分界分别是-3和3度。纬度采用8度分带,从80S到84N共20个纬度带(X带多4度),分别用C到X的字母来表示。为了避免和数字混淆,I和O没有采用。UTM的“false easting”值为500公里,而南半球UTM带的“false northing”为10000公里。

UTM是一种等角横轴割圆柱投影,圆柱割地球于南纬80度、北纬84度两条等高圈,被许多国家用作地形图的数学基础,如中国采用的高斯-克吕格投影就是UTM投影的一种变形,很多遥感数据,如Landsat和Aster数据都应用UTM投影发布的。

UTM投影将北纬84度和南纬80度之间的地球表面积按经度6度划分为南北纵带(投影带)。从180度经线开始向东将这些投影带编号,从1编至60(北京处于第50带)。每个带再划分为纬差8度的四边形。两条标准纬线距中央经线为180KM左右,中央经线比例系数为0.9996,UTM北半球投影北伪偏移为零,南半球则为10000公里。

3.高斯-克吕格投影

与UTM类似,支持3度带和6度带两种投影方式,通常只用于市级等面积较小的行政区域,3度带共分为120带,6度带分为60带,每一带都以中央经线为中心独立投影,

4.经纬度直投

image

在大范围,目前好像很多项目都采用“经纬度直投”,------天地图也采用了。
现在天地图默认使用web默卡托投影,可切换为经纬度直投模式。
image

“经纬度等间隔直投”的特点是相同的经纬度间隔在屏幕上的间距相等,程序员应该比较喜欢,没有复杂的坐标变换。但是只是在低纬度地区长度、角度、面积、形状变化比较小,越向高纬度,水平距离变长越大,很小的纬圈都变得和赤道一样长。同时要素自身会变形,长方形会变成上宽下窄的倒梯形。

从技术上讲经纬度直投实现很简单,即:我们已知地球赤道的周长,也知道任意点在地球某一纬度上时该纬线的周长,把赤道周长和纬线周长都从本初子午线对切成两半,根据(纬度周长/赤道周长=纬线上某一点线长度/赤道上同一角度上线长度)的原理,可以推算出“赤道上同一角度上线长度”。简单讲就是纬线上的点应该在赤道上哪个位置。

5.GCJ02经纬度投影

GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。

它其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被大家称为“火星坐标系统”。

该坐标系的坐标值为经纬度格式,单位为度。

这里的GCJ02经纬度投影,也就是在WGS84经纬度的基础之上,进行GCJ-02加偏。

6.GCJ02 Web 墨卡托投影

GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。

它其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被大家称为“火星坐标系统”。

该坐标系的坐标值为Web墨卡托格式,单位为米。

这里的GCJ02 Web 墨卡托,也就是在标准Web默卡托的基础之上,进行GCJ-02加偏。

7.兰伯特(Lambert)投影与阿尔伯斯(Albers)投影

image
此时的兰伯特投影是切圆锥投影,当然兰伯特也可以是割圆锥投影(图b)。
它类似于阿尔伯斯投影,不同之处在于其描绘形状比描绘面积更准确。
中国国家全幅地图、美国国家平面坐标系对所有具有较大东西范围的区域均使用此投影。国际上用此投影编制1∶100万地形图和航空图。
而阿尔伯斯投影常见于我国的省区投影,因为面积更准确。
阿尔伯斯投影是一种圆锥等面积投影。

切片规则

切片实际是采用金字塔结构将大量的空间数据分片后传输回客户端并在客户端进行重组,形成视觉上完整的地图的技术方案。采用本技术方案通常会预切图加快服务访问效率,并且通过缓存减少服务器重复性的计算开销。

要切片首先要建立一个网格,切片的时候按网格来切。不同缩放级别下网格数量不一致,但基本保持2的n次方的规则。

切片规则几乎是一模一样的,所以切片规则与服务类型是无关的,不管它是WFS还是MVT。

切片规则与投影坐标系也没任何关系,虽然切片前必定会先投影。

只要它的投影坐标系一致且切片规则一致,那么它的切出来的瓦片就是一致的,点线面的位置都能对应上。

在网页端的投影主要有web墨卡托和经纬度直投两种模式,高斯克吕格投影和通用横轴墨卡托投影几乎没见到过。
切片编号规则通常有谷歌XYZ的规则、TMS规则、QuadTree规则(微软Bing地图)、百度XYZ规则。

1.谷歌XYZ的规则

Z表示缩放层级,Z=zoom;XY原点在左上角,X从左向右,Y从上向下。

2.TMS规则

OSGeo制定的开源标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。

3.QuadTree规则(微软Bing地图)

微软Bing地图使用的编码规范,Z的定义与谷歌相同,同一层级的瓦片不用XY两个维度表示,而只用一个整数表示,该整数服从四叉树编码规则。

4.百度XYZ规则

Z从1开始,在最高级就把地图分为四块瓦片;XY的原点在经度为0纬度为0的位置,X从左向右,Y从下向上。

开源工具

我后续还会整理一个开源工具集出来,虽然已经有人干过这个事了。

参考资料

https://www.cnblogs.com/telwanggs/p/10325632.html

https://www.jianshu.com/p/6f3f00546f20

https://www.bilibili.com/read/cv4210996/

《2000国家大地坐标系实用宝典》

两种常用切片方式说明

https://segmentfault.com/a/1190000011276788

https://wenku.baidu.com/view/3970b90b6429647d27284b73f242336c1eb930ad.html
http://www.gissky.net/Article/81.htm

把这篇文章写完之后再做一个工程《开源GIS解决方案合集》,分析当前流行的开源GIS工具

目前开源方案有Mapbox、Geoserver、Mapserver等多种开源方法。

proj
proj工具用来转换地理坐标到投影坐标以及投影坐标到地理坐标,但是有一个前提条件是这两个坐标系统在同一个基准面之下。

cs2cs
cs2cs工具可以实现两个坐标系统之间的互相转换,这两个坐标系统可以是投影坐标与地理坐标之间的转换,也可以是基准面之间的转换。

geod
提供对大圆的常用测地计算。

@liujiusheng liujiusheng changed the title 关于坐标系的深入研究与公式推导 关于坐标系、投影与瓦片 Jul 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant