Merge pull request 'RFPC-dev:发布最新版本' (#14) from RFPC-dev into Release

Reviewed-on: http://123.153.4.249:22779/LAMPSARToolSoftware/RasterProcessTool/pulls/14
Release
chenzenghui 2025-04-29 11:52:50 +08:00
commit ab654ed02b
20 changed files with 1460 additions and 1380 deletions

View File

@ -20,16 +20,6 @@
namespace LAMPMainWidget {
QString
RasterMainWidget::tutorialUrl() {
return QString{R"(https://gitee.com/qizr_admin/LAMPMainWidget)"};
}
QString
RasterMainWidget::srcUrl() {
return QString{R"(https://gitee.com/qizr_admin/LAMPMainWidget)"};
}
QHash<QString, MapLayer*>RasterMainWidget::mMaps{};
RasterMainWidget::RasterMainWidget(QWidget* parent)
@ -55,12 +45,24 @@ RasterMainWidget::RasterMainWidget(QWidget *parent)
setupActions();
setRightToolbox();
//mUi->panAction->trigger();
//mUi->layerList->setCurrentItem(mLayerList.first());
mUi->panAction->trigger();
mUi->layerList->setCurrentItem(mLayerList.first());
this->show();// 强制显示窗口
// 绑定消息显示
RasterMessageShow::RasterWidgetMessageShow* messageshow = RasterMessageShow::RasterWidgetMessageShow::getInstance(this);
messageshow->bandingTextBrowserMessage(this->mUi->textBrowserMessage);
connect(mUi->actioncloseAllRasterFile, SIGNAL(triggered()), this, SLOT(onactioncloseAllRasterFile_triggered()));
this->mUi->toolBar->hide();
this->mUi->dockWidget_Map->hide();
this->mUi->dockWidget->hide();
this->mUi->statusbar->hide();
this->mUi->dockWidget_2->hide();
this->mUi->dockWidget_3->hide();
}
RasterMainWidget::~RasterMainWidget() {
@ -93,8 +95,7 @@ RasterMainWidget::setupActions() {
QObject::connect(mUi->panAction, &QAction::triggered, this, &RasterMainWidget::panHandle);
QObject::connect(mUi->zoomInAction, &QAction::triggered, this, &RasterMainWidget::zoomInHandle);
QObject::connect(mUi->zoomOutAction, &QAction::triggered, this, &RasterMainWidget::zoomOutHandle);
QObject::connect(mUi->tutorialAction, &QAction::triggered, this, &RasterMainWidget::tutorialHanle);
QObject::connect(mUi->srcAction, &QAction::triggered, this, &RasterMainWidget::srcHandle);
QObject::connect(mUi->refreshAction, &QAction::triggered, this, &RasterMainWidget::refreshHandle);
QObject::connect(mUi->sponsorAction, &QAction::triggered, this, &RasterMainWidget::sponsorHandle);
QObject::connect(mUi->selectAction, &QAction::triggered, this, &RasterMainWidget::selectHandle);
@ -113,12 +114,6 @@ void RasterMainWidget::setupWindow() {
QObject::connect(mUi->layerList, &QListWidget::currentItemChanged, this, &RasterMainWidget::layerChanged);
QObject::connect(mUi->leftTopBtn, &QPushButton::clicked, this, &RasterMainWidget::leftTopClickedHandle);
QObject::connect(mUi->rightBottomBtn, &QPushButton::clicked, this, &RasterMainWidget::rightBottomClickedHandle);
RasterMessageShow::RasterWidgetMessageShow* messageshow = RasterMessageShow::RasterWidgetMessageShow::getInstance(this);
messageshow->bandingTextBrowserMessage(this->mUi->textBrowserMessage);
}
void RasterMainWidget::setupStatusBar() {
@ -164,7 +159,7 @@ void RasterMainWidget::setupLayers() {
void
RasterMainWidget::initMaps() {
if (mMaps.isEmpty()) {
if (false&&mMaps.isEmpty()) {
mMaps = QHash<QString, MapLayer*>{
{"Openstreet地图", new TmsLayer(OSTNormalMap, "ostnormalmap", mMapConvas)},
{"高德地图", new TmsLayer(GaodeNormapMap, "gaodenormalmap", mMapConvas)}
@ -222,19 +217,7 @@ void RasterMainWidget::drawlineHandle(bool checked)
mMapConvas->selectTool("drawline_tool");
}
void
RasterMainWidget::tutorialHanle(bool checked) {
if (!QDesktopServices::openUrl(tutorialUrl())) {
QMessageBox::critical(dynamic_cast<QWidget *>(this), "异常", "未能打开系统浏览器");
}
}
void
RasterMainWidget::srcHandle(bool checked) {
if (!QDesktopServices::openUrl(srcUrl())) {
QMessageBox::critical(dynamic_cast<QWidget *>(this), "异常", "未能打开系统浏览器");
}
}
void
RasterMainWidget::sponsorHandle(bool checked) {
@ -270,7 +253,8 @@ RasterMainWidget::clickedHandle(LAMPMainWidget::PointXY pos) {
if (mSetLeftTop) {
mUi->leftTopText->setText(posText);
mLeftTop = pos;
} else {
}
else {
mUi->rightBottomText->setText(posText);
mRightBottom = pos;
}

View File

@ -52,8 +52,7 @@ namespace LAMPMainWidget {
void zoomInHandle(bool checked);
void zoomOutHandle(bool checked);
void drawlineHandle(bool checked);
void tutorialHanle(bool checked);
void srcHandle(bool checked);
void sponsorHandle(bool checked);
void refreshHandle(bool checked);
void selectHandle(bool checked);
@ -70,10 +69,6 @@ namespace LAMPMainWidget {
private:
QWidget* spacerWiget(int width) const;
protected:
static QString tutorialUrl();
static QString srcUrl();
private slots:
void on_drawArea_triggered();
void on_addPlaneaction_triggered();

View File

@ -12,8 +12,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>906</width>
<height>609</height>
<width>898</width>
<height>580</height>
</rect>
</property>
<property name="sizePolicy">
@ -84,7 +84,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>906</width>
<width>898</width>
<height>22</height>
</rect>
</property>
@ -117,14 +117,11 @@
<property name="title">
<string>工具</string>
</property>
<addaction name="actioncloseAllRasterFile"/>
</widget>
<widget class="QMenu" name="helpMenu">
<property name="title">
<string>帮助</string>
</property>
<addaction name="tutorialAction"/>
<addaction name="srcAction"/>
<addaction name="separator"/>
</widget>
<addaction name="projectMenu"/>
@ -137,6 +134,9 @@
</widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QToolBar" name="toolBar">
<property name="enabled">
<bool>false</bool>
</property>
<property name="windowTitle">
<string>toolBar</string>
</property>
@ -378,6 +378,85 @@ p, li { white-space: pre-wrap; }
</layout>
</widget>
</widget>
<widget class="QDockWidget" name="dockWidget_Map">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="windowTitle">
<string>地图窗口</string>
</property>
<attribute name="dockWidgetArea">
<number>1</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents_5">
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>502</width>
<height>274</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="mapTab">
<attribute name="title">
<string>地图</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QGridLayout" name="mapCanvasLayout"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="taskTab">
<attribute name="title">
<string>任务</string>
</attribute>
<widget class="QWidget" name="gridLayoutWidget_5">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1431</width>
<height>871</height>
</rect>
</property>
<layout class="QGridLayout" name="taskLayout">
<item row="0" column="0">
<widget class="QTableWidget" name="taskTable"/>
</item>
</layout>
</widget>
</widget>
</widget>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>906</width>
<height>23</height>
</rect>
</property>
<widget class="QMenu" name="toolsMenu">
<property name="title">
<string>工具</string>
</property>
<addaction name="actioncloseAllRasterFile"/>
</widget>
<addaction name="toolsMenu"/>
</widget>
<action name="tutorialAction">
<property name="text">
<string>使用教程</string>

View File

@ -11,6 +11,7 @@ GaodeNormalProvider::GaodeNormalProvider(QObject *parent)
QString
GaodeNormalProvider::tileUrl(const LAMPMainWidget::PointXY& pos, int zoom) const {
QString urlFmt = { R"(http://wprd01.is.autonavi.com/appmaptile?style=6&x=%1&y=%2&z=%3)" };
return QString(urlFmt).arg(pos.x()).arg(pos.y()).arg(zoom);
}

View File

@ -36,6 +36,7 @@ MapCanvas::MapCanvas(QWidget *parent)
mMapUpdateTimer(nullptr),
mCurrentTool(nullptr),
mMapTools() {
setAutoFillBackground(true);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@ -158,7 +159,9 @@ MapCanvas::updateViewExtent(bool reset) {
QPointF mapCenter{ crsCenter.x() / resolution(), crsCenter.y() / resolution() };
QPointF offset = mapCenter - mViewExtent.center();
mViewExtent.translate(offset.x(), offset.y());
} else {
}
else {
qDebug() << "视图区域更新 平移范围 x ,y "<<-mDragRect.width()<<" , "<<-mDragRect.height() ;
/// 视图偏移并重置偏移属性
mViewExtent.translate(-mDragRect.width(), -mDragRect.height());
mDragRect.setRect(0, 0, 0, 0);
@ -225,9 +228,11 @@ MapCanvas::normalizeZoom(const int zoom) const {
int z{};
if (zoom <= kMinZoomValue) {
z = kMinZoomValue;
} else if (z >= kMaxZoomValue) {
}
else if (z >= kMaxZoomValue) {
z = kMaxZoomValue;
} else {
}
else {
z = zoom;
}

View File

@ -183,6 +183,7 @@ class MapCanvas : public QGraphicsView {
static const int kMinZoomValue{ 1 };
protected:
// 设置默认地图中心点
static PointXY defaultMapCenter();
};

View File

@ -53,8 +53,7 @@ namespace LAMPMainWidget
double progress = static_cast<double>(completed) / count;
auto progessStr = QString("%1").arg(progress * 100);
mTaskInfo.display->takeItem(mRowId, 4);
mTaskInfo.display->setItem(mRowId, 4,
new QTableWidgetItem(QString("%1").arg(progress * 100)));
mTaskInfo.display->setItem(mRowId, 4,new QTableWidgetItem(QString("%1").arg(progress * 100)));
// mTaskInfo.display->resizeColumnsToContents();
// mTaskInfo.display->horizontalHeader()->setStretchLastSection(true);
}

View File

@ -52,9 +52,11 @@ TmsLayer::setZoomValue(int zoom) {
int zoomValue{};
if (zoom <= minZoom()) {
zoomValue = minZoom();
} else if (zoom >= maxZoom()) {
}
else if (zoom >= maxZoom()) {
zoomValue = maxZoom();
} else {
}
else {
zoomValue = zoom;
}
@ -63,6 +65,7 @@ TmsLayer::setZoomValue(int zoom) {
bool
TmsLayer::parseTiles(const QRectF& rect, int zoom, QHash<QPoint, QString>& tiles, QSize& size) const {
auto pd = dynamic_cast<const TmsProvider*>(&provider());
auto tileSize = pd->tileSize();
auto resolution = mCrs->extent().width() / ((power2(zoom)) * tileSize.width());

View File

@ -14,7 +14,8 @@ TmsProviderFactory::create(LAMPMainWidget::TmsProviders provider) {
case OSTNormalMap:
if (mProviders.contains(OSTNormalMap)) {
result = mProviders.value(OSTNormalMap);
} else {
}
else {
result = new OSTNormalProvider();
mProviders.insert(OSTNormalMap, result);
}
@ -22,7 +23,8 @@ TmsProviderFactory::create(LAMPMainWidget::TmsProviders provider) {
case GaodeNormapMap:
if (mProviders.contains(GaodeNormapMap)) {
result = mProviders.value(GaodeNormapMap);
} else {
}
else {
result = new GaodeNormalProvider();
mProviders.insert(GaodeNormapMap, result);
}

View File

@ -106,6 +106,7 @@
<IncludePath>.;.\RasterMainWidget;..\RasterProcessToolWidget;..\RasterProcessToolWidget\ToolBoxManager;..\BaseCommonLibrary;..\BaseCommonLibrary\BaseTool;..\BaseCommonLibrary\ToolAbstract;..\GPUBaseLib\GPUTool;..\GPUBaseLib;..\RasterMainWidgetGUI;..\RasterMainWidgetGUI\RasterMainWidget;$(IncludePath)</IncludePath>
<CopyLocalProjectReference>true</CopyLocalProjectReference>
<CopyCppRuntimeToOutputDir>true</CopyCppRuntimeToOutputDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<IncludePath>.;.\RasterMainWidget;..\RasterProcessToolWidget;..\RasterProcessToolWidget\ToolBoxManager;..\BaseCommonLibrary;..\BaseCommonLibrary\BaseTool;..\BaseCommonLibrary\ToolAbstract;..\GPUBaseLib\GPUTool;..\GPUBaseLib;..\RasterMainWidgetGUI;..\RasterMainWidgetGUI\RasterMainWidget;$(IncludePath)</IncludePath>
@ -115,6 +116,10 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING;RASTERMAINWIDGETGUI_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<OpenMPSupport>true</OpenMPSupport>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<WholeProgramOptimization>false</WholeProgramOptimization>
<Optimization>Disabled</Optimization>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">

View File

@ -21,6 +21,9 @@
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts</Extensions>
</Filter>
<Filter Include="RasterLayer">
<UniqueIdentifier>{1a65f538-c16c-4824-895f-105eb2fc502e}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<QtRcc Include="RasterMainWidgetGUI.qrc">

View File

@ -7,6 +7,7 @@ namespace RasterMessageShow {
RasterWidgetMessageShow::RasterWidgetMessageShow(QObject* parant):QObject(parant)
{
this->textBrowserMessage = nullptr;
QObject::connect(this, SIGNAL(ShowMessage(QString)), this, SLOT(ShowMessageInfo(QString)));
}
@ -26,12 +27,12 @@ namespace RasterMessageShow {
void RasterWidgetMessageShow::ShowMessageInfo(QString Message)
{
std::cout << Message.toLocal8Bit().constData() << std::endl;
if (nullptr != this->textBrowserMessage) {
this->textBrowserMessage->append(Message);
this->textBrowserMessage->moveCursor(QTextCursor::MoveOperation::End);
this->textBrowserMessage->repaint();
std::cout << Message.toLocal8Bit().constData() << std::endl;
}
else {}
}

View File

@ -1,6 +1,8 @@
#include "LAMPMainWidgetRunProgram.h"
#include <QtWidgets/QApplication>
// 这个项目是基于easygis项目原项目地址 https://gitee.com/stormeye2020/easygis.git
int main(int argc, char *argv[])
{
QApplication a(argc, argv);