当前位置: 首页 > news >正文

静安区网站建设邯郸做商城网站的公司

静安区网站建设,邯郸做商城网站的公司,秦皇岛海港区,哪些网站做的好看1.简介 QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如#xff0c;地图平移和缩放功能被实现为地图工具。 QgsMapTool是抽象基类#xff0c;以下是类的继承关系#xff1a; 2.常用接口 virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e)重写鼠标…1.简介 QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如地图平移和缩放功能被实现为地图工具。 QgsMapTool是抽象基类以下是类的继承关系 2.常用接口 virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e)重写鼠标双击事件virtual void canvasMoveEvent (QgsMapMouseEvent *e)重写鼠标移动事件virtual void canvasPressEvent (QgsMapMouseEvent *e)重写鼠标按下事件virtual void canvasReleaseEvent (QgsMapMouseEvent *e)重写鼠标抬起事件virtual void setCursor (const QCursor cursor)设置光标QgsPointXY toMapCoordinates (QPoint point)将点从屏幕坐标转换为地图坐标。 3.示例  示例1画布移动、放大、缩小 源码 #pragma once#include QtWidgets/QMainWindow #include ui_GisCtrl.h #include QDebug #include QFileInfo #include qgsmaptoolpan.h #include qgsrasterlayer.h #include qgsmapcanvas.h #include qgspoint.h #include QMouseEvent #include qgsmaptoolzoom.h #include QActionGroupclass GisCtrl : public QMainWindow {Q_OBJECTpublic:GisCtrl(QWidget *parent Q_NULLPTR);private:Ui::GisCtrlClass ui;private slots:void slotXyCoordinates(const QgsPointXY p);void slotMove();void slotZoomIn();void slotZoomOut();private:QgsMapCanvas *m_mapCanvas nullptr;QListQgsMapLayer * m_layers;QgsMapToolPan *m_toolPan nullptr; // 新建移动工具QgsMapToolZoom *m_toolZoomIn nullptr;//放大QgsMapToolZoom *m_toolZoomOut nullptr;//缩小QActionGroup *m_actionGroup nullptr; };#include GisCtrl.h #include qgsrasterlayer.h #include qgsrubberband.h #pragma execution_character_set(utf-8)GisCtrl::GisCtrl(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);//创建画布m_mapCanvas new QgsMapCanvas(this);QString url F:/arcgis/TMS.xml;m_mapCanvas-setCanvasColor(QColor(255, 255, 255));//加载瓦片地图QgsRasterLayer *layer new QgsRasterLayer(url);if (!layer-isValid()){qDebug() load map faild;}m_layers.append(layer);// 新建移动工具m_toolPan new QgsMapToolPan(m_mapCanvas);m_mapCanvas-setExtent(layer-extent());m_mapCanvas-enableAntiAliasing(true);m_mapCanvas-setLayers(m_layers);m_mapCanvas-setMapTool(m_toolPan);m_toolZoomIn new QgsMapToolZoom(m_mapCanvas, false);m_toolZoomOut new QgsMapToolZoom(m_mapCanvas, true);m_actionGroup new QActionGroup(this);m_actionGroup-addAction(ui.actionMove);m_actionGroup-addAction(ui.actionZoomIn);m_actionGroup-addAction(ui.actionZoomOut);m_actionGroup-setExclusive(true);connect(m_mapCanvas, QgsMapCanvas::xyCoordinates, this, GisCtrl::slotXyCoordinates);connect(ui.actionMove, QAction::triggered, this, GisCtrl::slotMove);connect(ui.actionZoomIn, QAction::triggered, this, GisCtrl::slotZoomIn);connect(ui.actionZoomOut, QAction::triggered, this, GisCtrl::slotZoomOut);setCentralWidget(m_mapCanvas);ui.actionMove-setChecked(true);ui.actionLineManager-setVisible(false);ui.actionLayer-setVisible(false);ui.actionSelect-setVisible(false);ui.actionItem-setVisible(false); }void GisCtrl::slotXyCoordinates(const QgsPointXY p) {QString str QString(经度 %1纬度%2).arg(QString::number(p.x(), f, 6)).arg(QString::number(p.y(), f, 6));this-statusBar()-showMessage(str); }void GisCtrl::slotMove() {m_mapCanvas-setMapTool(m_toolPan); }void GisCtrl::slotZoomIn() {m_mapCanvas-setMapTool(m_toolZoomIn); }void GisCtrl::slotZoomOut() {m_mapCanvas-setMapTool(m_toolZoomOut); }示例2鼠标点击画矩形 源码 自定义一个地图交互工具继承QgsMapToolIdentify #pragma once #include QObject #include QList #include QScopedPointer #include qgsmapcanvas.h #include qgsmaptoolidentify.h #include qgsrubberband.h #include qgsmapmouseevent.hclass QgsMapToolSelectFeatures : public QgsMapToolIdentify {Q_OBJECT public:QgsMapToolSelectFeatures(QgsMapCanvas *mapCanvas);protected://重写鼠标移动void canvasMoveEvent(QgsMapMouseEvent *e) override;//重写鼠标按下void canvasPressEvent(QgsMapMouseEvent *e) override;void initRubberBand();private:// 是否正在选择bool mSelectionActive false;QScopedPointerQgsRubberBand mSelectionRubberBand;QColor mFillColor QColor(255, 255, 0, 63);QColor mStrokeColor QColor(255, 255, 0, 100);QPoint mInitDragPos; };//cpp #include QgsMapToolSelectFeatures.h #include QgsMapToolIdentify.hQgsMapToolSelectFeatures::QgsMapToolSelectFeatures(QgsMapCanvas *mapCanvas): QgsMapToolIdentify(mapCanvas) { }void QgsMapToolSelectFeatures::canvasMoveEvent(QgsMapMouseEvent * e) {if (e-buttons() ! Qt::LeftButton)return;QRect rect;if (!mSelectionActive){mSelectionActive true;rect QRect(e-pos(), e-pos());}else{rect QRect(e-pos(), mInitDragPos);}if (mSelectionRubberBand)mSelectionRubberBand-setToCanvasRectangle(rect); }void QgsMapToolSelectFeatures::canvasPressEvent(QgsMapMouseEvent * e) {if (!mSelectionRubberBand)initRubberBand();mInitDragPos e-pos(); }void QgsMapToolSelectFeatures::initRubberBand() {mSelectionRubberBand.reset(new QgsRubberBand(mCanvas, QgsWkbTypes::PolygonGeometry));mSelectionRubberBand-setFillColor(mFillColor);mSelectionRubberBand-setStrokeColor(mStrokeColor); } 使用 QgsMapToolSelectFeatures *m_tool new QgsMapToolSelectFeatures(m_mapCanvas); m_mapCanvas-setMapTool(m_tool);
http://www.hkea.cn/news/14508476/

相关文章:

  • 十里堡网站建设如何给网站弄ftp
  • 网站建设推广注意什么另类投资公司网站建设规定
  • 建设网站需要花费多少钱盐城专业网站建设哪家好
  • 三亚做网站的公司石家庄网站建设时光
  • 成都网站建设哪个好青岛app开发公司
  • 湖南张家界网站建设node做网站怎么知道蜘蛛来过
  • 网站开发的质量标准外贸企业招聘
  • 正规网站建设制作wordpress上传函数
  • 网站项目怎么做优化师是做什么的
  • 类似站酷的设计类网站ppt做书模板下载网站有哪些
  • 长春 网站建设哪个网站可以做视频片头
  • 网站建设伍金手指下拉7用服务器建立网站
  • 找做网站的公司好用的wordpress编辑器
  • ctoc的网站有哪些利用黑群晖做网站
  • 电商网站开发详细介绍镇江建设局网站
  • 食品网站建设策划书建站行业消失了吗
  • 海口自助建站丝路云网站建设
  • vue.js网站建设网页设计师资格证查询官网
  • 制作公司网站结构图如何在网站上做支付功能
  • 网站建设相关文章网站怎么上传ftp
  • 网站怎么收录网站海外推广多少钱
  • 免费网站app使用排名怀远县建设局门户网站
  • wordpress 顶部工具栏网络营销seo是什么
  • wordpress 恢复备份班级优化大师下载安装app
  • 作文库网站手工网站和自助建站式网站却别
  • 国外网站怎么做企业策划是什么意思
  • 深圳网站开发企业购物网站开发背景及目的
  • 网站后缀王也头像图片
  • 中山网站建设网站做网站地图邮什么好处
  • 网站关键字 怎么设置php 怎么做网站超链接