地图参考系的那些事儿+你可能忽略的小知道

版权声明:该博客整合转发来自他人,在此列明,一并感谢!
https://www.jianshu.com/p/a5ebaa859ca1 。zThanks
https://blog.csdn.net/m0_37738114/article/details/80452485 .我有明珠一颗
https://blog.csdn.net/gis0911178/article/details/80898658 gis0911178

地理坐标系统与投影坐标系统

地理坐标系统(Geographic Coordinate System),是一种球面坐标,是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。
投影坐标系统(Projection Coordinate System),是一种平面坐标。
投影坐标系使用基于X,Y值的坐标系统来描述地球上某个点所处的位置。这个坐标系是从地球的近似椭球体投影得到的,它对应于某个地理坐标系。

投影坐标系由以下参数确定:
地理坐标系(由基准面确定,比如:北京54、西安80、WGS84)
投影方法(比如高斯-克吕格、Lambert投影)、Mercator投影)

关于地理坐标系统

  • 北京54坐标系(BJZ54)

北京54坐标系为参心大地坐标系,大地上的一点可用经度L54、纬度M54和大地高H54定位,它是以克拉索夫斯基椭球为基础,经局部平差后产生的坐标系。
新中国成立以后,我国大地测量进入了全面发展时期,再全国范围内开展了正规的,全面的大地测量和测图工作,迫切需要建立一个参心大地坐标系。由于当时的“一边倒”政治趋向,故我国采用了前苏联的克拉索夫斯基椭球参数,并与前苏联1942年坐标系进行联测,通过计算建立了我国大地坐标系,定名为1954年北京坐标系。因此,1954年北京坐标系可以认为是前苏联1942年坐标系的延伸。它的原点不在北京而是在前苏联的普尔科沃。
北京54坐标系,属三心坐标系,长轴6378245m,短轴6356863,扁率1/298.3;

  • 西安80坐标系

1978年4月在西安召开全国天文大地网平差会议,确定重新定位,建立我国新的坐标系。为此有了1980年国家大地坐标系。1980年国家大地坐标系采用地球椭球基本参数为1975年国际大地测量与地球物理联合会第十六届大会推荐的数据,即IAG 75地球椭球体。该坐标系的大地原点设在我国中部的陕西省泾阳县永乐镇,位于西安市西北方向约60公里,故称1980年西安坐标系,又简称西安大地原点。基准面采用青岛大港验潮站1952-1979年确定的黄海平均海水面(即1985国家高程基准)。
西安80坐标系,属三心坐标系,长轴6378140m,短轴6356755,扁率1/298.25722101

  • WGS84

WGS-84坐标系(World Geodetic System)是一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直角坐标系的Z轴指向国际时间局(BIH)1984.0定义的协议地极(CTP)方向,X轴指向BIH1984.0的协议子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系。这是一个国际协议地球参考系统(ITRS),是目前国际上统一采用的大地坐标系。GPS广播星历是以WGS-84坐标系为根据的。
WGS84坐标系,长轴6378137.000m,短轴6356752.314,扁率1/298.257223563。
由于采用的椭球基准不一样,并且由于投影的局限性,使的全国各地并不存在一至的转换参数。对于这种转换由于量较大,有条件的话,一般都采用GPS联测已知点,应用GPS软件自动完成坐标的转换。当然若条件不许可,且有足够的重合点,也可以进行人工解算。

GPS,WGS-84,原始坐标体系。一般用国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。同时任何坐标系均不可转换为WGS-84坐标。

  • GCJ-02

国测局02年发布的坐标体系,它是一种对经纬度数据的加密算法,即加入随机的偏差。又称“火星坐标”。

在中国,必须至少使用GCJ-02的坐标体系。比如腾讯,高德都在用这个坐标体系。GCJ-02也是国内最广泛使用的坐标体系。

  • CGCS2000坐标系

国家大地坐标系,该坐标系是通过中国GPS 连续运行基准站、 空间大地控制网以及天文大地网与空间地网联合平差建立的地心大地坐标系统。

  • 其他坐标体系。

一般都是由GCJ-02进行再一次加密得到的。这种体系就根据每个公司的不同,坐标体系都不一样了。比如,百度,搜狗,图吧,就在火星坐标上面再一次进行了加密。

国内地图软件所采用的坐标系简介

在这里插入图片描述

各种坐标系对比与测试
现在使用谷歌地球、百度、高德分别拾取故宫左下角位置的坐标进行对比。位置如图所示。
故宫右下角位置示意图
坐标相互转换,结果如下。

坐标系Google Earth(WGS84)百度地图(BD09)高德地图(火星坐标)
拾取的坐标116.386364 39.911985116.398991,39.919753116.392627,39.913428
转换为谷歌地球116.386371,39.912032116.386384,39.912025
转换为百度地图116.398979,39.919702116.399003,39.919747
转换为高德地图116.392602,39.913383116.392614,39.913434

表格里面的结果不能十分直观的反应各个坐标系之间的差异了,但是放在地图里面就十分直观了。对比下图。
在这里插入图片描述 谷歌地球里面拾取的坐标在百度地图里面的位置
在这里插入图片描述
谷歌地球拾取的坐标转换为BD-09坐标之后在百度地图里面的位置

关于投影坐标系统
前面讲了,每一种投影坐标是由地理坐标加投影方式产生的一种新坐标。

  • 投影方式

待更

  • 各种工具使用的坐标系

OpenLayers
目前OpenLayers 3支持两种投影

EPSG:4326,等同于WGS84坐标系
EPSG:3857,等同于900913,由Mercator投影而来,经常用于web地图

天地图
考虑到天地图是以CGCS-2000坐标系,与GPS坐标系一样,同是地心坐标系,所以相差不大数据偏移量会很小
百度地图
百度地图一般使用的是(BD-09)
国内Google地图
GCJ-02
各种坐标的转换
坐标转换
其他
例外,百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。
例外,搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。
例外,谷歌地球,google earth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标。在国内不允许使用。必须转换为GCJ-02坐标。

我国常用高程系

“1956年黄海高程系”,是在1956年确定的。它是根据青岛验潮站1950年到1956年的黄海验潮资料,求出该站验潮井里横按铜丝的高度为3.61 米,所以就确定这个钢丝以下3.61米处为黄海平均海水面。从这个平均海水面起,于1956年推算出青岛水准原点的高程为72.289米。
国家85高程基准其实也是黄海高程基准,只不过老的叫“1956年黄海高程系统”,新的叫“1985国家高程基准”,新的比旧的低0.029m
我国于1956年规定以黄海(青岛)的多年平均海平面作为统一基面,为中国第一个国家高程系统,从而结束了过去高程系统繁杂的局面。但由于计算这个基面所依据的青岛验潮站的资料系列(1950年~1956年)较短等原因,中国测绘主管部门决定重新计算黄海平均海面,以青岛验潮站1952年~1979年的潮汐观测资料为计算依据,并用精密水准测量接测位于青岛的中华人民共和国水准原点,得出1985年国家高程基准高程和1956年黄海高程的关系为: 1985年国家高程基准高程=1956年黄海高程-0.029m。1985年国家高程基准已于1987年5月开始启用,1956年黄海高程系同时废止。
各高程系统之间的关系:
56黄海高程基准:+0.000
85高程基准(最新的黄海高程):56高程基准-0.029
吴淞高程系统:56高程基准+1.688
珠江高程系统:56高程基准-0.586
我国目前通用的高程基准是:85高程基准

各个坐标系之间的转换
见链接 https://blog.csdn.net/m0_37738114/article/details/80452485
1)WGS-84 ——> GCJ02
2)GCJ02 ——> WGS-84
3)GCJ02 ——> BJ09
4)BD09 ——> GCJ02
5)BD09 ——> WGS-84

GeoCSV

  1. CSV

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。

CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是7-bitASCII是最基本的通用编码。

  1. GeoCSV

将空间几何对象采用WKT(well known text)、WKB(WKT的二进制编码)格式进行描述,并采用CSV格式进行存储,我们可以把这种空间数据存储方式定义为GeoCSV。GeoCSV应该是目前最简单的一种空间数据格式。

  1. 大数据优势

Hadoop和Spark为了便于分布式处理中数据切分,都主要按照分行处理方式设计。因此,空间数据经常保存为空间数据CSV格式,方便在分布式环境下使用。

  1. 示例
    也就是说,csv文件存储的是wkt/wkb这样的空间数据,不仅仅是点。
    点状要素:
POINT (116.32756042500012 39.929279327000074){GJDBZS=GJDBZS}
POINT (116.43676757800006 39.935001373000034){GJDBZS=GJDBZS}
POINT (116.41835784900002 39.985378265000065){GJDBZS=GJDBZS}
POINT (116.67050170900006 39.89196014400005){GJDBZS=GJDBZS}
POINT (116.4836273190001 39.997940063000044){GJDBZS=GJDBZS}
POINT (116.34028625500002 39.963119507000044){GJDBZS=GJDBZS}
POINT (116.35079193100012 39.968078613000046){GJDBZS=GJDBZS}
POINT (116.47178649900002 39.93315124500003){GJDBZS=GJDBZS}
POINT (116.30840301500007 39.966709137000066){GJDBZS=GJDBZS}

面状要素:

POLYGON ((99.4973, 22.45239000, 22.4512834, 99.49370280, 99.4973, 22.45239000))	POLYGON ((99.4973, 22.45239000, 22.4512834, 99.49370280, 99.4973, 22.45239000))
POLYGON ((99.4973, 22.45239000, 22.4512834, 99.49370280, 99.4973, 22.45239000))
POLYGON ((99.4973, 22.45239000, 22.4512834, 99.49370280, 99.4973, 22.45239000))
POLYGON ((99.4973, 22.45239000, 22.4512834, 99.49370280, 99.4973, 22.45239000))

EPSG是什么?WKT是什么?SRID是什么?EPSG、WKT、SRID概念

EPSP的英文全称是European Petroleum Survey Group,中文名称为欧洲石油调查组织(http://www.epsg.org/)。这个组织成立于1986年,2005年并入IOGP(International Association of Oil & Gas Producers),中文名称为国际油气生产者协会。它负责维护并发布坐标参照系统的数据集参数,以及坐标转换描述,该数据集被广泛接受并使用,通过一个Web发布平台进行分发,同时提供了微软Acess数据库的存储文件,通过SQL 脚本文件,mySQL, Oracle 和PostgreSQL等数据库也可使用。
目前已有的椭球体,投影坐标系等不同组合都对应着不同的ID号,这个号在EPSG中被称为EPSG code,它代表特定的椭球体、单位、地理坐标系或投影坐标系等信息。EPSG对世界的每一个地方都制定了地图,但是由于座标系不同,所以地图也各不相同。

中国地图比如对于中国来讲,以地球的几何球心为中心的地图就是EPSG:4479,以地球的椭球焦点为中心就是EPSG:4480,此外还有EPSG:4490,因为选择不同的座标系对于油气勘探的成本至关重要,所以有不同的座标系。

世界地图EPSG:4326在世界地图方面,EPSG:4326是比较著名的一个,因为由美国主导的GPS系统就是在用它,它还有一个名气更大的别名叫作WGS84,WGS(World Geodetic System)是世界大地测量系统的意思,由于是1984年定义的,所以叫WGS84,之前的版本还有WGS72、WGS66、WGS60。EPSG:3857另一个比较知名的编码是EPSG:3857,这也是一张世界地图,目前主要是各大互联网地图公司以它为基准,例如Google地图,Microsoft地图都在用它。

所有这些EPSG编码的具体含义都可以在 https://epsg.io/ 这个网站上查到。

WKT,是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。

几何对象/WKT

WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。可以通过几何集合的方式来表示不同维度的几何对象。
几何物体的坐标可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一个属于线性参照系统的m值。
以下为几何WKT字串样例:
POINT(6 10)
LINESTRING(3 4,10 50,20 25)
POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))
MULTIPOINT(3.5 5.6, 4.8 10.5)
MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3)))
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
POINT EMPTY
MULTIPOLYGON EMPTY

空间参照系统/WKT

一个表示空间参照系统的WKT字串描述了空间物体的测地基准、大地水准面、坐标系统及地图投影。
WKT在许多GIS程序中被广泛采用。ESRI亦在其shape文件格式(*.prj)中使用WKT。
以下是空间参照系统的WKT表示样例:
COMPD_CS[“OSGB36 / British National Grid + ODN”,
PROJCS[“OSGB 1936 / British National Grid”,
GEOGCS[“OSGB 1936”,
DATUM[“OSGB_1936”,
spheroid[“Airy 1830”,6377563.396,299.3249646,AUTHORITY[“EPSG”,“7001”]],
TOWGS84[375,-111,431,0,0,0,0],
AUTHORITY[“EPSG”,“6277”]],
PRIMEM[“Greenwich”,0,AUTHORITY[“EPSG”,“8901”]],
UNIT[“DMSH”,0.0174532925199433,AUTHORITY[“EPSG”,“9108”]],
AXIS[“Lat”,NORTH],
AXIS[“Long”,EAST],
AUTHORITY[“EPSG”,“4277”]],
PROJECTION[“Transverse_Mercator”],
PARAMETER[“latitude_of_origin”,49],
PARAMETER[“central_meridian”,-2],
PARAMETER[“scale_factor”,0.999601272],
PARAMETER[“false_easting”,400000],
PARAMETER[“false_northing”,-100000],
UNIT[“metre”,1,AUTHORITY[“EPSG”,“9001”]],
AXIS[“E”,EAST],
AXIS[“N”,NORTH],
AUTHORITY[“EPSG”,“27700”]],
VERT_CS[“Newlyn”,
VERT_DATUM[“Ordnance Datum Newlyn”,2005,AUTHORITY[“EPSG”,“5101”]],
UNIT[“metre”,1,AUTHORITY[“EPSG”,“9001”]],
AXIS[“Up”,UP],
AUTHORITY[“EPSG”,“5701”]],
AUTHORITY[“EPSG”,“7405”]]

空间引用标识符 (SRID)

每个空间实例都有一个空间引用标识符 (SRID)。SRID 对应于基于特定椭圆体的空间引用系统,可用于平面球体映射或圆球映射。空间列可包含具有不同 SRID 的对象。然而,在使用 SQL Server 空间数据方法对数据执行操作时,仅可使用具有相同 SRID 的空间实例。从两个空间数据实例派生的任何空间方法的结果仅在这两个实例具有相同的 SRID(该 SRID 基于相同的用于确定实例坐标的度量单位、数据和投影)时才有效。SRID 最常见的度量单位为米或平方米。
  如果两个空间实例的 SRID 不相同,则对这两个实例使用 geometry 或 geography 数据类型方法后的结果将返回 NULL。例如,若要以下谓词返回非 NULL 结果,两个 geometry 实例(geometry1 和 geometry2)必须具有相同的 SRID:
  geometry1.STIntersects(geometry2) = 1

注意:空间引用标识系统是由欧洲石油测绘组 (EPSG) 标准定义的,它是为绘图、测绘以及大地测量数据存储而开发的一组标准。该标准归石油天然气生产商 (ogp) 测绘和定位委员会所有。

几何图形实例默认 SRID 为零
  
  SQL Server 中 geometry 实例的默认 SRID 为 0。利用 geometry 空间数据,执行计算是不需要空间实例的指定 SRID 的;因此,实例可驻留在未定义的平面空间。若要在 geometry 数据类型方法的计算中指明未定义的平面空间,SQL Server 数据库引擎 使用 SRID 0。

地域实例必须使用支持的 SRID

SQL Server 支持基于 EPSG 标准的 SRID。必须使用 geography 实例的支持 SQL Server 的 SRID 执行计算或将方法用于地域空间数据。SRID 必须与 sys.spatial_reference_systems 目录视图中显示的 SRID 中的一个匹配。如前所述,在使用 geography 数据类型对空间数据执行计算时,结果将取决于在创建数据时使用的是哪个椭圆体,因为为每个椭圆体都分配了一个特定空间引用标识符 (SRID)。

对 geography 实例使用方法时,SQL Server 使用等于 4326 的默认 SRID,它将映射到 WGS 84 空间引用系统。如果要使用 WGS 84(或 SRID 4326)之外的某个空间引用系统中的数据,您需要确定地域空间数据的特定 SRID。
  
Geography V.S. Geometry

Geography 和 Geometry 其实是Sq lServer 2008支持的两种空间数据类型Spatial。Geography指的是球面的数据,而Geometry指的是平面数据。类比一下,Geography的数据都是在地球仪上,Geometry的数据都是在平面地图上(比如Google Maps)。但就理解投影问题来看是通用的,并不局限于Sq lServer 2008。

前面在EPSG:4326投影问题的解释时已经提到过这两个数据在做查询时可能出现的问题,并有示意图。今天发现《Geometry and Geography in SQL Server 2008 Spatial Queries》提供的示意图更加清晰,就偷来一用。此外,还是有人在问,我自己的地图想叠在Google地图上怎么办?哥,真的没办法,除非把你的地图图片重新生成一遍。地理数据叠加,一定要投影一致,或者经过转换后一致,总之要一致,否则就没意义。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值