首页 > 编程语言 > 详细

PIE-SDK For C++屏幕坐标和地图坐标转换

时间:2020-02-26 14:28:07      阅读:85      评论:0      收藏:0      [点我收藏+]

1.功能简介

   屏幕坐标和地图坐标转换,就是字面意思,将电脑屏幕的坐标转换为带有空间信息的地图坐标,主要运用DisplayTransformationPtr中的ToMapPoint()方法,将屏幕坐标转换为地理坐标,而地图坐标转换为设备坐标(屏幕),用的是FromMapPoint()方法。

2.功能实现说明

2.1. 实现思路及原理说明

第一步

实例化point对象

第二步

调用ToMapPoint()FromMapPoint()方法对设备点坐标和地图坐标经进行转化

2.2. 核心接口与方法

接口/

方法

说明

 

SysDisplay::DisplayTransformationPtr

ToMapPoint

将屏幕坐标转换为地图坐标

FromMapPoint

从地图坐标转换为设备坐标

FromPagePoint

将页面点转换为设备点

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/02.地图操作/06.地图鼠标事件监听

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif

视频路径

百度云盘地址下/PIE视频教程/02.地图操作/05.屏幕和地图坐标转换.avi

示例代码

 1、以下代码为bool PIEMainWindow::eventFilter(QObject *obj, QEvent *ev)方法下的部分代码片段

else if (ev->type()==QEvent::MouseButtonPress)

        {    

            QMouseEvent *pMouseEvent = static_cast<QMouseEvent*>(ev);

            QPoint qPoint;

            qPoint.setX(pMouseEvent->x());

            qPoint.setY(pMouseEvent->y());

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

            point = m_pMapControl->GetActiveView()->GetDisplayTransformation()->ToMapPoint(qPoint);

            QString screenPoint = QString("屏幕坐标:%1,%2").arg(pMouseEvent->x()).arg(pMouseEvent->y());

            QString mapPoint= QString("地理坐标:%1,%2").arg(point->GetX()).arg(point->GetY());

            QString info = screenPoint + "\r\n" + mapPoint;

            QMessageBox::information(this, "屏幕坐标转换地图坐标", info, QMessageBox::Ok);

            //地图坐标转换屏幕坐标

            QPoint tempPoint=m_pMapControl->GetActiveView()->GetDisplayTransformation()->FromMapPoint(point);

            QString tempPointStr = QString("屏幕坐标:%1,%2").arg(tempPoint.x()).arg(tempPoint.y());

            info = mapPoint + "\r\n" + tempPointStr;

            QMessageBox::information(this, "地图坐标转换屏幕坐标", info, QMessageBox::Ok);

        }

2.4. 示例截图

技术分享图片

屏幕坐标转换地图坐标

技术分享图片

地图坐标转换为屏幕坐标

PIE-SDK For C++屏幕坐标和地图坐标转换

原文:https://www.cnblogs.com/PIESat/p/12366778.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!