坐标系
WKT - 空间参照系统
一个表示空间参照系统的WKT字串描述了空间物体的测地基准、大地水准面、坐标系统及地图投影。
基础知识:坐标参照系有三种最常见的子类:地心坐标系(geocentric cs、GEOCCS),地理坐标系(geographic cs、GEOGCS),和投影坐标系(projected cs、PROJCS)以及相互之间的关系,可以参考《坐标参照系》。
投影参数内容:Ellipsoid 、 Datum ;Projection,可以参考《地图投影为什么》。
-
地心坐标系(geocentric cs、GEOCCS)
地心坐标系是以地球质心为原点建立的空间直角坐标系,以x,y,z表示或者以椭球体的中心和此质心重合建立的大地坐标系,大地坐标系一般是用B,L,H表示的 -
地理坐标系(geographic cs、GEOGCS)
以椭球体为基础建立的坐标系,用经纬度度量坐标 单位:角度 -
投影坐标系(projected cs、PROJCS)
在特定椭球体基础之上经过地图投影建立的平面坐标系。
WKT表示方法
<coordinate system> = <horz cs> | <geocentric cs> | <vert cs> | <compd cs>
| <fitted cs> | <local cs>
<horz cs> = <geographic cs> | <projected cs>
<projected cs> = PROJCS["<name>", <geographic cs>, <projection>,
{<parameter>,}* <linear unit> {,<twin axes>}{,<authority>}]
<projection> = PROJECTION["<name>" {,<authority>}]
<geographic cs> = GEOGCS["<name>", <datum>, <prime meridian>, <angular
unit> {,<twin axes>} {,<authority>}]
<datum> = DATUM["<name>", <spheroid> {,<to wgs84>} {,<authority>}]
<spheroid> = SPHEROID["<name>", <semi-major axis>, <inverse flattening>
{,<authority>}]
<semi-major axis> = <number>
<inverse flattening> = <number>
<prime meridian> = PRIMEM["<name>", <longitude> {,<authority>}]
<longitude> = <number>
<angular unit> = <unit>
<linear unit> = <unit>
<unit> = UNIT["<name>", <conversion factor> {,<authority>}]
<conversion factor> = <number>
<geocentric cs> = GEOCCS["<name>", <datum>, <prime meridian>, <linear unit> {,<axis>,
<axis>, <axis>} {,<authority>}]
<authority> = AUTHORITY["<name>", "<code>"]
<vert cs> = VERT_CS["<name>", <vert datum>, <linear unit>, {<axis>,}
{,<authority>}]
<vert datum> = VERT_DATUM["<name>", <datum type> {,<authority>}]
<datum type> = <number>
<compd cs> = COMPD_CS["<name>", <head cs>, <tail cs> {,<authority>}]
<head cs> = <coordinate system>
<tail cs> = <coordinate system>
<twin axes> = <axis>, <axis>
<axis> = AXIS["<name>", NORTH | SOUTH | EAST | WEST | UP | DOWN | OTHER]
<to wgs84s> = TOWGS84[<seven param>]
<seven param> = <dx>, <dy>, <dz>, <ex>, <ey>, <ez>, <ppm>
<dx> = <number>
<dy> = <number>
<dz> = <number>
<ex> = <number>
<ey> = <number>
<ez> = <number>
<ppm> = <number>
<fitted cs> = FITTED_CS["<name>", <to base>, <base cs>]
<to base> = <math transform>
<base cs> = <coordinate system>
<local cs> = LOCAL_CS["<name>", <local datum>, <unit>, <axis>,
{,<axis>}* {,<authority>}]
<local datum> = LOCAL_DATUM["<name>", <datum type> {,<authority>}]
WKT主要关键字解析
AUTHORITY
这个关键字是可选的,表示外部权威的空间参考系统的编码AXIS
这个关键字主要指定空间参考系统的坐标轴方向,如果没有指定,就使用默认的,默认的指定方向如下:
地理坐标系统: AXIS[“Lo-”,EAST],AXIS[“Lat”,NORTH]
投影坐标系统: AXIS[“X”,EAST],AXIS[“Y”,NORTH]
地心坐标系统: AXIS[“X”,OTHER],AXIS[“Y”,EAST],AXIS[“Z”,NORTH]COMPD_CS
用于指定一个符合的参考系统,符合参考系统一般由两个坐标系统指定。例如一个3D坐标系统可以由一个水平坐标系统和一个垂直坐标系统复合而成。DATUM
用于指定一个水平基准面。GEOCCS
用于指定一个地心坐标系,是一个3D坐标系,X轴的正方向是从地球质心指向赤道和本初子午线的交点,Z轴指向北极方向,Y轴正方向是从地球质心到赤道与东经90度经线的交点。GEOGCS
用于指定基于经纬度的坐标系统。注意:并不是所有的地理坐标系统都用度来表示单位。LOCAL_CS
用于指定一个本地的坐标系统。一些坐标系统经常用于CAD系统中PARAMETER
投影转换的参数及其值。PRIMEM
用于指定经度度量的本初子午线。PROJCS
用于指定一个投影坐标系。PROJECTION
用于指定从地理坐标到投影坐标转换的参数。SPHEROID
定义一个椭球体,椭球体是地球表面的近似。Spheroid和ellipsoid是同义词。Spheroid一般用于WKT中;而ellipsoid在任何地方使用,都是椭球体的意思。TOWGS84
用于指示Bursa Wolf变换的七个参数。这七个参数可以近似的从一个基准面到WGS基准面的变换。Bursa Wolf变换只能用于空间直角坐标系之间的变换。UNIT
用于指定测量使用的单位。在地理坐标系下使用角度。在垂直坐标系下使用线性单位,如米等。VERT_DATUM
用于指定垂直基准面或者高程测量的方法。VERT_CS
用于指定一个垂直坐标系统。
坐标系resolution和scale计算
(1) 平面坐标系
Resolution,地面分辨率,类似Spatial Resolution(空间分辨率),我们这里主要关注用象元(pixel size)表示的形式:一个像素(pixel)代表的地面尺寸(米)。以天地图为例,Level为1时,图片大小为256*256(4个Tile),那么赤道空间分辨率为:赤道周长/512。其他纬度的空间分辨率则为 纬度圈长度/512,极端的北极则为0。Level为2时,赤道的空间分辨率为 赤道周长/1024,其他纬度为 纬度圈长度除以1024。很明显,Ground Resolution取决于两个参数,缩放级别Level和纬度latitude ,Level决定像素的多少,latitude决定地面距离的长短。
以LEVEL为1级的时候为前提,取屏幕分辨率为96DPI(像素/英寸)
地面分辨率:一像素代表地面的距离(米),单位为像素/米;
Resolution = 实际距离/屏幕上的像素个数 = 实际距离(米)/512 (像素)
比例尺:屏幕上的距离代表的地面的距离,无单位,仅为一个数值
Scale = 512(像素)/屏幕分辨率(像素/英寸) * 0.0254(米/英寸) /实际距离(米)
运算:天地图取屏幕分辨率为96(像素/英寸)
Resolution * Scale = 1/96 * 0.0254 = 0.0254 /96
Scale = 0.0254 / (96 * Resolution)
Scale = 1 : (96 * Resolution / 0.0254)
(2) 经纬度
经纬度跟平面的思路差不多,不过由于经纬度的表征距离的时候用的是度数,所以在换算的时候,需要把度数
换成米,其换算公司如下:
Scale = 1 : (96 * 2 * Math.PI * 6378137 * resolution / 360 / 0.0254);