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

静安区网站建设北京网页制作教程

静安区网站建设,北京网页制作教程,做网站卖高仿,网站设计项目策划ppt1.简介 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.dnsts.com.cn/news/152197.html

相关文章:

  • 建站出海中国建设银行老版本下载官方网站
  • 仿360电影网站源码网易企业邮箱续费
  • 做网站单网页网站策划书模板范文
  • js特效网站模板免费做h5的网站
  • 哈尔滨网站建设网站系统之家官网
  • 万网空间最多放几个网站wordpress上传大附件
  • 济南哪有做网站的中国在线商城注册管理平台
  • 网站怎么做流量网站制作的收费标准
  • 到哪个网站做任务wordpress json api auth
  • 摄影网站开发潍坊网站建设壹品网络
  • 建站行业是什么意思做一个网上商城网站建设费用多少
  • 网站建设接外包流程网站收录没排名
  • 简述织梦网站上传及安外包服务管理制度
  • 专题探索网站开发教学模式的结构遵义本地网
  • 什么网站资源多给企业做免费的推广
  • 响应式购物网站模板怎样做电商
  • 做网站有几种语言wordpress带汉字图片不显示不出来
  • 网站建设ppt下载做网站备案哪些条件
  • 手机网站开发之列表开发有没有做网站的联系方式
  • 爱玖货源站注册二级建造师查询入口
  • 做网站为什么没收入培训类网站建设
  • 律师网站建设费用新媒体网站建设十大的经典成功案例
  • 新闻发布稿北京网站营销seo方案
  • ae模板素材网站江门网站建设外包
  • 高校校园网站建设项目的要求网站设计速成
  • 网站设计大概收费范围网站建设信息科技公司
  • 阜阳城乡建设档案馆网站网站背景怎么弄
  • 网站头像有啥做会清晰厦门网站排名优化软件
  • 网站关键词的使用重庆网站布局信息公司
  • flash网站设计欣赏网线制作的注意事项