OSGEarth getGeographicSRS(),getGeodeticSRS(),getGeocentricSRS() 的得到的坐标系的区别

本文深入探讨OSGEarth支持的三种坐标系统:地理坐标、投影坐标和地球中心直角坐标系,及其基准面概念。介绍了水平基准面与高程基准的区别,并详细解释了Proj4在坐标转换中的应用。

osgEarth supports three basic coordinate system types:
• Geographic - A whole-earth, ellipsoidal model. Coordinates are spherical angles in degrees (longitude and
latitude). Examples include WGS84 and NAD83. (Learn more)
• Projected - A local coordinate system takes a limited region of the earth and “projects” it into a 2D cartesion
(X,Y) plane. Examples include UTM, US State Plane, and Mercator. (Learn more.)
• ECEF - A whole earth, cartesian system. ECEF = Earth Centered Earth Fixed; it is a 3D cartesion system
(X,Y,Z) with the origin (0,0,0) at the earth’s center; the X-axis intersecting lat/long (0,0), the Y-axis intersecting
lat/long (0,-90), and the Z-axis intersecting the north pole. ECEF is the native system in which osgEarth renders
its graphics. (Learn more)
osg一共支持三种坐标系统,经纬度坐标(geographic)投影坐标系(Projected)和空间大地直角坐标系(ECEF)
基准面包括水平基准面和垂直基准面
Horizontal Datum
A datum is a reference point (or set of points) against which geospatial measurements are made. The same location on
earth can have different coordinates depending on which datum is in use. There are two classes of datum:
A horizontal datum measures positions on the earth. Since the earth is not a perfect sphere or even a perfect
ellipsoid, particular datums are usually designed to approximate the shape of the earth in a particular
region. Common datums include WGS84 and NAD83 in North America, and ETR89 in Europe.
所谓水平基准面就是对应的参考椭球的参数(定位和定向)一般会包含参心椭球和质心椭球,54和80的椭球定义就是参心椭球,WGS84和CGCS2000就是质心椭球,这里OSGearth应该默认的WGS84的
质心椭球。同时利用了Proj4 里面有大量的各种椭球参数
介绍:Proj4是一个免费的GIS工具,软件还称不上。它专注于地图投影的表达,以及转换。采用一种非常简单明了的投影表达--PROJ4,比其它的投影定义简单,但很明显。很容易就能看到各种地理坐标系和地图投影的参数,同时它强大的投影转换功能,也是非常吸引人的。许多的 GIS软件中也将其集成在内。Proj可以在 window的命令下有可运行的 EXE文件,其实它更主要的是一个库!可以用来编一些批处理。在 Linux下除了可以直接运行外,还可以作为库来进行更高功能的开发。
Vertical Datum
A vertical datum measures elevation. There are several classes of vertical datum; osgEarth supports geodetic (basedon an ellipsoid) and geoid (based on a sample set of elevation points around the planet).osgEarth has the following vertical datums built in:Geodetic - the default; osgEarth uses the Horizontal datum ellipsoid as a reference
• EGM84 geoid
• EGM96 geoid - commonly called MSL; used in DTED and KML
• EGM2008 geoid
By default, SRS’s in osgEarth use a geodetic vertical datum; i.e., altitude is measured as “height above ellipsoid
(HAE)”.
高程基准主要包含的是所谓的大地高(物体到椭球的法线距离)和正高(垂线到大地水准面的距离)geodetic代表大地高,geoid带表正高
由此在OSGEarth的spatialreference类中有三种方法getGeographicSRS(),getGeodeticSRS(),getGeocentricSRS() 首先从英文字面上区分,Geographic是地理坐标 Geodetic代表的是大地测量坐标  geocentric代表的是地心坐标 再结合源文件中给出的解释         /** Gets a reference to this SRS’s underlying geodetic SRS. This is the same as the
            geographic SRS [see getGeographicSRS()] but with a geodetic vertical datum (in
            which Z is expressed as height above the geodetic ellipsoid). /const SpatialReference getGeodeticSRS() const; 即是说这个getgeodetic()得到的参考系和getgeographic的到的参考系是一样的区别在于getgeodetic()得到的z是大地高,而getgeographic得到的高是规定的大地水准面对应的正高。从源文件spatitalReference.cpp中也可以看出getgeodetic()return _geodetic_srs.get();       getGeographicSRS()  return _geo_srs.get();  在定义中,osg::ref_ptr    _geo_srs;       osg::ref_ptr    _geodetic_srs;  // _geo_srs with a NULL vdatum.说明geodetic没有定义的垂直参考面,会直接使用oe默认的大地高参考系。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值