remove qtosgviewwidget

This commit is contained in:
jiegeaiai 2025-01-21 23:13:33 +08:00
parent 63fd5665f8
commit 7d8e072bfe
3 changed files with 5 additions and 245 deletions

View File

@ -1270,18 +1270,18 @@
<context> <context>
<name>QtOsgViewWidget</name> <name>QtOsgViewWidget</name>
<message> <message>
<location filename="../viewer/QtOsgViewWidget.cpp" line="369"/> <location filename="../viewer/QtOsgViewWidget.cpp" line="131"/>
<location filename="../viewer/QtOsgViewWidget.cpp" line="377"/> <location filename="../viewer/QtOsgViewWidget.cpp" line="139"/>
<source>warning</source> <source>warning</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../viewer/QtOsgViewWidget.cpp" line="369"/> <location filename="../viewer/QtOsgViewWidget.cpp" line="131"/>
<source>default workspace failed</source> <source>default workspace failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../viewer/QtOsgViewWidget.cpp" line="377"/> <location filename="../viewer/QtOsgViewWidget.cpp" line="139"/>
<source>open dyt file failed</source> <source>open dyt file failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -33,142 +33,6 @@
#include "ui/MainFrame.h" #include "ui/MainFrame.h"
double normalizeScaleMeters(double meters) {
if (meters <= 3) {
meters = 1;
} else if (meters <= 7.5) {
meters = 5;
} else if (meters <= 15) {
meters = 10;
} else if (meters <= 35) {
meters = 20;
} else if (meters <= 75) {
meters = 50;
} else if (meters <= 150) {
meters = 100;
} else if (meters <= 350) {
meters = 200;
} else if (meters <= 750) {
meters = 500;
} else if (meters <= 1500) {
meters = 1000;
} else if (meters <= 3500) {
meters = 2000;
} else if (meters <= 7500) {
meters = 5000;
} else if (meters <= 15000) {
meters = 10000;
} else if (meters <= 35000) {
meters = 20000;
} else if (meters <= 55000) {
meters = 50000;
} else if (meters <= 150000) {
meters = 100000;
} else if (meters <= 350000) {
meters = 200000;
} else if (meters <= 750000) {
meters = 500000;
} else if (meters <= 1500000) {
meters = 1000000;
} else {
meters = 2000000;
}
return meters;
}
double normalizeScaleFeet(double feet) {
double feetPerMile = 5280.0;
if (feet <= 7.5) {
feet = 5;
} else if (feet <= 15) {
feet = 10;
} else if (feet <= 35) {
feet = 20;
} else if (feet <= 75) {
feet = 50;
} else if (feet <= 150) {
feet = 100;
} else if (feet <= 350) {
feet = 200;
} else if (feet <= 750) {
feet = 500;
} else if (feet <= 1500) {
feet = 1000;
} else if (feet <= 3640) {
feet = 2000;
} else if (feet <= 1.5 * feetPerMile) {
feet = 1 * feetPerMile;
} else if (feet <= 3.5 * feetPerMile) {
feet = 2 * feetPerMile;
} else if (feet <= 7.5 * feetPerMile) {
feet = 5 * feetPerMile;
} else if (feet <= 15 * feetPerMile) {
feet = 10 * feetPerMile;
} else if (feet <= 35 * feetPerMile) {
feet = 20 * feetPerMile;
} else if (feet <= 75 * feetPerMile) {
feet = 50 * feetPerMile;
} else if (feet <= 150 * feetPerMile) {
feet = 100 * feetPerMile;
} else if (feet <= 350 * feetPerMile) {
feet = 200 * feetPerMile;
} else if (feet <= 750 * feetPerMile) {
feet = 500 * feetPerMile;
} else if (feet <= 1500 * feetPerMile) {
feet = 1000 * feetPerMile;
} else {
feet = 2000 * feetPerMile;
}
return feet;
}
double normalizeScaleNauticalMiles(double nmi) {
//double feetPerMile = 6076.12;
if (nmi <= 0.0015) {
nmi = 0.001;
} else if (nmi <= 0.0035) {
nmi = 0.002;
} else if (nmi <= 0.0075) {
nmi = 0.005;
} else if (nmi <= 0.015) {
nmi = 0.01;
} else if (nmi <= 0.035) {
nmi = 0.02;
} else if (nmi <= 0.075) {
nmi = 0.05;
} else if (nmi <= 0.15) {
nmi = 0.1;
} else if (nmi <= 0.35) {
nmi = 0.2;
} else if (nmi <= 0.75) {
nmi = 0.5;
} else if (nmi <= 1.5) {
nmi = 1;
} else if (nmi <= 3.5) {
nmi = 2;
} else if (nmi <= 7.5) {
nmi = 5;
} else if (nmi <= 15) {
nmi = 10;
} else if (nmi <= 35) {
nmi = 20;
} else if (nmi <= 75) {
nmi = 50;
} else if (nmi <= 150) {
nmi = 100;
} else if (nmi <= 350) {
nmi = 200;
} else if (nmi <= 750) {
nmi = 500;
} else if (nmi <= 1500) {
nmi = 1000;
} else {
nmi = 2000;
}
return nmi;
}
QtOsgViewWidget::QtOsgViewWidget(QWidget* parent) QtOsgViewWidget::QtOsgViewWidget(QWidget* parent)
: QWidget(parent) { : QWidget(parent) {
LOG_INFO("actor, self={}", fmt::ptr(this)); LOG_INFO("actor, self={}", fmt::ptr(this));
@ -196,108 +60,6 @@ void QtOsgViewWidget::keyReleaseEvent(QKeyEvent* event) {
view_->KeyRelease(event); view_->KeyRelease(event);
} }
void QtOsgViewWidget::OnComputeScale() {
osgEarth::MapNode* mapNode = activeScene_->GetMapNode();
if (nullptr == mapNode || nullptr == mapNode->getTerrain()) {
return;
}
dyt_check(nullptr != view_);
float x = 0.0f, y = 0.0f;
osg::Vec3d world1, world2;
if (!mapNode->getTerrain()->getWorldCoordsUnderMouse(view_->GetView(), x, y, world1)) {
emit signalScaleInfo("");
return;
}
x += devicePixelRatio_;
if (!mapNode->getTerrain()->getWorldCoordsUnderMouse(view_->GetView(), x, y, world2)) {
emit signalScaleInfo("");
return;
}
#if 0
TRACE("w1: %g %g %g w2: %g %g %g",
world1.x(), world1.y(), world1.z(),
world2.x(), world2.y(), world2.z());
#endif
double meters;
double radius = 6378137.0;
dyt_check(nullptr != g_srs_);
radius = g_srs_->getEllipsoid().getRadiusEquator();
if (!g_srs_->isGeocentric() ) {
// TRACE("Map is geographic");
// World cords are already lat/long
// Compute great circle distance
meters = osgEarth::GeoMath::distance(world1, world2, g_srs_);
} else {
osgEarth::GeoPoint mapPoint1, mapPoint2;
mapPoint1.fromWorld(g_srs_, world1);
mapPoint1.makeGeographic();
mapPoint2.fromWorld(g_srs_, world2);
mapPoint2.makeGeographic();
// Compute great circle distance
meters = osgEarth::GeoMath::distance(osg::DegreesToRadians(mapPoint1.y()),
osg::DegreesToRadians(mapPoint1.x()),
osg::DegreesToRadians(mapPoint2.y()),
osg::DegreesToRadians(mapPoint2.x()),
radius);
}
double scale = meters / devicePixelRatio_;
double pixelWidth = devicePixelRatio_ * 2.0;
// 1mi = 5280 feet
//double scaleMiles = scale / 1609.344; // International mile = 1609.344m
//double scaleNauticalMiles = scale / 1852.0; // nautical mile = 1852m
//double scaleUSSurveyMiles = scale / 1609.347218694; // US survey mile = 5280 US survey feet
//double scaleUSSurveyFeet = scale * 3937.0/1200.0; // US survey foot = 1200/3937 m
#if 0
TRACE("m: %g px: %g m/px: %g", meters, pixelWidth, scale);
#endif
switch (scaleUnits_) {
case ScaleBarHandler::Delegate::Units::UNITS_NAUTICAL_MILES: {
double nmi = meters / 1852.0;
scale = nmi / devicePixelRatio_;
nmi = normalizeScaleNauticalMiles(nmi);
pixelWidth = nmi / scale;
emit signalScaleInfo(QString("%1 nmi").arg(nmi));
} break;
case ScaleBarHandler::Delegate::Units::UNITS_US_SURVEY_FEET: {
double feet = meters * 3937.0 / 1200.0;
scale = feet / pixelWidth;
feet = normalizeScaleFeet(feet);
pixelWidth = feet / scale;
if (feet >= 5280) {
emit signalScaleInfo(QString("%1 miUS").arg(feet / 5280.0));
} else {
emit signalScaleInfo(QString("%1 ftUS").arg(feet));
}
} break;
case ScaleBarHandler::Delegate::Units::UNITS_INTL_FEET: {
double feet = 5280.0 * meters / 1609.344;
scale = feet / pixelWidth;
feet = normalizeScaleFeet(feet);
pixelWidth = feet / scale;
if (feet >= 5280) {
emit signalScaleInfo(QString("%1 mi").arg(feet / 5280.0));
} else {
emit signalScaleInfo(QString("%1 ft").arg(feet));
}
} break;
case ScaleBarHandler::Delegate::Units::UNITS_METERS:
default: {
meters = normalizeScaleMeters(meters);
pixelWidth = meters / scale;
if (meters >= 1000) {
emit signalScaleInfo(QString("%1 km").arg(meters * 0.001));
} else {
emit signalScaleInfo(QString("%1 m").arg(meters));
}
} break;
}
}
void QtOsgViewWidget::Initialize(void) { void QtOsgViewWidget::Initialize(void) {
if (view_) { if (view_) {
LOG_INFO("view is created"); LOG_INFO("view is created");

View File

@ -13,7 +13,7 @@ class QKeyEvent;
class QInputEvent; class QInputEvent;
class QResizeEvent; class QResizeEvent;
class QtOsgViewWidget : public QWidget, public ScaleBarHandler::Delegate { class QtOsgViewWidget : public QWidget {
Q_OBJECT Q_OBJECT
public: public:
explicit QtOsgViewWidget(QWidget* parent = nullptr); explicit QtOsgViewWidget(QWidget* parent = nullptr);
@ -24,8 +24,6 @@ public:
return nullptr; return nullptr;
} }
void OnComputeScale() override;
void Initialize(void); void Initialize(void);
void Uninitialize(void); void Uninitialize(void);