可以添加多条测量线
This commit is contained in:
@@ -281,20 +281,20 @@ propertyui::propertyui(QWidget *parent) :
|
||||
|
||||
void propertyui::closeMissionDialog(bool flag)
|
||||
{
|
||||
if(flag == true)
|
||||
{
|
||||
if(table)
|
||||
{
|
||||
table->hide();
|
||||
}
|
||||
// if(flag == true)
|
||||
// {
|
||||
// if(table)
|
||||
// {
|
||||
// table->hide();
|
||||
// }
|
||||
|
||||
if(ruler)
|
||||
{
|
||||
emit exitRuler();
|
||||
ruler->deleteLater();
|
||||
ruler = nullptr;
|
||||
}
|
||||
}
|
||||
// if(ruler)
|
||||
// {
|
||||
// emit exitRuler();
|
||||
// ruler->deleteLater();
|
||||
// ruler = nullptr;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
void propertyui::clearLayout(QLayout *layout)
|
||||
@@ -1121,10 +1121,10 @@ propertyui::~propertyui()
|
||||
table->deleteLater();
|
||||
}
|
||||
|
||||
if(ruler)
|
||||
{
|
||||
ruler->deleteLater();
|
||||
}
|
||||
// if(ruler)
|
||||
// {
|
||||
// ruler->deleteLater();
|
||||
// }
|
||||
|
||||
|
||||
delete ui;
|
||||
@@ -2308,6 +2308,7 @@ void propertyui::measureState(bool flag)
|
||||
|
||||
void propertyui::on_pushButton_Ruler_clicked()
|
||||
{
|
||||
/*
|
||||
if(ruler)
|
||||
{
|
||||
ruler->deleteLater();
|
||||
@@ -2340,7 +2341,7 @@ void propertyui::on_pushButton_Ruler_clicked()
|
||||
}
|
||||
|
||||
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
void propertyui::on_pushButton_Table_clicked()
|
||||
|
||||
@@ -422,7 +422,7 @@ private:
|
||||
Ui::propertyui *ui;
|
||||
|
||||
MissionUI *table = nullptr;
|
||||
RuleDialog *ruler = nullptr;
|
||||
// RuleDialog *ruler = nullptr;
|
||||
|
||||
|
||||
QByteArray allBytes;
|
||||
|
||||
@@ -166,13 +166,13 @@ OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView
|
||||
point_end.SetLat(1);
|
||||
point_end.SetLng(1);
|
||||
|
||||
measureline = new MeasureLine(point_begin, point_end, map, QColor("#FFFF00"));
|
||||
mscene.addItem(measureline);
|
||||
measureline->hide();
|
||||
// measureline = new MeasureLine(point_begin, point_end, map, QColor("#FFFF00"));
|
||||
// mscene.addItem(measureline);
|
||||
// measureline->hide();
|
||||
|
||||
|
||||
connect(measureline,SIGNAL(Lineinfo(qreal,qreal)),
|
||||
this,SIGNAL(Lineinfo(qreal,qreal)));
|
||||
// connect(measureline,SIGNAL(Lineinfo(qreal,qreal)),
|
||||
// this,SIGNAL(Lineinfo(qreal,qreal)));
|
||||
|
||||
|
||||
|
||||
@@ -219,6 +219,16 @@ void OPMapWidget::dropEvent(QDropEvent *event)
|
||||
}
|
||||
}
|
||||
|
||||
void OPMapWidget::cleanMeasureLineList()
|
||||
{
|
||||
for(int i = 0; i < measureline_list.size(); ++i)
|
||||
{
|
||||
measureline_list[i]->deleteLater();
|
||||
}
|
||||
|
||||
measureline_list.clear();
|
||||
}
|
||||
|
||||
void OPMapWidget::cancelSaveMap()
|
||||
{
|
||||
if(!mapGrades.empty() )
|
||||
@@ -262,12 +272,13 @@ void OPMapWidget::ruler_clicked(void)
|
||||
if(isMeasure)
|
||||
{
|
||||
isMeasure = false;
|
||||
cleanMeasureLineList(); //清除测量线
|
||||
//this->setCursor(Qt::ArrowCursor);
|
||||
if(measureline)
|
||||
{
|
||||
measureline->hide();
|
||||
// if(measureline)
|
||||
// {
|
||||
// measureline->hide();
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
if(map)
|
||||
{
|
||||
@@ -287,10 +298,10 @@ void OPMapWidget::ruler_clicked(void)
|
||||
isMeasure = true;
|
||||
measurenumber = 1;//开始记录
|
||||
|
||||
if(measureline)
|
||||
{
|
||||
measureline->show();
|
||||
}
|
||||
// if(measureline)
|
||||
// {
|
||||
// measureline->show();
|
||||
// }
|
||||
|
||||
if(map)
|
||||
{
|
||||
@@ -409,6 +420,30 @@ void OPMapWidget::NOPTimeout()
|
||||
}
|
||||
}
|
||||
|
||||
void OPMapWidget::keyReleaseEvent(QKeyEvent *event)
|
||||
{
|
||||
if(event->key() == Qt::Key_Control)
|
||||
{
|
||||
is_press_ctrl = false;
|
||||
}
|
||||
}
|
||||
|
||||
void OPMapWidget::keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
if(event->key() == Qt::Key_Control)
|
||||
{
|
||||
is_press_ctrl = true;
|
||||
}
|
||||
|
||||
if(event->key() == Qt::Key_M)
|
||||
{
|
||||
if(is_press_ctrl)
|
||||
{
|
||||
ruler_clicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void OPMapWidget::SetCurrentPosition()
|
||||
{
|
||||
@@ -668,6 +703,8 @@ OPMapWidget::~OPMapWidget()
|
||||
rippers[i]->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
cleanMeasureLineList(); //清除测量线
|
||||
}
|
||||
void OPMapWidget::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
@@ -737,12 +774,13 @@ void OPMapWidget::mouseMoveEvent(QMouseEvent *event)
|
||||
|
||||
emit mousePosition(point_end.Lat(),point_end.Lng());
|
||||
|
||||
if(measureline)
|
||||
if(measureline_list.size() )
|
||||
{
|
||||
if(measurenumber == 2)//取了第一个点后
|
||||
{
|
||||
emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
|
||||
measureline->setTo(point_end);
|
||||
// emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
|
||||
// measureline->setTo(point_end);
|
||||
measureline_list[measureline_list.size() - 1]->setTo(point_end);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -799,13 +837,16 @@ void OPMapWidget::mousePressEvent(QMouseEvent *event)
|
||||
point_begin = map->FromLocalToLatLng(p.x(), p.y());
|
||||
|
||||
|
||||
emit MeasurePosition(measurenumber,point_begin.Lat(),point_begin.Lng());
|
||||
// emit MeasurePosition(measurenumber,point_begin.Lat(),point_begin.Lng());
|
||||
measurenumber ++;
|
||||
|
||||
if(measureline)
|
||||
{
|
||||
measureline->setFrom(point_begin);
|
||||
}
|
||||
MeasureLine *_measureline = new MeasureLine(point_begin, point_end, map, QColor("#FFFF00"));
|
||||
measureline_list.push_back(_measureline);
|
||||
|
||||
// if(measureline)
|
||||
// {
|
||||
// measureline->setFrom(point_begin);
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -814,13 +855,14 @@ void OPMapWidget::mousePressEvent(QMouseEvent *event)
|
||||
point_end = map->FromLocalToLatLng(p.x(), p.y());
|
||||
|
||||
|
||||
emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
|
||||
// emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
|
||||
measurenumber = 1;
|
||||
measureline_list[measureline_list.size() - 1]->setTo(point_end);
|
||||
|
||||
if(measureline)
|
||||
{
|
||||
measureline->setTo(point_end);
|
||||
}
|
||||
// if(measureline)
|
||||
// {
|
||||
// measureline->setTo(point_end);
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -396,7 +396,7 @@ public:
|
||||
AltitudeItem *altitudeitem;
|
||||
|
||||
WayPointSetting *waypointsetting;
|
||||
|
||||
QList<MeasureLine*> measureline_list;
|
||||
MeasureLine *measureline = nullptr;
|
||||
|
||||
int currentGroup = 3;//编辑情况
|
||||
@@ -471,6 +471,7 @@ public:
|
||||
|
||||
|
||||
private:
|
||||
bool is_press_ctrl = false; //是否按下ctrl键
|
||||
//当前正在运行的地图缓存线程
|
||||
QList<MapRipper *> rippers;
|
||||
//当前正在运行的地图缓存线程
|
||||
@@ -538,6 +539,8 @@ private slots:
|
||||
void NOPTimeout();
|
||||
|
||||
protected:
|
||||
void keyReleaseEvent(QKeyEvent *event) override;
|
||||
void keyPressEvent(QKeyEvent *event) override;
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
void showEvent(QShowEvent *event);
|
||||
void closeEvent(QCloseEvent *event);
|
||||
@@ -739,6 +742,10 @@ signals:
|
||||
|
||||
|
||||
public slots:
|
||||
/**
|
||||
* @brief 清除测量线
|
||||
*/
|
||||
void cleanMeasureLineList();
|
||||
/**
|
||||
* @brief 取消缓存地图
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user