1. 基于SpatialReference对象的坐标转换

1.1 示例简介

Geometry类是所有几何形体对象的父类,它是一个抽象类,IGeometry接口定义了所有的几何对象都有的方法和属性。

下面介绍基于Geometry对象的坐标转换的主要接口。

Transform方法

函数原型:

bool Transform(ISpatialReference spatialReference);

bool Transform(CoordinateTransformation coordTransform);

函数说明:

该方法用于几何体的投影转换,当参数为坐标转换对象时投影转换过程中会忽略原来的空间参考。

参数说明:

名称

说明

spatialReference

空间参考对象

coordTransform

坐标转换对象

返回值

投影转换成功时为true,否则为false

1.2 示例代码

项目路径

百度云盘地址下/PIE示例程序/SpatialReference. CoordinateTransform

视频路径

百度云盘地址下/PIE视频教程/ Geometry的坐标转换avi

示例代码

void PIEMainWindow::On_ActionCoordinateTransform_Triggered(bool checked)

{

); // Web墨卡托投影

SysGeometry::PointPtr m_Point = new SysGeometry::Point();

m_Point->SetSpatialReference(wgs);

m_Point->SetX(116.40);

m_Point->SetY(39.90);

SysGeometry::GeometryPtr geometryPtr = m_Point;

bool flag=geometryPtr->Transform(webMercator);

}

2. 基于CoordinateTransformation对象的坐标转换

2.1 示例简介

同一个地图上显示的地理数据的空间参考必须是一致的,因此需要实现空间坐标系的相互转换。CoordinateTransformation主要实现了获取源坐标系统和目标坐标系统、实现坐标转换的方法。

下面对基于CoordinateTransformation对象的坐标转换的方法进行介绍。

TransformEx方法

函数原型:

    bool TransformEx(int count, double* pX, double* pY, double* pZ=nullptr, int* pSuccess=nullptr);

函数说明:

该方法用于坐标系统的坐标转换。

参数说明:

名称

说明

count

要转换的个数

pX

X坐标

pY

Y坐标

pZ

Z坐标

pSuccess

转换结果数组

返回值

坐标转换是否成功,转换成功返回1,否则返回0

2.2 示例代码

示例代码

private void CoordinateTransformationTest()

{

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]]";

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 nom = SysGeometry::SpatialReferenceFactory::CreateSpatialReference(NOMINAL);

SysGeometry::SpatialReferencePtr wgs = SysGeometry::SpatialReferenceFactory::CreateSpatialReference(WG84);

SysGeometry::CoordinateTransformationPtr ptrCT = new SysGeometry::CoordinateTransformation(wgs,nom);

double* sourceX = new double[2];

sourceX[0] = 116.40; sourceX[1] = 121.47;

double* sourceY = new double[2];

sourceY[0] = 39.90; sourceY[1] = 31.23;

double* sourceZ = new double[2];

sourceZ[0] = 0; sourceZ[1] = 0;

bool flag= ptrCT->TransformEx(2, sourceX, sourceY, sourceZ);

}

PIE-SDK For C++ Geometry的坐标转换的更多相关文章

  1. PIE SDK Geometry的坐标转换

    1. 基于SpatialReference对象的坐标转换 1.1 示例简介 Geometry类是所有几何形体对象的父类,它是一个抽象类,IGeometry接口定义了所有的几何对象都有的方法和属性. 下 ...

  2. PIE SDK屏幕坐标和地图坐标转换

    1. 功能简介 屏幕坐标和地图坐标转换,就是字面意思,将电脑屏幕的坐标转换为带有空间信息的地图坐标,主要运用PIE SDK地图控件的ToMapPoint()方法,而地图坐标转换为设备坐标(屏幕),用的 ...

  3. PIE SDK坐标转换算法

    1.算法功能简介 数据坐标转换是空间实体位置的位置描述,是从一种坐标系统变换到另一坐标系统的过程.通过建立两个坐标系之间一一对应关系来实现.是各种比例尺地图测量和编绘中建立地图数学基础必不可少的步骤. ...

  4. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  5. PIE SDK与GeoServer结合说明文档

    1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...

  6. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  7. PIE SDK Command、Tool、Control的调用和拓展

    1.功能简介 在一个项目中,是通过小组成员共同开发的,难以避免的是当项目功能集成的时候会出现很多兼容性问题,开发讲究高内聚低耦合,利用Command.Tool和Control的使用,可以提升集成的效率 ...

  8. PIE SDK矢量自定义渲染

    1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...

  9. PIE SDK元素的保存与打开

    1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...

  10. PIE SDK点元素的绘制

    1. 功能简介 在数据的处理中会用到点元素的绘制,目前PIE SDK支持IMarkerSymbol的点元素的绘制,MarkerSymbol对象是用于修饰点状对象的符号,它包括ArrowMarkerSy ...

随机推荐

  1. Go语言实现:【剑指offer】斐波那契数列

    该题目来源于牛客网<剑指offer>专题. 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0) n<=39 Go语言实现: 递归: ...

  2. 异步并发利器:实际项目中使用CompletionService提升系统性能的一次实践

    场景 随着互联网应用的深入,很多传统行业也都需要接入到互联网.我们公司也是这样,保险核心需要和很多保险中介对接,比如阿里.京东等等.这些公司对于接口服务的性能有些比较高的要求,传统的核心无法满足要求, ...

  3. 某cms审计思路,以及ci框架如何找寻注入点

    某cms审计思路,以及ci框架如何找寻注入点 ABOUT 之前闲着没事的时候审的某cms,之前看一群大表哥刷过一次这个cms,想着看看还能不能赶得上分一杯羹,还是审计出来些东西,来说一说一个前台注入吧 ...

  4. python如何删除二维或者三维数组/列表中某维的空元素

    如题,个人在使用python进行数据预处理过程中出现的问题,抽象成删除三维列表中某维为空的问题. 一.首先来看一下三维数组/列表的结构 仔细看下图就会很清楚了: 轴0即是去除第一个外括号后第一层(我把 ...

  5. Python3(五) 包、模块、函数与变量作用域

    一.Python项目的组织结构 最顶级的组织结构:包(文件夹) 第二个层级:模块(文件) 第三个层级:类 第四个层级:函数.变量(不属于组织结构,是类本身的特性) 二.Python包与模块的名字 1. ...

  6. qt creator源码全方面分析(2-10)

    目录 Creating Plugins Creating Plugins Qt Creator的核心是一个插件加载程序,加载并运行一组插件,实际上是这些插件提供了您从Qt Creator IDE中了解 ...

  7. drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族

    目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 系列化类其他配置(了解) 十大接口 BaseSer ...

  8. Flutter Widgets 之 InkWell 和 Ink

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 InkWell InkWell组件在用户点击时出现&quo ...

  9. mac 经常使用的快捷键操作

    ##### touch bar 作用1: 打开项目的一些快捷操作键. 作用2: 右侧的< 打开有一些以前的常规操作. ##### 手势 #####  mac自带的一些操作 cmd + opt + ...

  10. 07.JS对象-2

    前言: 学习一门编程语言的基本步骤(01)了解背景知识(02)搭建开发环境(03)语法规范(04)常量和变量(05)数据类型(06)数据类型转换(07)运算符(08)逻辑结构(09)函数(10)对象1 ...