PIE-SDK For C++ Geometry的坐标转换
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的坐标转换的更多相关文章
- PIE SDK Geometry的坐标转换
1. 基于SpatialReference对象的坐标转换 1.1 示例简介 Geometry类是所有几何形体对象的父类,它是一个抽象类,IGeometry接口定义了所有的几何对象都有的方法和属性. 下 ...
- PIE SDK屏幕坐标和地图坐标转换
1. 功能简介 屏幕坐标和地图坐标转换,就是字面意思,将电脑屏幕的坐标转换为带有空间信息的地图坐标,主要运用PIE SDK地图控件的ToMapPoint()方法,而地图坐标转换为设备坐标(屏幕),用的 ...
- PIE SDK坐标转换算法
1.算法功能简介 数据坐标转换是空间实体位置的位置描述,是从一种坐标系统变换到另一坐标系统的过程.通过建立两个坐标系之间一一对应关系来实现.是各种比例尺地图测量和编绘中建立地图数学基础必不可少的步骤. ...
- 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 ...
- PIE SDK与GeoServer结合说明文档
1. GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...
- PIE SDK Command&&Tool工具命令一览表
PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...
- PIE SDK Command、Tool、Control的调用和拓展
1.功能简介 在一个项目中,是通过小组成员共同开发的,难以避免的是当项目功能集成的时候会出现很多兼容性问题,开发讲究高内聚低耦合,利用Command.Tool和Control的使用,可以提升集成的效率 ...
- PIE SDK矢量自定义渲染
1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...
- PIE SDK元素的保存与打开
1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...
- PIE SDK点元素的绘制
1. 功能简介 在数据的处理中会用到点元素的绘制,目前PIE SDK支持IMarkerSymbol的点元素的绘制,MarkerSymbol对象是用于修饰点状对象的符号,它包括ArrowMarkerSy ...
随机推荐
- eclipse里新建work set,将项目分组放在不同文件夹
想必大家的Eclipse里也会有这么多得工程...... 每次工作使用到的项目肯定不会太多...... 每次从这么大数量的工程当中找到自己要使用的, 必须大规模的滚动滚动条......有点不和谐了. ...
- Nginx之美多商城前台部署
这里我们采用动静分离的方式来部署美多商城项目. 动态请求:采用uwsgi与Django进行通信处理动态业务. 静态请求:采用Ngins通过socket与uwsgi进行通信处理静态业务. 第一步:实现u ...
- windows10 CTCP
windows上除了普通tcp之外,有一个CTCP. 据说可以提升长延时情况下的吞吐量. win7可以方便的通过netsh int tcp set global congestionprovider= ...
- 文件图片上传目录 禁止执行php
apache配置上传目录禁止运行php的方法 导读: 禁止上传目录运行php等可执行文件可以从一定程度上增加网站的安全性, 禁止上传目录运行php的方法可以用.htaccess文件, 也可以直接在ap ...
- 意法半导体STM32MP157A MPU加持,米尔科技首款ST Linux开发板MYD-YA157C评测
ST公司去年推出了MPU系列芯片,MPU系列不同于以往产品,它既包含有ARM公司Cortex M 单片机核心,也包含有ARM公司Cortex A 应用处理器核心,以期将STM32单片机产品优势扩展到更 ...
- React之深入了解虚拟DOM
JS在手机中也可运行,React Native通过将虚拟DOM转换为底层的原生组件,即可在手机端运行,在浏览器运行时,只需要将虚拟DOM转换为真实DOM即可运行,虚拟DOM就是将真实DOM转换为JS对 ...
- C#设计模式学习笔记:(10)外观模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7772184.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲结构型设计模式的第五个模式--外 ...
- 05.JS函数
前言: 学习一门编程语言的基本步骤(01)了解背景知识(02)搭建开发环境(03)语法规范(04)常量和变量(05)数据类型(06)数据类型转换(07)运算符(08)逻辑结构(09)函数9.函数——f ...
- 使用jdbc将mysql数据库中的内容封装为指定对象的list集合
使用jdbc将mysql数据库中的内容封装为指定对象的list集合 public List<User> findAll() { private JdbcTemplate template ...
- python第三方库的安装pip的使用与换源(解决pip下载速度慢)
python和其他语言一样,也有大量的第三方库 在安装python时默认都会安装pip,安装了pip后 在cmd.exe下可以运行pip 安装库 pip install 库的名字 换源 因为PyPi地 ...