1、坐标系创建
1.1 从WKT字符串导入空间参考
ISpatialReference接口是一个任何空间参考对象都实现的接口,它包含了所有空间参考对象都公有的方法和属性,如获得空间参考对象的Domain、Name、ExportToWkt等方法和属性等。下面对从WKT字符串导入空间参考的方法进行介绍。
ImportFromWkt方法
函数原型:
bool ImportFromWkt(String strWkT);
函数说明:
该方法用于从WKT字符串导入空间参考,参数为该WKT字符串。
参数说明:
名称 |
说明 |
strWkT |
目标WKT字符串 |
返回值 |
导入成功时为true,否则为false |
项目路径 |
百度云盘地址下/PIE示例程序/SpatialReference. SpatialReference |
视频路径 |
百度云盘地址下/PIE视频教程/坐标系创建、定义、对比avi |
示例代码 |
|
QString WG84Str = "GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]"; SysGeometry::GeographicCoordinateSystemPtr wgs84Sp = new SysGeometry::GeographicCoordinateSystem(); wgs84Sp->ImportFromWkt(WG84Str); |
1.2 从EPSG编码创建空间参考
SpatialReferenceFactory类是一个空间参考工厂。
下面对从EPSG编码创建空间参考的方法进行介绍。
CreateSpatialReference方法
函数原型:
ISpatialReference CreateSpatialReference ( int code );
函数说明:
从EPSG编码创建空间参考。
参数说明:
名称 |
说明 |
code |
EPSG编码 |
返回值 |
空间参考 |
示例代码 |
//从EPSG编码创建空间参考 SysGeometry::SpatialReferencePtr wgs84Sp = SysGeometry::SpatialReferenceFactory::CreateProjection((int)SysGeometry::GeoCSType_WGS1984); |
2、坐标系定义
Geometry类是所有几何形体对象的父类,定义了所有的几何对象都有的方法和属性。
SpatialReference属性
获取或设置空间参考。
示例代码 |
QString WG84 = "GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]"; SysGeometry::SpatialReferencePtr wgs = SysGeometry::SpatialReferenceFactory::CreateSpatialReference(WG84); SysGeometry::PointPtr ptr_Point = new SysGeometry::Point(); ptr_Point ->SetSpatialReference(wgs); ptr_Point ->SetX(116.40); ptr_Point ->SetY(39.90); |
3. 坐标系对比
3.1 地理坐标系
地理坐标系统,也可称为真实世界的坐标系,是确定地物在地球上位置的坐标系。
下面的代码为WGS84地理坐标系的WKT字符串。
示例代码 |
QString WG84 = "GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]"; |
3.2 投影坐标系
投影坐标系统是将三维地理坐标系统上的经纬网投影到二维平面地图上使用的坐标系统。
下面的代码为FY4A标称投影坐标系的WKT字符串。
示例代码 |
QString NOMINAL = "PROJCS["Geostationary_Satellite",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,298.2570248822731]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Geostationary_Satellite"],PARAMETER["central_meridian",104.7],PARAMETER["satellite_height",35785863],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]]"; |