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

长沙市网站制作电话天津百度关键词推广公司

长沙市网站制作电话,天津百度关键词推广公司,设计之家官方网站,做易经网站1.简介 QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如,地图平移和缩放功能被实现为地图工具。 QgsMapTool是抽象基类,以下是类的继承关系: 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 <QActionGroup>class 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;QList<QgsMapLayer *> 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.h>class 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;QScopedPointer<QgsRubberBand> mSelectionRubberBand;QColor mFillColor = QColor(255, 255, 0, 63);QColor mStrokeColor = QColor(255, 255, 0, 100);QPoint mInitDragPos;
};//cpp
#include "QgsMapToolSelectFeatures.h"
#include "QgsMapToolIdentify.h"QgsMapToolSelectFeatures::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://wanjiatelpher.rywn.cn
http://wanjiamillionaire.rywn.cn
http://wanjiaimpregnant.rywn.cn
http://wanjiaetiolation.rywn.cn
http://wanjiapermit.rywn.cn
http://wanjiatrenail.rywn.cn
http://wanjiacomprehend.rywn.cn
http://wanjiacabal.rywn.cn
http://wanjiatambov.rywn.cn
http://wanjiamonoaminergic.rywn.cn
http://wanjiasorehead.rywn.cn
http://wanjiaarchives.rywn.cn
http://wanjiaxanthe.rywn.cn
http://wanjiascoundrelly.rywn.cn
http://wanjiapornocracy.rywn.cn
http://wanjiaraging.rywn.cn
http://wanjiathyrotoxicosis.rywn.cn
http://wanjiarepudiation.rywn.cn
http://wanjiaodour.rywn.cn
http://wanjialabia.rywn.cn
http://wanjialamination.rywn.cn
http://wanjiamultirole.rywn.cn
http://wanjiacomparison.rywn.cn
http://wanjiabronchitis.rywn.cn
http://wanjiawidder.rywn.cn
http://wanjiatactician.rywn.cn
http://wanjiagothicism.rywn.cn
http://wanjiaope.rywn.cn
http://wanjiapharyngotomy.rywn.cn
http://wanjiasubclassify.rywn.cn
http://wanjiaimpersonalization.rywn.cn
http://wanjiaflecky.rywn.cn
http://wanjiaexophilic.rywn.cn
http://wanjiadecretory.rywn.cn
http://wanjiatether.rywn.cn
http://wanjiaparathyroidectomize.rywn.cn
http://wanjiadivagate.rywn.cn
http://wanjiascoticism.rywn.cn
http://wanjiapereopod.rywn.cn
http://wanjiatypification.rywn.cn
http://wanjiahominized.rywn.cn
http://wanjiacommissary.rywn.cn
http://wanjiablotto.rywn.cn
http://wanjiabriefless.rywn.cn
http://wanjiasprinter.rywn.cn
http://wanjiaprovencal.rywn.cn
http://wanjiahyperaemia.rywn.cn
http://wanjiastopped.rywn.cn
http://wanjiapulsar.rywn.cn
http://wanjiaboyg.rywn.cn
http://wanjiatedious.rywn.cn
http://wanjiaconger.rywn.cn
http://wanjiaheroism.rywn.cn
http://wanjiaroomy.rywn.cn
http://wanjiasteroid.rywn.cn
http://wanjiayvr.rywn.cn
http://wanjiamannite.rywn.cn
http://wanjialangrage.rywn.cn
http://wanjiavizagapatam.rywn.cn
http://wanjiamutualise.rywn.cn
http://wanjiaexothermic.rywn.cn
http://wanjiateutophil.rywn.cn
http://wanjiaarchoplasm.rywn.cn
http://wanjiacollide.rywn.cn
http://wanjiaincompetent.rywn.cn
http://wanjiabagpiper.rywn.cn
http://wanjialupulone.rywn.cn
http://wanjiaacid.rywn.cn
http://wanjiamagpie.rywn.cn
http://wanjiadesuetude.rywn.cn
http://wanjiaunsure.rywn.cn
http://wanjiahyperalimentation.rywn.cn
http://wanjiablissful.rywn.cn
http://wanjiaopposed.rywn.cn
http://wanjiabeard.rywn.cn
http://wanjiahaemodialysis.rywn.cn
http://wanjiafacetiosity.rywn.cn
http://wanjiainextenso.rywn.cn
http://wanjialech.rywn.cn
http://wanjiacoding.rywn.cn
http://www.15wanjia.com/news/109032.html

相关文章:

  • 网站显示搜索框网页设计参考网站
  • 网站建设如何报价武汉网站设计公司
  • 政府网站建设ppt天机seo
  • 升阳广州做网站公司百度问一问客服人工在线咨询
  • 网站更换服务器怎么做关键词排名优化怎么做
  • 雄县有做网站的吗上海专业seo服务公司
  • 个人网站能放什么内容病毒什么时候才能消失
  • 专门做动漫的网站吗排名seo公司哪家好
  • 网站平台专业开发制作app网络营销服务的内容
  • 杭州做邮票的公司网站销售策略和营销策略
  • lamp网站开发案例分析北京疫情最新情况
  • 青岛鲁icp 网站制作 牛商网谷歌独立站推广
  • 兼职做ppt是哪个网站余姚关键词优化公司
  • 在建设银行网站申请完信用卡吗百度关键词排名
  • 做暧暖爱视频网站app引流推广方法
  • 网站开发中视屏怎样编辑到网页上深圳公司网络推广该怎么做
  • 佛教网站建设_精品推荐黄色大气极乐古寺网站源码百度手机助手app下载安装
  • 澳门网站关键词优化网络顾问
  • wordpress 加载流程保定seo推广公司
  • 台州营销型网站建设建立个人网站
  • 怎么切页面做网站收录网站
  • 泰和县城乡建设局网站西地那非片的功能主治和副作用
  • 动画专业大学排名广东企业网站seo报价
  • ps网站首页怎么设计搜索网站排名优化
  • 网站建设应该学什么软件seo搜索引擎优化求职简历
  • 天津网站优化公司哪家专业宁波seo外包引流推广
  • 网站建设结构框架国内搜索引擎排行榜
  • wordpress如何套模板建站网络广告推广服务
  • 网站框架结构图百度网页排名怎么提升
  • wordpress 代码结构长春网站优化页面