Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
#
# $Id$
# $HeadURL$
# $Author$
#
# Situation Map Test Application
SET(EXE_SRCS
main.cpp
mainwindow.cpp
nglsettings.cpp
log4cxx_sitMapTestApp.props
mapsettings.ini
)
SET(EXE_HDRS
mainwindow.h
nglsettings.h
)
SET(EXE_UICS
ui/mainwindow.ui
)
NGL_WRAP_UI(EXE_SRCS ${EXE_UICS})
SET(SETTINGS_FILE mapsettings.ini)
SET(LOG4CXX_PROPS_FILE log4cxx_sitMapTestApp.props)
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION sitMapTestApp ${EXE_SRCS} ${EXE_HDRS} ${EXE_UICS})
NGL_TARGET_LINK_LIBRARIES(
sitMapTestApp
NGLLogger
nglapplication
nglwidgets
nglsettings
situationMap
situationMapObjects
situationMapFunctionDialog
ArcGIS::ArcGIS
LtsCoordTrans
)
IF(TARGET sitMapTestApp)
ADD_CUSTOM_COMMAND( TARGET sitMapTestApp POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${LOG4CXX_PROPS_FILE} $<TARGET_FILE_DIR:sitMapTestApp>/${LOG4CXX_PROPS_FILE}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SETTINGS_FILE} $<TARGET_FILE_DIR:sitMapTestApp>/${SETTINGS_FILE}
)
IF (UNIX)
ADD_CUSTOM_COMMAND( TARGET sitMapTestApp POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${SETTINGS_FILE} $ENV{HOME}/${SETTINGS_FILE}
)
ENDIF()
ENDIF()
IF(MSVC)
# Configure the template file
SET(VS_USER_FILE sitMapTestApp.vcxproj.user)
configure_file( ../../SituationMap.vcxproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/${VS_USER_FILE} @ONLY)
ENDIF(MSVC)
NGL_INSTALL_TARGET_DEVEL(sitMapTestApp)
NGL_INSTALL(FILES WS ${LOG4CXX_PROPS_FILE} DESTINATION "bin" COMPONENT Devel)
NGL_INSTALL(FILES WS ${SETTINGS_FILE} DESTINATION "." COMPONENT Devel)
@@ -0,0 +1,165 @@
log4j.reset=true
log4j.rootLogger=WARN, file
# SituationMapTestApp
###########################################################
log4j.logger.SituationMap.SitMapTestApp=DEBUG
# AdvancedSymbology (AdvSymbology)
###########################################################
log4j.logger.AdvSymbology=FATAL
log4j.logger.AdvSymbology.SymbolDictionary=FATAL
log4j.logger.AdvSymbology.SymbolDictionaryImpl=FATAL
log4j.logger.AdvSymbology.Sidc2525Delta=FATAL
# SituationMap
###########################################################
log4j.logger.SituationMap=FATAL
log4j.logger.SituationMap.MapImpl=FATAL
log4j.logger.SituationMap.MapSettings=FATAL
log4j.logger.SituationMap.MapInitializer=FATAL
log4j.logger.SituationMap.LayerFactoryImpl=FATAL
log4j.logger.SituationMap.LayerControl=INFO
log4j.logger.SituationMap.CoordTranslationFunctorImpl=FATAL
log4j.logger.SituationMap.CoordTranslationThread=FATAL
log4j.logger.SituationMap.PositionsTranslated=FATAL
log4j.logger.SituationMap.GridImpl=FATAL
log4j.logger.SituationMap.ObjectFactory=FATAL
log4j.logger.SituationMap.IdGenerator=FATAL
log4j.logger.SituationMap.ObjectContainer=FATAL
log4j.logger.SituationMap.ObjectContainerCTC=FATAL
log4j.logger.SituationMap.OverlayHandlerImpl=FATAL
log4j.logger.SituationMap.ViewshedImpl=FATAL
log4j.logger.SituationMap.ViewshedBase=FATAL
log4j.logger.SituationMap.AbstractMapObjectImpl=FATAL
log4j.logger.SituationMap.AbstractEffectSimulationImpl=FATAL
log4j.logger.SituationMap.OriginTranslated=FATAL
log4j.logger.SituationMap.PositionsTranslated=FATAL
log4j.logger.SituationMap.AbstractMultiPointMapObjectImpl=FATAL
log4j.logger.SituationMap.AbstractSinglePointMapObjectImpl=FATAL
log4j.logger.SituationMap.BasicPathObjectImpl=FATAL
log4j.logger.SituationMap.IndicationContainer=INFO
log4j.logger.SituationMap.PolygonImpl=FATAL
log4j.logger.SituationMap.PolylineImpl=FATAL
log4j.logger.SituationMap.TextImpl=FATAL
log4j.logger.SituationMap.AreaFireImpl=FATAL
log4j.logger.SituationMap.BiologicalAgentImpl=FATAL
log4j.logger.SituationMap.BuildingOutlineImpl=FATAL
log4j.logger.SituationMap.ChemicalAgentImpl=FATAL
log4j.logger.SituationMap.DangerAreaImpl=FATAL
log4j.logger.SituationMap.FunctionalAreaImpl=FATAL
log4j.logger.SituationMap.HitLineImpl=FATAL
log4j.logger.SituationMap.MapObjectIndicatorImpl=FATAL
log4j.logger.SituationMap.MineImpl=FATAL
log4j.logger.SituationMap.MineFieldImpl=FATAL
log4j.logger.SituationMap.NuclearAgentImpl=FATAL
log4j.logger.SituationMap.ParticipantImpl=FATAL
log4j.logger.SituationMap.SingleFireImpl=FATAL
log4j.logger.SituationMap.AbstractGraphicalObject=FATAL
log4j.logger.SituationMap.GraphicalObjectEllipse=FATAL
log4j.logger.SituationMap.GraphicalObjectPath=FATAL
log4j.logger.SituationMap.GraphicalObjectMultiPath=FATAL
log4j.logger.SituationMap.GraphicalObjectPictureMarker=FATAL
log4j.logger.SituationMap.GraphicalObjectRange=FATAL
log4j.logger.SituationMap.GraphicalObjectText=FATAL
log4j.logger.SituationMap.TacticalAppearance=FATAL
log4j.logger.SituationMap.MessageBase=FATAL
log4j.logger.SituationMap.EventDispatcher=FATAL
log4j.logger.SituationMap.Rubberband=FATAL
log4j.logger.SituationMap.RubberbandRectangle=FATAL
log4j.logger.SituationMap.RubberbandDrawablesAndHandles=FATAL
log4j.logger.SituationMap.RubberbandFrameHandle=FATAL
log4j.logger.SituationMap.RubberbandPointHandle=FATAL
log4j.logger.SituationMap.RubberbandStateSelect=FATAL
# SituationMap-SideBar
###########################################################
log4j.logger.SituationMap.SideBar=FATAL
log4j.logger.SituationMap.SideBarItem=FATAL
log4j.logger.SituationMap.SideBarModel=FATAL
# PlanEditor
###########################################################
log4j.logger.SituationMap.PlanEditor=FATAL
log4j.logger.SituationMap.PlanRenderer=FATAL
# Appnd_File
###########################################################
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=9
log4j.appender.file.file=${LOG4QT_LOGDIR}/${LOG4QT_USER}_SituationMapTestApp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-5p %c |#| %m (%.50F:%L) %n
# Appnd_Console
###########################################################
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d %-5p %c{1} |#| %m (%-.30F:%L) %n
#log4j.appender.stdout.layout.ConversionPattern= %d %-5p %-30c |#| %m (%-.30F:%L) %n
# Appnd_Syslog
###########################################################
log4j.appender.syslog=org.apache.log4j.SyslogAppender
log4j.appender.syslog.Threshold=ERROR
log4j.appender.syslog.SysLogHost=localhost
log4j.appender.syslog.Facility=LOCAL7
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern= %-4r %-5p %c %x - %m
log4j.appender.syslog.LevelRangeFilter.AcceptOnMatch=true
log4j.appender.syslog.LevelRangeFilter.LevelMin=FATAL
log4j.appender.syslog.LevelRangeFilter.LevelMax=FATAL
###########################################################
###########################################################
###########################################################
# 1) Available Levels in LOG4CXX Version 0.10.0:
# TRACE,
# DEBUG,
# INFO,
# WARN,
# ERROR
# FATAL
#
# d = date/time
# p = priority (Level)
# c = category/channel
# m = message
# F = file
# L = line
# n = platform dependent line separator character or characters.
# ....
#
# Examples for console:
# a)
# %d %p %c #%m# (%.50F:%L)%n
# date/time
# priority
# category/channel
# #message#
# (Maximal 50Character des Filename von rechts:Line)
# line separator
#
# b)
# %d (%.15F:%L) %-5p %c |#| %m%n
# date/time
# (Maximal 15Character des Filename von rechts:Line)
# priority, Right pad with spaces if the priority name is less than 5 characters long.
# category/channel
# message
# line separator
#
+68
View File
@@ -0,0 +1,68 @@
/**
* @RDE_HEADER@
* SquishTest
* $Id$
* $HeadURL$
* $Author$
*/
#include <nglapplication/nglapplication.h>
#include <NGLLogger/INGLLogger.h>
#include "mainwindow.h"
#include <QDesktopWidget>
#include <QMessageBox>
// -------------------------------------------------------------------
int main (int argc, char* argv[])
{
NGLApplication app ( argc, argv );
// under windows for ArcGIS 10.2.6 and higher
#ifdef Q_OS_WIN
QCoreApplication::setAttribute( Qt::AA_UseOpenGLES );
#endif
app.createLogger("sitMapTestApp", "log4cxx_sitMapTestApp.props");
TRACE_LOG(app.baseLogger()) << LOGFUNCTION << " START";
STARTUP_LOG(app.baseLogger());
app.setOrganizationName(QLatin1String("Rheinmetall Defence Electronics"));
app.setApplicationName(QLatin1String("Situation Map Test Application"));
MainWindow *mw = new MainWindow();
/*
QDesktopWidget *desktopWidget = QApplication::desktop();
QRect geom;
// DEBUG_LOG(app.baseLogger()) << LOGFUNCTION << " desktopWidget->screenCount() = " << desktopWidget->screenCount();
if (desktopWidget->screenCount() > 1)
geom = desktopWidget->screenGeometry(1);
else
geom = desktopWidget->screenGeometry();
int width = mw->frameGeometry().width();
int height = mw->frameGeometry().height();
int screenWidth = geom.width();
int screenHeight = geom.height();
int screenWidth = 1024;
int screenHeight = 768;
mw->setGeometry((screenWidth/2)-(width/2),(screenHeight/2)-(height/2),width,height);
*/
mw->setGeometry(0,0,1024,768);
// mw->setWindowState(Qt::WindowMaximized);
mw->show();
app.setQuitOnLastWindowClosed(true);
int retval = app.exec();
delete mw;
SHUTDOWN_LOG(app.baseLogger());
return retval;
}
File diff suppressed because it is too large. Load diff
+201
View File
@@ -0,0 +1,201 @@
/**
* @RDE_HEADER@
*
* MainWindow for DDS View
*
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <Common/ref_pointer.h>
#include <nglwidgets/nglmainwindow.h>
#include <Map/map.h>
#include <Map/grid.h>
#include <MapObjects/building_outline.h>
#include <MapObjects/danger_area.h>
#include <MapObjects/hit_line.h>
#include <MapObjects/area_fire.h>
#include <MapObjects/biological_agent.h>
#include <Rubberbands/rubberband_factory.h>
#include "nglsettings.h"
#include <LtsCoordTrans/lts_coord_trans.h>
namespace Ui {
class widgetMain;
}
class MainWindow : public NGLMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void init();
private:
Ui::widgetMain* m_ui;
// map
SituationMap::Map* m_map = nullptr;
// map settings
float m_scale = 500000.0;
int m_wkid = 32632;
QPointF m_objectBasePoint = QPointF(0, 0);
// QPointF m_objectCenterPoint = QPointF(0, 0);
LtsCoordTrans::UtmCoordinate s_basePoint;
// map objects
// buildings
SituationMap::RefPointer<SituationMap::BuildingOutline> m_building;
QMap<int /*buildingId*/, SituationMap::RefPointer<SituationMap::BuildingOutline> > m_buildingMap;
//danger areas
SituationMap::RefPointer<SituationMap::DangerArea> m_dangerArea;
QMap<int /*dangerAreaId*/, SituationMap::RefPointer<SituationMap::DangerArea> > m_dangerAreaMap;
//fire areas
SituationMap::RefPointer<SituationMap::AreaFire> m_fireArea;
QMap<int /*fireAreaId*/, SituationMap::RefPointer<SituationMap::AreaFire> > m_fireAreaMap;
// B agents
SituationMap::RefPointer<SituationMap::BiologicalAgent> m_bAgent;
QMap<int /*bAgentId*/, SituationMap::RefPointer<SituationMap::BiologicalAgent> > m_bAgentMap;
// Fire line
SituationMap::RefPointer<SituationMap::HitLine> m_hitLine;
QMap<int /*hitLineId*/, SituationMap::RefPointer<SituationMap::HitLine> > m_hitLineMap;
//settings
bool m_visibility = true;
bool m_visibilityTechn = true;
bool m_visibilityTact = true;
void setVersionView();
//timer for update buildings
QTimer* m_timer;
SituationMap::LOGGER_T m_logger;
private slots:
void onClose();
// map
void createMap();
void destroyMap();
void onMapReady();
void onExtentChanged();
void onMapObjectClicked( const SituationMap::Map::RefPointerMapObjectList &mapObjList );
void updateMapObjects();
void clearMapObjects();
// buildings
void createBuildings();
void createBuilding(int objId);
void removeBuildings();
void removeBuilding(int objId);
void onBuildingUpdate(int objId);
void hideBuildings();
void hideBuilding(int objId);
//danger areas
void createDangerAreas();
void createDangerArea(int objId);
void removeDangerAreas();
void removeDangerArea(int objId);
void onDangerAreaUpdate(int objId);
void hideDangerAreas();
void hideDangerArea(int objId);
//fire areas
void createFireAreas();
void createFireArea(int objId);
void removeFireAreas();
void removeFireArea(int objId);
void onFireAreaUpdate(int objId);
void hideFireAreas();
void hideFireArea(int objId);
// b agents
void createBAgents();
void createBAgent(int objId);
void removeBAgents();
void removeBAgent(int objId);
void onBAgentUpdate(int objId);
void hideBAgents();
void hideBAgent(int objId);
// fire lines
void createHitLines();
void createHitLine(int objId);
void removeHitLines();
void removeHitLine(int objId);
void onHitLineUpdate(int objId);
void hideHitLines();
void hideHitLine(int objId);
// rubberbands
void rubberbandPointCluster();
void rubberbandMultiPoint();
void rubberbandRectangle();
void rubberbandSquare();
void rubberbandEllipse();
void rubberbandArrow();
void rubberbandCorridorBoundary();
void rubberbandCorridorCenterline();
void rubberbandFilledMultiPoint();
void rubberbandSmoothLine();
void rubberbandFilledSmoothLine();
void rubberbandCreateRectangle(int objId, int noPoints, bool isSquare);
void rubberbandCreateRectangles();
void rubberbandCreateSquares();
void rubberbandCreateEllipse(int objId, int noPoints);
void rubberbandCreateEllipses();
void rubberbandCreatePointClusters();
void rubberbandCreatePointCluster(int objId, int noPoints);
void rubberbandCreateMultiPoints();
void rubberbandCreateMultiPoint(int objId, int noPoints, bool filled = false);
void rubberbandCreateFilledMultiPoints();
void rubberbandCreateSmoothLines();
void rubberbandCreateSmoothLine(int objId, int noPoints, bool filled = false);
void rubberbandCreateFilledSmoothLines();
void rubberbandCreateCorridorBoundaries();
void rubberbandCreateCorridor(int objId, int noPoints, bool bound = false);
void rubberbandCreateCorridorCenterlines();
void rubberbandCreateArrows();
void rubberbandCreateArrow(int objId, int noPoints);
// void onRubberbandApply( SituationMap::RB::Rubberband * rubberband);
void onRubberbandAbort( SituationMap::RB::RubberbandBase * rubberband);
void onRubberbandPointClusterApply(SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandMultiPointApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandRectangleApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandEllipseApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandSmoothLineApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandArrowApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandCorridorApply(SituationMap::RB::RubberbandBase *rubberband);
void endRubberband( SituationMap::RB::RubberbandBase *rubberband);
};
+241
View File
@@ -0,0 +1,241 @@
# $Id$
# $HeadURL$
# $Author$
[Map]
URL = "http://excgeo21.sl.defence-elec.de/arcgis/rest/services/Bremen/BremenHemelingenAerialGeoAmt_32632/MapServer"
URL1 = "http://excgeo21.sl.defence-elec.de/arcgis/rest/services/Norddeutschland/Norddeutschland_32632/MapServer"
Wkid = 32632
BasePoint = "32UMD000000000000" ;# if CoordTrans in not initialized:
Scale = 50000.00
GridType = "MGRS" ;# GridType: NoType, MGRS, UTM, USGN
GridVisible = false
RotationDegree = 0.0
SymbologyType = "MIL2525D"
FunctionDialogVisible = true
[MapObjects]
TextScale = 1.00
[Building_1]
Identifier = "Building_001"
P1 = "93064,78331"
P2 = "93069.9,78337.8"
P3 = "93076.8,78331.8"
P4 = "93070.9,78325"
P11 = "0.155274,0.925975"
P22 = "0.155275,0.925976"
P33 = "0.155277,0.925975"
P44 = "0.155275,0.925974"
TextColor = "red"
TextSize = 20
TextAngle = 0
TextItalic = true
TextAntiAliased = true
Visibility = true
VisibilityTech = true
VisibilityTact = true
LineColor = "red"
LineWidth = 6
LinePattern = "DashDotDot"
FillColor = "yellow"
FillPattern = "DiagonalCross"
TextAngleUpdate = 30
[Building_2]
Identifier = "Building_002"
P1 = "93049,78363"
P2 = "93071,78344"
P3 = "93062,78333"
P4 = "93041,78352"
P11 = "0.155270,0.925980"
P22 = "0.155275,0.925977"
P33 = "0.155273,0.925975"
P44 = "0.155268,0.925978"
TextColor = "blue"
TextSize = 16
TextAngle = -45
TextItalic = true
TextAntiAliased = true
Visibility = true
VisibilityTech = true
VisibilityTact = true
LineColor = "red"
LineWidth = 6
LinePattern = "DashDotDot"
FillColor = "yellow"
FillPattern = "DiagonalCross"
TextAngleUpdate = 0
[DangerArea_1]
Identifier = "DangerArea_001"
Extent = 10000
Offset_X = 60000
Offset_Y = 90000
Visibility = true
VisibilityTech = true
VisibilityTact = true
LineColor = "red"
LineWidth = 6
LinePattern = "DashDotDot"
FillColor = "yellow"
FillPattern = "DiagonalCross"
[BAgent_1]
Identifier = "BAgent_001"
Extent = 10000
Offset_X = 60000
Offset_Y = 60000
Visibility = true
VisibilityTech = true
VisibilityTact = true
TextColor = "magenta"
TextSize = 16
TextBold = true
LineColor = "cyan"
LineWidth = 6
LinePattern = "DashDotDot"
FillColor = "blue"
FillPattern = "DiagonalCross"
[FireArea_1]
Identifier = "FireArea_001"
Extent = 10000
Offset_X = 110000
Offset_Y = 50000
Visibility = true
VisibilityTech = true
VisibilityTact = true
LineColor = "red"
LineWidth = 6
LinePattern = "Solid"
FillColor = "blue"
FillPattern = "null"
[HitLine_1]
Identifier = "HitLine_001"
Extent = 25000
Offset_X = 120000
Offset_Y = 90000
Visibility = true
VisibilityTech = true
VisibilityTact = true
LineColor = "blue"
LineWidth = 3
LinePattern = "Solid"
[RB_PointCluster_1]
Points = 8
P1 = "97748.9,111304"
P2 = "82617,57261.7"
P3 = "62215.9,78203.2"
P4 = "74510.6,99955.4"
P5 = "91128.7,89011.7"
P6 = "120582,105225"
P7 = "59784,94145.8"
P8 = "104639,70096.8"
[RB_PointCluster_2]
Points = 4
P1 = "79509.5,62260.6"
P2 = "103288,77392.5"
P3 = "88156.4,101171"
P4 = "64377.6,86039.4"
[RB_MultiPoint_1]
P1 = "80185.1,94551.1"
P2 = "59243.5,75636.2"
P3 = "80725.5,61720.2"
P4 = "74510.6,77797.9"
P5 = "95046.8,74960.6"
FillColor = "teal"
MaxLength = 100000
MaxSegmentLength = 50000
[RB_SmoothLine_1]
P1 = "64918,92254.3"
P2 = "75726.6,70637.2"
P3 = "118555,79824.5"
P4 = "93425.5,88336.2"
FillColor = "olive"
[RB_Arrow_1]
P1 = "58973.3,102657"
P2 = "115853,82256.4"
P3 = "85454.2,53613.8"
P4 = "69106.3,92794.7"
[RB_Rectangle_1]
// rectangle
P1 = "48570.1,66689.1"
P2 = "122609,66689.1"
P3 = "122609,103438"
P4 = "48570.1,103438"
HandleMargin = 8
[RB_Rectangle_2]
// rotated square
P1 = "64377.6,81783.5"
P2 = "90588.3,63138.8"
P3 = "109233,89349.5"
P4 = "83022.3,107994"
HandleMargin = 8
[RB_Rectangle_3]
// square
P1 = "84238.3,73339.3"
P2 = "97748.9,73339.3"
P3 = "97748.9,86850"
P4 = "84238.3,86850"
HandleMargin = 8
[RB_Ellipse_1]
P1 = "59648.9,66989.3"
P2 = "127337,66989.3"
P3 = "127337,92254.3"
P4 = "59648.9,92254.3"
HandleMargin = 6
[RB_Corridor_1]
P1 = "54109.5,63746.8"
P2 = "107477,69556.4"
P3 = "76942.5,97118.1"
P4 = "77077.6,97118.1"
P5 = "55730.8,79959.6"
FillColor = "orange"
Width = 8000
MinWidth = 5000
MaxWidth = 10000
MaxLength = 1000000
MaxSegmentLength = 200000
MinPointCount = 3
MaxPointCount = 8
+222
View File
@@ -0,0 +1,222 @@
/**
* @RDE_HEADER@
* Settings for sitMapTestApp
* $Id$
* $HeadURL$
* $Author$
*/
#include "nglsettings.h"
#include <QtCore/QSettings>
#include <QPointF>
#include <nglsettings/nglsettings_settings.h>
#include <NGLLogger/INGLLogger.h>
#include <NGLLogger/NGLLoggerBootstrap.h>
using namespace NGL;
//-----------------------------------------------------------------------------------------
namespace MAP
{
class NGLSettingsClass : public NGL::Settings
{
public:
NGLSettingsClass();
~NGLSettingsClass() {}
};
Q_GLOBAL_STATIC ( NGLSettingsClass, s )
NGLSettingsClass::NGLSettingsClass()
: NGL::Settings(QLatin1String("mapsettings.ini"))
{
}
NGL::Settings *Settings::settings()
{
qDebug("%s", s()->settings()->fileName().toStdString().c_str());
return s();
}
//----------------------------------------
QString Settings::basePoint()
{
return s()->getString(QLatin1String("Map/BasePoint"), QLatin1String("32UMD000000000000"));
}
/*
//-----------------------------------------------------------------------------------------
double Settings::mapBasePointX()
{
return s()->getDouble(QLatin1String("Map/BasePoint_X"), 0.0);
}
//----------------------------------------
QString Settings::centerPointMgrs()
{
return s()->getString(QLatin1String("Map/Center"), QLatin1String("32UMD8000085000"));
}
double Settings::mapCenterPointX()
{
return s()->getDouble(QLatin1String("Map/CenterPoint_X"), 0.0);
}
double Settings::mapCenterPointY()
{
return s()->getDouble(QLatin1String("Map/CenterPoint_Y"), 0.0);
}
double Settings::mapBasePointY()
{
return s()->getDouble(QLatin1String("Map/BasePoint_Y"), 0.0);
}
*/
int Settings::mapWkid()
{
return s()->getInteger(QLatin1String("Map/Wkid"), 32632);
}
double Settings::mapObjectsTextScale()
{
return s()->getDouble(QLatin1String("MapObjects/TextScale"), 1.0);
}
double Settings::mapScale()
{
return s()->getDouble(QLatin1String("Map/Scale"), 100000.0);
}
double Settings::mapRotationDegree()
{
return s()->getDouble(QLatin1String("Map/RotationDegree"), 0.0);
}
/*
int Settings::XMin()
{
return s()->getInteger(QLatin1String("Map/XMin"), 0);
}
int Settings::YMin()
{
return s()->getInteger(QLatin1String("Map/YMin"), 0);
}
int Settings::XMax()
{
return s()->getInteger(QLatin1String("Map/XMax"), 0);
}
int Settings::YMax()
{
return s()->getInteger(QLatin1String("Map/YMax"), 0);
}
*/
bool Settings::mapGridVisible()
{
return s()->getBoolean(QLatin1String("Map/GridVisible"), false);
}
bool Settings::mapFunctionDialogVisible()
{
return s()->getBoolean(QLatin1String("Map/FunctionDialogVisible"), false);
}
QString Settings::mapSymbologyType()
{
return s()->getString(QLatin1String("Map/SymbologyType"), QLatin1String("APP6B") );
}
QString Settings::mapGridType()
{
return s()->getString(QLatin1String("Map/GridType"), QLatin1String("MGRS") );
}
QString Settings::mapURL()
{
return s()->getString(QLatin1String("Map/URL"), QString() );
}
// conversion functions
//-------------------------------------------------------------------------------------
SituationMap::LinePattern Settings::getLinePattern(const QString &pattern)
{
SituationMap::LinePattern linePattern = SituationMap::LinePattern::Null;
if (pattern.compare(QLatin1String("Dash")) == 0)
linePattern = SituationMap::LinePattern::Dash;
if (pattern.compare(QLatin1String("DashDot")) == 0)
linePattern = SituationMap::LinePattern::DashDot;
if (pattern.compare(QLatin1String("DashDotDot")) == 0)
linePattern = SituationMap::LinePattern::DashDotDot;
if (pattern.compare(QLatin1String("Dot")) == 0)
linePattern = SituationMap::LinePattern::Dot;
if (pattern.compare(QLatin1String("Solid")) == 0)
linePattern = SituationMap::LinePattern::Solid;
return linePattern;
}
SituationMap::FillPattern Settings::getFillPattern(const QString &pattern)
{
SituationMap::FillPattern fillPattern = SituationMap::FillPattern::Null;
if (pattern.compare(QLatin1String("BackwardDiagonal")) == 0)
fillPattern = SituationMap::FillPattern::BackwardDiagonal;
if (pattern.compare(QLatin1String("Cross")) == 0)
fillPattern = SituationMap::FillPattern::Cross;
if (pattern.compare(QLatin1String("DiagonalCross")) == 0)
fillPattern = SituationMap::FillPattern::DiagonalCross;
if (pattern.compare(QLatin1String("ForwardDiagonal")) == 0)
fillPattern = SituationMap::FillPattern::ForwardDiagonal;
if (pattern.compare(QLatin1String("Solid")) == 0)
fillPattern = SituationMap::FillPattern::Solid;
if (pattern.compare(QLatin1String("Horizontal")) == 0)
fillPattern = SituationMap::FillPattern::Horizontal;
if (pattern.compare(QLatin1String("Vertical")) == 0)
fillPattern = SituationMap::FillPattern::Vertical;
return fillPattern;
}
SituationMap::GridType Settings::getGridType(const QString &pattern)
{
SituationMap::GridType gridType = SituationMap::GridType::MGRS;
if (pattern.compare(QLatin1String("MGRS")) == 0)
gridType = SituationMap::GridType::MGRS;
if (pattern.compare(QLatin1String("UTM")) == 0)
gridType = SituationMap::GridType::UTM;
if (pattern.compare(QLatin1String("USGN")) == 0)
gridType = SituationMap::GridType::USGN;
return gridType;
}
//map objects general functions
//-----------------------------------------------------------------------------------------
QString Settings::objectIdentifier(const QString &prefix, int id)
{
return s()->getString(prefix+QLatin1String("_")+QString::number(id)+QLatin1String("/Identifier"), prefix+QLatin1String("_")+QString::number(id));
}
bool Settings::getObjectBoolAttribute(const QString &prefix, const QString &postfix, int objId, bool defaultValue)
{
return s()->getBoolean(prefix+QLatin1String("_")+QString::number(objId)+QLatin1String("/")+postfix, defaultValue);
}
int Settings::getObjectIntAttribute(const QString &prefix, const QString &postfix, int objId, int defaultValue)
{
return s()->getInteger(prefix+QLatin1String("_")+QString::number(objId)+QLatin1String("/")+postfix, defaultValue);
}
QString Settings::getObjectStringAttribute(const QString &prefix, const QString &postfix, int objId, const QString &defaultValue)
{
return s()->getString(prefix+QLatin1String("_")+QString::number(objId)+QLatin1String("/")+postfix, defaultValue);
}
QPointF Settings::getPoint(const QString &prefix, int objId, int nr )
{
QString strPoint = s()->getString(prefix+QLatin1String("_")+QString::number(objId)+QLatin1String("/P")+QString::number(nr), QLatin1String("0,0"));
double point_x, point_y;
QStringList list = strPoint.split(QLatin1Char(','));
point_x = list[0].toDouble();
point_y = list[1].toDouble();
return QPointF(point_x,point_y);
}
} //namespace
+63
View File
@@ -0,0 +1,63 @@
/**
* @RDE_HEADER@
* Settings for sitMapTestApp
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QString>
#include <nglsettings/nglsettings_settings.h>
#include <Map/text_style.h>
#include <Map/grid.h>
namespace NGL {
class Settings;
}
namespace MAP
{
namespace Settings
{
// read map settings
double mapBasePointX();
double mapBasePointY();
double mapCenterPointX();
double mapCenterPointY();
int mapWkid();
double mapObjectsTextScale();
double mapScale();
bool mapGridVisible();
bool mapFunctionDialogVisible();
QString mapGridType();
double mapRotationDegree();
QString mapSymbologyType();
QString mapURL();
QString centerPointMgrs() ;
QString basePoint();
int XMin();
int YMin();
int XMax();
int YMax();
// general functions for map objects
QString objectIdentifier(const QString &prefix, int id);
bool getObjectBoolAttribute(const QString &prefix, const QString &postfix, int objId, bool defaultValue = false);
int getObjectIntAttribute(const QString &prefix, const QString &postfix, int objId, int defaultValue = 0);
QString getObjectStringAttribute(const QString &prefix, const QString &postfix, int objId, const QString &defaultValue = QString());
QPointF getPoint(const QString &prefix, int objId, int nr );
// conversion functions from strings
SituationMap::LinePattern getLinePattern(const QString &pattern);
SituationMap::FillPattern getFillPattern(const QString &pattern);
SituationMap::GridType getGridType(const QString &pattern);
//!< The real NGL::Settings - object
NGL::Settings *settings();
}
};
@@ -0,0 +1,594 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>widgetMain</class>
<widget class="QMainWindow" name="widgetMain">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>641</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="windowTitle">
<string comment="Window title">Situation Map Test Application</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>:/Rde/RdeIcon</normaloff>:/Rde/RdeIcon</iconset>
</property>
<property name="toolTip">
<string>Situation Map Test Application</string>
</property>
<property name="iconSize">
<size>
<width>14</width>
<height>14</height>
</size>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout"/>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>19</height>
</rect>
</property>
<widget class="QMenu" name="menuMap">
<property name="title">
<string comment="Desktop menu title">&amp;Map</string>
</property>
<addaction name="actionLoadMap"/>
<addaction name="actionRemoveMap"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
<widget class="QMenu" name="menuMap_Objects">
<property name="title">
<string>Map &amp;Objects</string>
</property>
<widget class="QMenu" name="menu_Buildings">
<property name="title">
<string>&amp;Buildings</string>
</property>
<addaction name="actionCreateBuildings"/>
<addaction name="actionRemoveBuildings"/>
<addaction name="actionUpdateBuildings"/>
<addaction name="actionHideBuildings"/>
</widget>
<widget class="QMenu" name="menu_Danger_Areas">
<property name="title">
<string>&amp;Danger Areas</string>
</property>
<addaction name="actionCreateDangerAreas"/>
<addaction name="actionRemoveDangerAreas"/>
<addaction name="actionUpdateDangerAreas"/>
<addaction name="actionHideDangerAreas"/>
</widget>
<widget class="QMenu" name="menuB_Agents">
<property name="title">
<string>B-&amp;Agents</string>
</property>
<addaction name="actionCreateBAgents"/>
<addaction name="actionRemoveBAgents"/>
<addaction name="actionUpdateBAgents"/>
<addaction name="actionHideBAgents"/>
</widget>
<widget class="QMenu" name="menu_Fire_Areas">
<property name="title">
<string>&amp;Fire Areas</string>
</property>
<addaction name="actionCreateFireAreas"/>
<addaction name="actionRemoveFireAreas"/>
<addaction name="actionUpdateFireAreas"/>
<addaction name="actionHideFireAreas"/>
</widget>
<widget class="QMenu" name="menuHit_Lines">
<property name="title">
<string>Hit &amp;Lines</string>
</property>
<addaction name="actionCreateHitLines"/>
<addaction name="actionRemoveHitLines"/>
<addaction name="actionUpdateHitLines"/>
<addaction name="actionHideHitLines"/>
</widget>
<addaction name="menu_Buildings"/>
<addaction name="separator"/>
<addaction name="menu_Danger_Areas"/>
<addaction name="separator"/>
<addaction name="menuB_Agents"/>
<addaction name="separator"/>
<addaction name="menu_Fire_Areas"/>
<addaction name="separator"/>
<addaction name="menuHit_Lines"/>
<addaction name="separator"/>
</widget>
<widget class="QMenu" name="menu_Rubberbands">
<property name="title">
<string>&amp;Rubberbands</string>
</property>
<widget class="QMenu" name="menu_Rectangle">
<property name="title">
<string>&amp;Rectangle</string>
</property>
<addaction name="actionCreateRectangle"/>
<addaction name="actionRectangle"/>
</widget>
<widget class="QMenu" name="menuS_quare">
<property name="title">
<string>S&amp;quare</string>
</property>
<addaction name="actionCreateSquare"/>
<addaction name="actionSquare"/>
</widget>
<widget class="QMenu" name="menu_Ellipse">
<property name="title">
<string>&amp;Ellipse</string>
</property>
<addaction name="actionCreateEllipse"/>
<addaction name="actionEllipse"/>
</widget>
<widget class="QMenu" name="menu_Point_Cluster">
<property name="title">
<string>&amp;Point Cluster</string>
</property>
<addaction name="actionCreatePointCluster"/>
<addaction name="actionPointCluster"/>
</widget>
<widget class="QMenu" name="menu_Multipoint">
<property name="title">
<string>&amp;Multipoint</string>
</property>
<addaction name="actionCreateMultiPoint"/>
<addaction name="actionMultiPoint"/>
</widget>
<widget class="QMenu" name="menu_Filled_Multipoint">
<property name="title">
<string>&amp;Filled Multipoint</string>
</property>
<addaction name="actionCreateFilledMultiPoint"/>
<addaction name="actionFilledMultiPoint"/>
</widget>
<widget class="QMenu" name="menu_Smooth_Line">
<property name="title">
<string>&amp;Smooth Line</string>
</property>
<addaction name="actionCreateSmoothLine"/>
<addaction name="actionSmoothLine"/>
</widget>
<widget class="QMenu" name="menuFilled_Smooth_Line">
<property name="title">
<string>Filled Smooth &amp;Line</string>
</property>
<addaction name="actionCreateFilledSmoothLine"/>
<addaction name="actionFilledSmoothLine"/>
</widget>
<widget class="QMenu" name="menuCorridor_Boundary">
<property name="title">
<string>Corridor &amp;Boundary</string>
</property>
<addaction name="actionCreateCorridorBoundary"/>
<addaction name="actionCorridorBoundary"/>
</widget>
<widget class="QMenu" name="menuCorridor_Centerline">
<property name="title">
<string>Corridor &amp;Centerline</string>
</property>
<addaction name="actionCreateCorridorCenterline"/>
<addaction name="actionCorridorCenterline"/>
</widget>
<widget class="QMenu" name="menu_Arrow">
<property name="title">
<string>&amp;Arrow</string>
</property>
<addaction name="actionCreateArrow"/>
<addaction name="actionArrow"/>
</widget>
<addaction name="menu_Point_Cluster"/>
<addaction name="separator"/>
<addaction name="menu_Multipoint"/>
<addaction name="menu_Filled_Multipoint"/>
<addaction name="menu_Smooth_Line"/>
<addaction name="menuFilled_Smooth_Line"/>
<addaction name="menuCorridor_Boundary"/>
<addaction name="menuCorridor_Centerline"/>
<addaction name="menu_Arrow"/>
<addaction name="separator"/>
<addaction name="menu_Rectangle"/>
<addaction name="menuS_quare"/>
<addaction name="menu_Ellipse"/>
</widget>
<addaction name="menuMap"/>
<addaction name="menuMap_Objects"/>
<addaction name="menu_Rubberbands"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionLoadMap">
<property name="text">
<string>&amp;Load Map</string>
</property>
<property name="toolTip">
<string>Load Map</string>
</property>
<property name="statusTip">
<string comment="Auto save action statusTip">Loading default map</string>
</property>
</action>
<action name="actionRemoveMap">
<property name="text">
<string>&amp;Remove Map</string>
</property>
<property name="statusTip">
<string>Removing current map</string>
</property>
</action>
<action name="actionExit">
<property name="text">
<string>E&amp;xit</string>
</property>
<property name="toolTip">
<string>Exit application</string>
</property>
</action>
<action name="actionCreateBuildings">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create Buildings</string>
</property>
</action>
<action name="actionRemoveBuildings">
<property name="text">
<string>&amp;Remove</string>
</property>
<property name="toolTip">
<string>Remove Buildings</string>
</property>
</action>
<action name="actionUpdateBuildings">
<property name="text">
<string>&amp;Update</string>
</property>
<property name="toolTip">
<string>Update Buildings</string>
</property>
</action>
<action name="actionCreateDangerAreas">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create Danger Areas</string>
</property>
</action>
<action name="actionRemoveDangerAreas">
<property name="text">
<string>&amp;Remove</string>
</property>
<property name="toolTip">
<string>Remove Danger Areas</string>
</property>
</action>
<action name="actionUpdateDangerAreas">
<property name="text">
<string>&amp;Update</string>
</property>
<property name="toolTip">
<string>Update Danger Areas</string>
</property>
</action>
<action name="actionCreateBAgents">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create B Agents</string>
</property>
</action>
<action name="actionRemoveBAgents">
<property name="text">
<string>&amp;Remove</string>
</property>
<property name="toolTip">
<string>Remove B Agents</string>
</property>
</action>
<action name="actionUpdateBAgents">
<property name="text">
<string>&amp;Update</string>
</property>
<property name="toolTip">
<string>Update B Agents</string>
</property>
</action>
<action name="actionCreateFireAreas">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create Fire Areas</string>
</property>
</action>
<action name="actionRemoveFireAreas">
<property name="text">
<string>&amp;Remove</string>
</property>
<property name="toolTip">
<string>RemoveFireAreas</string>
</property>
</action>
<action name="actionUpdateFireAreas">
<property name="text">
<string>&amp;Update</string>
</property>
<property name="toolTip">
<string>Update Fire Areas</string>
</property>
</action>
<action name="actionCreateHitLines">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create Fire Lines</string>
</property>
</action>
<action name="actionRemoveHitLines">
<property name="text">
<string>&amp;Remove</string>
</property>
<property name="toolTip">
<string>Remove Fire Lines</string>
</property>
</action>
<action name="actionUpdateHitLines">
<property name="text">
<string>&amp;Update</string>
</property>
<property name="toolTip">
<string>Update Hit Lines</string>
</property>
</action>
<action name="actionRubberbands">
<property name="text">
<string>&amp;Rubberbands</string>
</property>
</action>
<action name="actionCreateRectangle">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Rectangle</string>
</property>
</action>
<action name="actionRectangle">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Create RB Rectangle Free Hand</string>
</property>
</action>
<action name="actionCreateSquare">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Square</string>
</property>
</action>
<action name="actionSquare">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Create RB Square Free Hand</string>
</property>
</action>
<action name="actionCreateEllipse">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Ellipse</string>
</property>
</action>
<action name="actionEllipse">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB Ellipse</string>
</property>
</action>
<action name="actionCreatePointCluster">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB PointCluster</string>
</property>
</action>
<action name="actionPointCluster">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB PointCluster</string>
</property>
</action>
<action name="actionCreateMultiPoint">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB MultiPoint</string>
</property>
</action>
<action name="actionMultiPoint">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB MultiPoint</string>
</property>
</action>
<action name="actionCreateFilledMultiPoint">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Filled MultiPoint</string>
</property>
</action>
<action name="actionFilledMultiPoint">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB FilledMultiPoint</string>
</property>
</action>
<action name="actionCreateSmoothLine">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB SmoothLine</string>
</property>
</action>
<action name="actionSmoothLine">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB SmoothLine</string>
</property>
</action>
<action name="actionCreateFilledSmoothLine">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB FilledSmoothLine</string>
</property>
</action>
<action name="actionFilledSmoothLine">
<property name="text">
<string>Draw</string>
</property>
<property name="toolTip">
<string>Draw RB FilledSmoothLine</string>
</property>
</action>
<action name="actionCreateCorridorBoundary">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Corridor Boundary</string>
</property>
</action>
<action name="actionCorridorBoundary">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB Corridor Boundary</string>
</property>
</action>
<action name="actionCreateCorridorCenterline">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Corridor Centerline</string>
</property>
</action>
<action name="actionCorridorCenterline">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB Corridor Centerline</string>
</property>
</action>
<action name="actionCreateArrow">
<property name="text">
<string>&amp;Create</string>
</property>
<property name="toolTip">
<string>Create RB Arrow</string>
</property>
</action>
<action name="actionArrow">
<property name="text">
<string>&amp;Draw</string>
</property>
<property name="toolTip">
<string>Draw RB Arrow</string>
</property>
</action>
<action name="actionHideBuildings">
<property name="text">
<string>&amp;Hide/Show</string>
</property>
<property name="toolTip">
<string>Toggle Hide/Show Buildings</string>
</property>
</action>
<action name="actionHideDangerAreas">
<property name="text">
<string>&amp;Hide/Show</string>
</property>
<property name="toolTip">
<string>Toggle Hide/Show Danger Areas</string>
</property>
</action>
<action name="actionHideBAgents">
<property name="text">
<string>&amp;Hide/Show</string>
</property>
<property name="toolTip">
<string>Toggle Hide/Show B-Agents</string>
</property>
</action>
<action name="actionHideFireAreas">
<property name="text">
<string>&amp;Hide/Show</string>
</property>
<property name="toolTip">
<string>Toggle Hide/Show Fire Areas</string>
</property>
</action>
<action name="actionHideHitLines">
<property name="text">
<string>&amp;Hide/Show</string>
</property>
<property name="toolTip">
<string>Toggle Hide/Show Hit Lines</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>