diff --git a/qtviewer_planetosm/CMakeLists.txt b/qtviewer_planetosm/CMakeLists.txt index 69173447de606a4093679141eff748c367b5e155..5280812a80e1847739156a49713d5e15a6e5623c 100644 --- a/qtviewer_planetosm/CMakeLists.txt +++ b/qtviewer_planetosm/CMakeLists.txt @@ -8,55 +8,55 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if (${QTV_ACTIVEX}) - find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network AxServer REQUIRED) - find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network AxServer REQUIRED) + find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network AxServer REQUIRED) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network AxServer REQUIRED) else() - find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network REQUIRED) - find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network REQUIRED) + find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network REQUIRED) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network REQUIRED) endif() set(PRJ_HEADERS - osm_frame_widget.h - osmtiles/cProjectionMercator.h - osmtiles/tilesviewer.h - osmtiles/urlDownloader.h - osmtiles/layer_tiles.h - osmtiles/layer_browser.h - osmtiles/layer_interface.h - osmtiles/viewer_interface.h - osmtiles/layer_tiles_page.h - interface_utils.h + osm_frame_widget.h + osmtiles/cProjectionMercator.h + osmtiles/tilesviewer.h + osmtiles/urlDownloader.h + osmtiles/layer_tiles.h + osmtiles/layer_browser.h + osmtiles/layer_interface.h + osmtiles/viewer_interface.h + osmtiles/layer_tiles_page.h + interface_utils.h ) set(PRJ_SOURCES - osm_frame_widget.cpp - osmtiles/cProjectionMercator.cpp - osmtiles/tilesviewer.cpp - osmtiles/urlDownloader.cpp - osmtiles/layer_tiles.cpp - osmtiles/layer_browser.cpp - osmtiles/layer_tiles_page.cpp + osm_frame_widget.cpp + osmtiles/cProjectionMercator.cpp + osmtiles/tilesviewer.cpp + osmtiles/urlDownloader.cpp + osmtiles/layer_tiles.cpp + osmtiles/layer_browser.cpp + osmtiles/layer_tiles_page.cpp ) set(PRJ_FORMS - osm_frame_widget.ui - osmtiles/layer_tiles_page.ui + osm_frame_widget.ui + osmtiles/layer_tiles_page.ui ) set(PRJ_RESOURCES - resource/resource.qrc - qtviewer_planetosm_zh_CN.ts - qtaxviewer_planetosm.rc + resource/resource.qrc + qtviewer_planetosm_zh_CN.ts + qtaxviewer_planetosm.rc ) # ========================Exe======================== if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) - qt_add_executable(qtviewer_planetosm + qt_add_executable(qtviewer_planetosm MANUAL_FINALIZATION main.cpp listen_thread.cpp @@ -65,26 +65,26 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) ${PRJ_SOURCES} ${PRJ_FORMS} ${PRJ_RESOURCES} - ) + ) # Define target properties for Android with Qt 6 as: # set_property(TARGET qtviewer_planetosm APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR # ${CMAKE_CURRENT_SOURCE_DIR}/android) # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation else() - if(ANDROID) + if(ANDROID) add_library(qtviewer_planetosm SHARED - main.cpp - listen_thread.cpp - listen_thread.h - ${PRJ_HEADERS} - ${PRJ_SOURCES} - ${PRJ_FORMS} - ${PRJ_RESOURCES} + main.cpp + listen_thread.cpp + listen_thread.h + ${PRJ_HEADERS} + ${PRJ_SOURCES} + ${PRJ_FORMS} + ${PRJ_RESOURCES} ) - # Define properties for Android with Qt 5 after find_package() calls as: - # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") + # Define properties for Android with Qt 5 after find_package() calls as: + # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") else() - add_executable(qtviewer_planetosm + add_executable(qtviewer_planetosm main.cpp listen_thread.cpp listen_thread.h @@ -92,72 +92,72 @@ else() ${PRJ_SOURCES} ${PRJ_FORMS} ${PRJ_RESOURCES} - ) + ) endif() endif() target_link_libraries(qtviewer_planetosm PRIVATE - Qt${QT_VERSION_MAJOR}::Widgets - Qt${QT_VERSION_MAJOR}::Network) + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Network) set_target_properties(qtviewer_planetosm PROPERTIES - MACOSX_BUNDLE_GUI_IDENTIFIER qtv.planetosm.viewer - MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} - MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} - MACOSX_BUNDLE TRUE - WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE_GUI_IDENTIFIER qtv.planetosm.viewer + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE ) if(QT_VERSION_MAJOR EQUAL 6) - qt_finalize_executable(qtviewer_planetosm) + qt_finalize_executable(qtviewer_planetosm) endif() # ========================Widget Library======================== add_library(qplanetosm_widget SHARED - qtwidget_planetosm.h - qtwidget_planetosm.cpp - ${PRJ_HEADERS} - ${PRJ_SOURCES} - ${PRJ_FORMS} - ${PRJ_RESOURCES} + qtwidget_planetosm.h + qtwidget_planetosm.cpp + ${PRJ_HEADERS} + ${PRJ_SOURCES} + ${PRJ_FORMS} + ${PRJ_RESOURCES} ) target_compile_definitions(qplanetosm_widget PRIVATE PLANETOSM_EXPORT_DLL) target_link_libraries(qplanetosm_widget PRIVATE - Qt${QT_VERSION_MAJOR}::Widgets - Qt${QT_VERSION_MAJOR}::Network + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Network ) #==========================ActiveX========================== if (WIN32 AND ${QTV_ACTIVEX}) - if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt6_add_axserver_library(axplanetosm SHARED NO_AX_SERVER_REGISTRATION - qtaxviewer_planetosm.def - qtaxviewer_planetosm.h - qtaxviewer_planetosm.cpp - ${PRJ_HEADERS} - ${PRJ_SOURCES} - ${PRJ_FORMS} - ${PRJ_RESOURCES} + qtaxviewer_planetosm.def + qtaxviewer_planetosm.h + qtaxviewer_planetosm.cpp + ${PRJ_HEADERS} + ${PRJ_SOURCES} + ${PRJ_FORMS} + ${PRJ_RESOURCES} ) add_custom_command(TARGET axplanetosm - POST_BUILD - COMMAND echo If you want to reg server, please set Qt BIN PATH first - COMMAND idc.exe \"$\" /regserverperuser - #COMMAND regsvr32 \"$\" - #COMMAND idc.exe \"$\" /regserver - ) - else() + POST_BUILD + COMMAND echo If you want to reg server, please set Qt BIN PATH first + COMMAND idc.exe \"$\" /regserverperuser + #COMMAND regsvr32 \"$\" + #COMMAND idc.exe \"$\" /regserver + ) + else() add_library(axplanetosm SHARED - qtaxviewer_planetosm.def - qtaxviewer_planetosm.h - qtaxviewer_planetosm.cpp - ${PRJ_HEADERS} - ${PRJ_SOURCES} - ${PRJ_FORMS} - ${PRJ_RESOURCES} - # C:\Qt\6.2.4\msvc2019_64\bin\idc.exe D:/projects/build-qtv.planet-Qt62vc-Release/bin/axplanetosm.dll /regserver"" + qtaxviewer_planetosm.def + qtaxviewer_planetosm.h + qtaxviewer_planetosm.cpp + ${PRJ_HEADERS} + ${PRJ_SOURCES} + ${PRJ_FORMS} + ${PRJ_RESOURCES} + # C:\Qt\6.2.4\msvc2019_64\bin\idc.exe D:/projects/build-qtv.planet-Qt62vc-Release/bin/axplanetosm.dll /regserver"" ) add_custom_command(TARGET axplanetosm POST_BUILD @@ -169,9 +169,9 @@ if (WIN32 AND ${QTV_ACTIVEX}) ) endif() target_link_libraries(axplanetosm PRIVATE - Qt${QT_VERSION_MAJOR}::Widgets - Qt${QT_VERSION_MAJOR}::Network - Qt${QT_VERSION_MAJOR}::AxServer + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Network + Qt${QT_VERSION_MAJOR}::AxServer ) endif() diff --git a/qtvplugin_geomarker/CMakeLists.txt b/qtvplugin_geomarker/CMakeLists.txt index e18f390d1b760f5e5915407f4f38e43472e22e70..e79f31c462723e8b7aae39c9214202e7d175c3cc 100644 --- a/qtvplugin_geomarker/CMakeLists.txt +++ b/qtvplugin_geomarker/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/qtvplugin_grid/CMakeLists.txt b/qtvplugin_grid/CMakeLists.txt index cab1f0c92f77717340c596476a05819cdce59ab5..570b9dd85843d1793e3f0a8245f13a5f54e639c5 100644 --- a/qtvplugin_grid/CMakeLists.txt +++ b/qtvplugin_grid/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/qtvplugin_grid/qtvplugin_grid.cpp b/qtvplugin_grid/qtvplugin_grid.cpp index cdae19d8b1e9222414b506e8d4c85d41bec4182d..fa2a5863ac51ce3db1203b5952467df52bfb47d4 100644 --- a/qtvplugin_grid/qtvplugin_grid.cpp +++ b/qtvplugin_grid/qtvplugin_grid.cpp @@ -942,6 +942,10 @@ void qtvplugin_grid::load_ini() ui->lineEdit_QTV_west_spliter->setText(settings.value("settings/lineEdit_QTV_west_spliter","W").toString()); ui->plainTextEdit_QTV_markcmd->setPlainText(settings.value("settings/plainTextEdit_QTV_markcmd","").toString()); ui->combox_type->setCurrentIndex(settings.value("settings/combox_type",0).toInt()); + ui->lineEdit_grigcen_r->setText(settings.value("settings/lineEdit_grigcen_r","100").toString()); + ui->lineEdit_grigcen_lon->setText(settings.value("settings/lineEdit_grigcen_lon","0").toString()); + ui->lineEdit_grigcen_lat->setText(settings.value("settings/lineEdit_grigcen_lat","0").toString()); + bool bLatFirst = settings.value("settings/latfirst",true).toBool(); if (bLatFirst) ui->radioButton_QTV_latfirst->setChecked(true); @@ -956,6 +960,51 @@ void qtvplugin_grid::save_ini() settings.setValue("settings/lineEdit_QTV_west_spliter",ui->lineEdit_QTV_west_spliter->text()); settings.setValue("settings/plainTextEdit_QTV_markcmd",ui->plainTextEdit_QTV_markcmd->toPlainText()); settings.setValue("settings/combox_type",ui->combox_type->currentIndex()); + settings.setValue("settings/lineEdit_grigcen_r",ui->lineEdit_grigcen_r->text()); + settings.setValue("settings/lineEdit_grigcen_lon",ui->lineEdit_grigcen_lon->text()); + settings.setValue("settings/lineEdit_grigcen_lat",ui->lineEdit_grigcen_lat->text()); + bool bLatFirst = ui->radioButton_QTV_latfirst->isChecked(); settings.setValue("settings/latfirst",bLatFirst); } + +void qtvplugin_grid::on_pushButton_QTV_centerFill_clicked() +{ + double clat,clon; + m_pVi->centerLLA(&clat,&clon); + ui->lineEdit_grigcen_lat->setText(QString("%1").arg(clat,0,'f',7)); + ui->lineEdit_grigcen_lon->setText(QString("%1").arg(clon,0,'f',7)); +} + + +void qtvplugin_grid::on_pushButton_QTV_gridCircle_clicked() +{ + double clat = ui->lineEdit_grigcen_lat->text().toDouble(); + double clon = ui->lineEdit_grigcen_lon->text().toDouble(); + double cr = ui->lineEdit_grigcen_r->text().toDouble(); + double clla[] {clat,clon,0}; + + if (cr <=0) + cr = 1; + if (cr>=14000) + cr = 14000; + int span = cr/128; + if (span <1) span = 1; + ui->lineEdit_grigcen_r->setText(QString("%1").arg(cr,0,'f',2)); + + static const int maxBufSize = 256; + static std::shared_ptr lla_buf(new double [maxBufSize][3]); + double (*pLLAbuf)[3] = lla_buf.get(); + + const int llafirst = ui->radioButton_QTV_latfirst->isChecked()?1:0; + QString strFill; + for (double d = 0;d<360;d+=10) + { + int res = CES_GEOCALC::ellips_range(clla,cr*1000,d,maxBufSize,span,pLLAbuf); + if (res) + strFill += QString("%1,%2\n").arg(pLLAbuf[res-1][1-llafirst],0,'f',7).arg(pLLAbuf[res-1][llafirst],0,'f',7); + } + ui->plainTextEdit_QTV_markcmd->setPlainText(strFill); + save_ini(); +} + diff --git a/qtvplugin_grid/qtvplugin_grid.h b/qtvplugin_grid/qtvplugin_grid.h index 24d8221be189182aea05ce007fe019da19c1cff1..cebe94799dfa0b8ee89ef571fd9d0ff193c94426 100644 --- a/qtvplugin_grid/qtvplugin_grid.h +++ b/qtvplugin_grid/qtvplugin_grid.h @@ -80,6 +80,8 @@ protected slots: void on_pushButton_QTV_add_mark_clicked(); void on_pushButton_QTV_clear_clicked(); void on_pushButton_QTV_clear_all_clicked(); + void on_pushButton_QTV_centerFill_clicked(); + void on_pushButton_QTV_gridCircle_clicked(); }; #endif // QTVPLUGIN_GRID_H diff --git a/qtvplugin_grid/qtvplugin_grid.ui b/qtvplugin_grid/qtvplugin_grid.ui index 9a4cfb4ad15aae48020163b534616a4f3ad0ce15..05e3bfcb04569a5e267487a0f4a9268066629883 100644 --- a/qtvplugin_grid/qtvplugin_grid.ui +++ b/qtvplugin_grid/qtvplugin_grid.ui @@ -6,8 +6,8 @@ 0 0 - 422 - 418 + 533 + 339 @@ -17,7 +17,22 @@ :/icons/Brush_Ruler_Alt.png:/icons/Brush_Ruler_Alt.png - + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + @@ -36,6 +51,9 @@ Qt::Horizontal + + QSizePolicy::Preferred + 40 @@ -51,21 +69,32 @@ Mark - - - - - - 16777215 - 64 - - - - - + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + 0 + 0 + + LatLon @@ -76,6 +105,12 @@ + + + 0 + 0 + + LonLat @@ -89,7 +124,14 @@ - + + + + 0 + 0 + + + @@ -99,17 +141,97 @@ - + + + + 0 + 0 + + + - + + + + Center Lon + + + + + + + + 0 + 0 + + + + + 16777215 + 64 + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + Center Lat + + + + + + + Range(km) + + + + + + 2 + Qt::Horizontal + + QSizePolicy::Preferred + 37 @@ -156,6 +278,40 @@ + + + + + 0 + 0 + + + + <=Circle + + + + :/ui/icons/Blizzard17.png:/ui/icons/Blizzard17.png + + + + + + + + 0 + 0 + + + + ^Center + + + + :/ui/icons/Blizzard17.png:/ui/icons/Blizzard17.png + + + @@ -196,6 +352,8 @@ + + diff --git a/qtwidget_planetosm_designer/CMakeLists.txt b/qtwidget_planetosm_designer/CMakeLists.txt index 31344f8568e1cb21dd394777315883fa10c2fb57..648bec5b06bb6024177438673a23f97ea2e36a01 100644 --- a/qtwidget_planetosm_designer/CMakeLists.txt +++ b/qtwidget_planetosm_designer/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/test_container/CMakeLists.txt b/test_container/CMakeLists.txt index 64cb382e4b634db8c6896915af452b2f8f613522..82a3207035bbcc028b03bc6bfd7dfc37336b7904 100644 --- a/test_container/CMakeLists.txt +++ b/test_container/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) include_directories(../qtviewer_planetosm)