[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -3,7 +3,7 @@
<service name="tar_git">
<param name="url">https://github.com/Karry/osmscout-sailfish.git</param>
<param name="branch">master</param>
- <param name="revision">v2.22</param>
+ <param name="revision">v2.23</param>
<param name="debian">N</param>
<param name="dumb">N</param>
</service>
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-osmscout-2.22.tar.bz2/dependencies/libosmscout/Demos/src/PerformanceTest.cpp
^
|
@@ -1,1008 +0,0 @@
-/*
- Tiles - a demo program for libosmscout
- Copyright (C) 2011 Tim Teulings
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include <iostream>
-#include <iomanip>
-#include <limits>
-#include <tuple>
-
-#include "config.h"
-
-#include <osmscout/Database.h>
-#include <osmscoutmap/MapService.h>
-
-#if defined(HAVE_LIB_OSMSCOUTMAPCAIRO)
-#include <osmscoutmapcairo/MapPainterCairo.h>
-#endif
-#if defined(HAVE_LIB_OSMSCOUTMAPQT)
-#include <QApplication>
-#include <QDesktopWidget>
-#include <QPixmap>
-#include <QScreen>
-#include <osmscoutmapqt/MapPainterQt.h>
-#endif
-#if defined(HAVE_LIB_OSMSCOUTMAPAGG)
-#include <osmscoutmapagg/MapPainterAgg.h>
-#endif
-#if defined(HAVE_LIB_OSMSCOUTMAPOPENGL)
-#include <osmscoutmapopengl/MapPainterOpenGL.h>
-#include <GLFW/glfw3.h>
-#endif
-
-#if defined(HAVE_LIB_OSMSCOUTMAPGDI)
-#include <osmscoutmapgdi/MapPainterGDI.h>
-#endif
-
-#if defined(HAVE_LIB_GPERFTOOLS)
-#include <gperftools/tcmalloc.h>
-#include <gperftools/heap-profiler.h>
-#include <malloc.h> // mallinfo
-#else
-#if defined(HAVE_MALLINFO)
-#include <malloc.h> // mallinfo
-#endif
-#endif
-
-#include <osmscoutmap/MapPainterNoOp.h>
-
-#include <osmscout/system/Math.h>
-
-#include <osmscout/util/CmdLineParsing.h>
-#include <osmscout/util/StopClock.h>
-#include <osmscout/util/Tiling.h>
-
-/*
- Example for the nordrhein-westfalen.osm (to be executed in the Demos top
- level directory), drawing the "Ruhrgebiet":
-
- src/PerformanceTest ../maps/nordrhein-westfalen ../stylesheets/standard.oss 51.4 7.3 51.6 7.7 10 15 256 256 cairo
-*/
-
-// See http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames for details about
-// coordinate transformation
-
-struct Arguments {
- bool help{false};
- bool debug{false};
- std::string databaseDirectory{"."};
- std::string style{"stylesheets/standard.oss"};
- osmscout::GeoCoord coordTopLeft;
- osmscout::GeoCoord coordBottomRight;
- osmscout::MagnificationLevel startZoom{0};
- osmscout::MagnificationLevel endZoom{20};
- std::tuple<size_t, size_t> tileDimension{std::make_tuple(256, 256)};
- std::string driver{"none"};
- // TODO: Use some way to find a valid font on the system (Agg display a ton of messages otherwise)
- std::string font{"/usr/share/fonts/TTF/DejaVuSans.ttf"};
- std::list<std::string> icons;
- double dpi{96};
- size_t drawRepeat{1};
- size_t loadRepeat{1};
- bool flushCache{false};
- bool flushDiskCache{false};
-
-#if defined(HAVE_LIB_GPERFTOOLS)
- bool heapProfile{false};
- std::string heapProfilePrefix;
-#endif
-
- size_t TileWidth() const
- {
- return std::get<0>(tileDimension);
- }
-
- size_t TileHeight() const
- {
- return std::get<1>(tileDimension);
- }
-
- double LatBottom() const
- {
- return coordBottomRight.GetLat();
- }
-
- double LonLeft() const
- {
- return coordTopLeft.GetLon();
- }
-
- double LatTop() const
- {
- return coordTopLeft.GetLat();
- }
-
- double LonRight() const
- {
- return coordBottomRight.GetLon();
- }
-};
-
-class Stats
-{
-private:
- double minTime;
- double maxTime;
- double totalTime=0.0;
- uint32_t count=0;
-
-public:
- Stats()
- : minTime(std::numeric_limits<double>::max()),
- maxTime(std::numeric_limits<double>::min())
- {
- }
-
- void AddEvent(double time)
- {
- minTime=std::min(minTime,time);
- maxTime=std::max(maxTime,time);
- totalTime+=time;
- count++;
- }
-
- bool HasValue() const
- {
- return count>0;
- }
-
- double GetMinTime() const
- {
- return minTime;
- }
-
- double GetMaxTime() const
- {
- return maxTime;
- }
-
- double GetTotalTime() const
- {
- return totalTime;
- }
-
- double GetAverageTime() const
- {
- if (HasValue()) {
- return totalTime/(1.0*count);
- }
-
- return NAN;
- }
-};
-
-struct LevelStats
-{
- size_t level;
-
- Stats dbStats;
- Stats drawStats;
-
- std::vector<Stats> drawLevelStats;
-
- double allocMax;
- double allocSum;
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-osmscout-2.22.tar.bz2/dependencies/libosmscout/Demos/src/PerformanceTestConfig.h.cmake
^
|
@@ -1,99 +0,0 @@
-#ifndef LIBOSMSCOUT_PERFORMANCETEST_PRIVATE_CONFIG_H
-#define LIBOSMSCOUT_PERFORMANCETEST_PRIVATE_CONFIG_H
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#cmakedefine HAVE_DLFCN_H 1
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#cmakedefine HAVE_FSEEKO 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#cmakedefine HAVE_INTTYPES_H 1
-
-/* cairo detected */
-#cmakedefine HAVE_LIB_CAIRO 1
-
-#cmakedefine HAVE_LIB_OSMSCOUTMAPCAIRO 1
-
-/* Gperftools detected */
-#cmakedefine HAVE_LIB_GPERFTOOLS 1
-
-/* pango detected */
-#cmakedefine OSMSCOUT_MAP_CAIRO_HAVE_LIB_PANGO 1
-
-/* qt detected */
-#cmakedefine HAVE_LIB_QT5_GUI 1
-
-#cmakedefine HAVE_LIB_OSMSCOUTMAPQT 1
-
-/* Agg detected */
-#cmakedefine HAVE_LIB_AGG 1
-#cmakedefine HAVE_LIB_OSMSCOUTMAPAGG 1
-
-/* Opengl detected */
-#cmakedefine HAVE_LIB_OPENGL 1
-#cmakedefine HAVE_LIB_OSMSCOUTMAPOPENGL 1
-
-/* GDI detected */
-/* GDI detected */
-#cmakedefine HAVE_LIB_OSMSCOUTMAPGDI 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#cmakedefine HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mallinfo' function. */
-#cmakedefine HAVE_MALLINFO 1
-
-/* Define to 1 if you have the `mmap' function. */
-#cmakedefine HAVE_MMAP 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#cmakedefine HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#cmakedefine HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#cmakedefine HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#cmakedefine HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#cmakedefine HAVE_SYS_STAT_H */
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#cmakedefine HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#cmakedefine HAVE_UNISTD_H 1
-
-/* Define to 1 or 0, depending whether the compiler supports simple visibility
- declarations. */
-#cmakedefine HAVE_VISIBILITY 1
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "tim@teulings.org"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "PerformanceTest"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "PerformanceTest 0.1"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "PerformanceTest"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.1"
-
-/* The size of `wchar_t', as computed by sizeof. */
-#define SIZEOF_WCHAR_T @SIZEOF_WCHAR_T@
-
-/* Define to 1 if you have the ANSI C header files. */
-#cmakedefine STDC_HEADERS 1
-
-#endif
\ No newline at end of file
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/CMakeLists.txt
^
|
@@ -6,7 +6,7 @@
# Redistribution and use is allowed according to the terms of the BSD license.
cmake_policy(SET CMP0048 NEW)
-project(osmscout-sailfish VERSION 2.22.0 LANGUAGES C CXX)
+project(osmscout-sailfish VERSION 2.23.0 LANGUAGES C CXX)
# ==================================================================================================
# Information to update before to release this package.
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/.github/workflows/build_and test_on_msys.yml
^
|
@@ -34,7 +34,8 @@
- name: Build project
run: cmake --build build
- name: Run tests
- run: PATH=$PATH:$PWD/libosmscout:$PWD/libosmscout-import:$PWD/libosmscout-map:$PWD/libosmscout-test ctest -j 4 --output-on-failure
+ run: "PATH=$PATH:$PWD/libosmscout:$PWD/libosmscout-import:$PWD/libosmscout-map:$PWD/libosmscout-test
+ ctest -j 4 --output-on-failure --exclude-regex PerformanceTest"
working-directory: build
build_gcc_meson:
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/.github/workflows/build_and test_on_osx.yml
^
|
@@ -43,5 +43,5 @@
- name: Build project
run: cmake --build build
- name: Run tests
- run: ctest -j 2 --output-on-failure
+ run: ctest -j 2 --output-on-failure --exclude-regex PerformanceTest-opengl
working-directory: build
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/.github/workflows/build_and test_on_ubuntu_20_04.yml
^
|
@@ -89,7 +89,8 @@
libfreetype6-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev
qt5-default qtdeclarative5-dev libqt5svg5-dev qtlocation5-dev qtpositioning5-dev qttools5-dev-tools
qttools5-dev qtmultimedia5-dev
- libglm-dev libglew-dev freeglut3 freeglut3-dev
+ libglm-dev libglew-dev freeglut3 freeglut3-dev libglfw3-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxxf86vm-dev
+ xvfb
libmarisa-dev"
- name: Configure build project
run: cmake -B build -DCMAKE_UNITY_BUILD=ON -Wno-dev -G "Ninja"
@@ -98,6 +99,10 @@
CC: gcc-10
- name: Build project
run: cmake --build build
+ - name: Install project
+ run: sudo cmake --install build
- name: Run tests
- run: ctest -j 2 --output-on-failure
+ run: xvfb-run ctest -j 2 --output-on-failure
+ env:
+ QT_QPA_PLATFORM: offscreen
working-directory: build
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/.github/workflows/build_and test_on_vs2019.yml
^
|
@@ -20,10 +20,10 @@
# Restore from cache the previously built ports. If cache-miss, download and build vcpkg (aka "bootstrap vcpkg").
- name: Restore from cache and install vcpkg
# Download and build vcpkg, without installing any port. If content is cached already, it is a no-op.
- uses: lukka/run-vcpkg@v10
+ uses: lukka/run-vcpkg@v10.2 # https://github.com/lukka/run-vcpkg/releases/tag/v10.2
with:
setupOnly: true
- vcpkgGitCommitId: 44d94c2edbd44f0c01d66c2ad95eb6982a9a61bc
+ vcpkgGitCommitId: af2287382b1991dbdcb7e5112d236f3323b9dd7a # https://github.com/microsoft/vcpkg/releases/tag/2022.03.10
- name: Installing zlib, iconv, libxml2...
run: ${{ github.workspace }}\vcpkg\vcpkg install zlib:x64-windows libiconv:x64-windows libxml2:x64-windows
- name: Installing protobuf...
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/.github/workflows/build_on_ubuntu_18_04_qt_android.yml
^
|
@@ -28,7 +28,7 @@
- name: Run sdkmanager update
run: ${ANDROID_HOME}/tools/bin/sdkmanager --update
- name: Install android platform, platform-tools, build-tools and ndk
- run: ${ANDROID_HOME}/tools/bin/sdkmanager --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147"
+ run: ${ANDROID_HOME}/tools/bin/sdkmanager --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;23.1.7779620"
- name: Cache Qt
id: cache-qt
uses: actions/cache@v1
@@ -51,8 +51,8 @@
run: ls -l ../Qt/5.12.9/android_arm64_v8a/
- name: Configure build project
run: "cmake -B build
- -DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/21.3.6528147/build/cmake/android.toolchain.cmake
- -DANDROID_NDK=${ANDROID_HOME}/ndk/21.3.6528147/
+ -DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/23.1.7779620/build/cmake/android.toolchain.cmake
+ -DANDROID_NDK=${ANDROID_HOME}/ndk/23.1.7779620/
-DANDROID_ABI=arm64-v8a
-DANDROID_PLATFORM=android-29
-DANDROID_STL=c++_shared
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/.github/workflows/sanitize_on_ubuntu_20_04.yml
^
|
@@ -25,7 +25,9 @@
run: "sudo apt-get install -y
libxml2-dev
libprotobuf-dev protobuf-compiler
- libmarisa-dev"
+ libglm-dev libglew-dev freeglut3 freeglut3-dev libglfw3-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxxf86vm-dev
+ libmarisa-dev
+ xvfb"
- name: Configure build project
run: "cmake -B build
-DCMAKE_BUILD_TYPE=Debug
@@ -48,8 +50,16 @@
CC: clang
- name: Build project
run: cmake --build build
+ - name: Install project
+ run: sudo cmake --install build
- name: Run tests
- run: ctest -j 2 --output-on-failure
+ run: ctest -j 2 --output-on-failure --exclude-regex "PerformanceTest"
+ working-directory: build
+ - name: Run PerformanceTest tests
+ # UI libraries leaks memory on exit, lets ignore it...
+ run: xvfb-run ctest -j 2 --output-on-failure --tests-regex "PerformanceTest"
+ env:
+ ASAN_OPTIONS: detect_leaks=0
working-directory: build
sanitize_gcc:
@@ -66,7 +76,9 @@
run: "sudo apt-get update && sudo apt-get install -y
libxml2-dev
libprotobuf-dev protobuf-compiler
- libmarisa-dev"
+ libmarisa-dev
+ libglm-dev libglew-dev freeglut3 freeglut3-dev libglfw3-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxxf86vm-dev
+ xvfb"
- name: Configure build project
run: "cmake -B build
-DCMAKE_BUILD_TYPE=Debug
@@ -81,7 +93,8 @@
-DOSMSCOUT_DEBUG_GROUNDTILES=ON
-DOSMSCOUT_DEBUG_COASTLINE=ON
-DOSMSCOUT_DEBUG_TILING=ON
- -DOSMSCOUT_DEBUG_ROUTING=ON -DCMAKE_CXX_FLAGS=\"-fsanitize=address -fsanitize=undefined\"
+ -DOSMSCOUT_DEBUG_ROUTING=ON
+ -DCMAKE_CXX_FLAGS=\"-fsanitize=address -fsanitize=undefined\"
-DCMAKE_EXE_LINKER_FLAGS=\"-fsanitize=address -fsanitize=undefined\"
-DCMAKE_UNITY_BUILD=ON -Wno-dev -G \"Ninja\""
env:
@@ -89,6 +102,14 @@
CC: gcc-10
- name: Build project
run: cmake --build build
+ - name: Install project
+ run: sudo cmake --install build
- name: Run tests
- run: ctest -j 2 --output-on-failure
+ run: ctest -j 2 --output-on-failure --exclude-regex "PerformanceTest"
+ working-directory: build
+ - name: Run PerformanceTest tests
+ # UI libraries leaks memory on exit, lets ignore it...
+ run: xvfb-run ctest -j 2 --output-on-failure --tests-regex "PerformanceTest"
+ env:
+ ASAN_OPTIONS: detect_leaks=0
working-directory: build
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Demos/CMakeLists.txt
^
|
@@ -30,50 +30,6 @@
message("Skip LookupText demo, marisa dependency is missing.")
endif()
-#---- PerformanceTest
-if(${OSMSCOUT_BUILD_MAP})
- osmscout_demo_project(NAME PerformanceTest SOURCES src/PerformanceTest.cpp TARGET OSMScout::OSMScout OSMScout::Map)
- target_include_directories(PerformanceTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include/PerformanceTest)
- if(${OSMSCOUT_BUILD_MAP_CAIRO})
- target_link_libraries(PerformanceTest OSMScout::MapCairo)
- set(HAVE_LIB_OSMSCOUTMAPCAIRO 1)
- endif()
- if(${OSMSCOUT_BUILD_MAP_QT})
- target_link_libraries(PerformanceTest OSMScout::MapQt Qt5::Widgets)
- set(HAVE_LIB_OSMSCOUTMAPQT 1)
- if(MSVC)
- visual_studio_qt_helper("PerformanceTest")
- endif()
- if(OSMSCOUT_INSTALL_QT_DLL AND TARGET Qt5::windeployqt)
- add_custom_command(TARGET PerformanceTest
- POST_BUILD
- COMMAND set PATH=%PATH%$<SEMICOLON>${qt5_install_prefix}/bin
- COMMAND Qt5::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$<TARGET_FILE_DIR:PerformanceTest>/$<TARGET_FILE_NAME:PerformanceTest>"
- )
- endif()
- endif()
- if(${OSMSCOUT_BUILD_MAP_AGG})
- target_link_libraries(PerformanceTest OSMScout::MapAGG)
- set(HAVE_LIB_OSMSCOUTMAPAGG 1)
- endif()
- if(${OSMSCOUT_BUILD_MAP_OPENGL} AND ${GLFW_FOUND})
- target_include_directories(PerformanceTest PRIVATE ${GLFW_INCLUDE_DIR})
- target_link_libraries(PerformanceTest OSMScout::MapOpenGL ${GLFW_LIBRARIES})
- set(HAVE_LIB_OSMSCOUTMAPOPENGL 1)
- endif()
- if(${OSMSCOUT_BUILD_MAP_GDI})
- target_link_libraries(PerformanceTest OSMScout::MapGDI)
- set(HAVE_LIB_OSMSCOUTMAPGDI 1)
- endif()
- if(${GPERFTOOLS_USAGE})
- target_include_directories(PerformanceTest PRIVATE ${GPERFTOOLS_INCLUDE_DIRS})
- target_link_libraries(PerformanceTest ${GPERFTOOLS_LIBRARIES})
- endif()
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/PerformanceTestConfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/include/PerformanceTest/config.h)
-else()
- message("Skip PerformanceTest demo, libosmscout-map is missing.")
-endif()
-
#---- ResourceConsumption
if(${OSMSCOUT_BUILD_MAP})
osmscout_demo_project(NAME ResourceConsumption SOURCES src/ResourceConsumption.cpp TARGET OSMScout::OSMScout OSMScout::Map)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Demos/meson.build
^
|
@@ -73,58 +73,6 @@
link_with: [osmscout],
install: true)
-if buildMapCairo or buildMapQt or buildMapAgg or buildMapOpenGL
- includes = [demosIncDir, osmscoutIncDir, osmscoutmapIncDir]
- deps = [mathDep, openmpDep]
- links = [osmscout, osmscoutmap]
-
- if buildMapCairo and pangocairoDep.found()
- includes += osmscoutmapcairoIncDir
- deps += pangocairoDep
- links += osmscoutmapcairo
- endif
-
- if buildMapQt
- includes += osmscoutmapqtIncDir
- deps += [qt5WidgetsDep, qt5GuiDep]
- links += osmscoutmapqt
- endif
-
- if buildMapAgg
- includes += osmscoutmapaggIncDir
- deps += [mathDep, threadDep, aggDep, ftDep]
- links += osmscoutmapagg
-
- if aggftpicDep.found()
- deps += aggftpicDep
- else
- deps += aggftDep
- endif
- endif
-
- if buildMapOpenGL
- includes += osmscoutmapopenglIncDir
- deps += openGLDep
- deps += glfwDep
- deps += glewDep
- links += osmscoutmapopengl
- endif
-
- if buildMapGDI
- includes += osmscoutmapgdiIncDir
- deps += gdiplusDep
- links += osmscoutmapgdi
- endif
-
- PerformanceTest = executable('PerformanceTest',
- 'src/PerformanceTest.cpp',
- cpp_args: ['-fPIC'],
- include_directories: includes,
- dependencies: deps,
- link_with: links,
- install: true)
-endif
-
ResourceConsumption = executable('ResourceConsumption',
'src/ResourceConsumption.cpp',
include_directories: [osmscoutmapIncDir, osmscoutIncDir],
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Demos/src/DrawMapDirectX.cpp
^
|
@@ -61,11 +61,11 @@
Interface **ppInterfaceToRelease
)
{
- if (*ppInterfaceToRelease != NULL)
+ if (*ppInterfaceToRelease != nullptr)
{
(*ppInterfaceToRelease)->Release();
- (*ppInterfaceToRelease) = NULL;
+ (*ppInterfaceToRelease) = nullptr;
}
}
@@ -77,36 +77,29 @@
class DrawMapDirectX
{
private:
- HWND m_hwnd;
- ID2D1Factory* m_pDirect2dFactory;
- IDWriteFactory* m_pWriteFactory;
- ID2D1HwndRenderTarget* m_pRenderTarget;
- ID2D1SolidColorBrush* m_pLightSlateGrayBrush;
- ID2D1SolidColorBrush* m_pCornflowerBlueBrush;
+ HWND m_hwnd=0;
+ ID2D1Factory* m_pDirect2dFactory=nullptr;
+ IDWriteFactory* m_pWriteFactory=nullptr;
+ ID2D1HwndRenderTarget* m_pRenderTarget=nullptr;
+ ID2D1SolidColorBrush* m_pLightSlateGrayBrush=nullptr;
+ ID2D1SolidColorBrush* m_pCornflowerBlueBrush=nullptr;
- osmscout::MapPainterDirectX* m_Painter;
+ osmscout::MapPainterDirectX* m_Painter=nullptr;
std::list<osmscout::TileRef> m_Tiles;
- DrawMapDemo* m_pBaseData;
+ DrawMapDemo* m_pBaseData;
public:
explicit DrawMapDirectX(DrawMapDemo* pDemoData) :
- m_hwnd(NULL),
- m_pDirect2dFactory(NULL),
- m_pWriteFactory(NULL),
- m_pRenderTarget(NULL),
- m_pLightSlateGrayBrush(NULL),
- m_pCornflowerBlueBrush(NULL),
- m_Painter(NULL),
m_pBaseData(pDemoData)
{
}
~DrawMapDirectX()
{
- if (m_Painter != NULL)
+ if (m_Painter != nullptr)
{
delete m_Painter;
- m_Painter = NULL;
+ m_Painter = nullptr;
}
SafeRelease(&m_pWriteFactory);
SafeRelease(&m_pDirect2dFactory);
@@ -133,15 +126,17 @@
std::cout << "Device independent resources created." << std::endl;
// Register the window class.
- WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
+ WNDCLASSEX wcex;
+
+ wcex.cbSize= sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = DrawMapDirectX::WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = sizeof(LONG_PTR);
wcex.hInstance = HINST_THISCOMPONENT;
- wcex.hbrBackground = NULL;
- wcex.lpszMenuName = NULL;
- wcex.hCursor = LoadCursor(NULL, IDI_APPLICATION);
+ wcex.hbrBackground = nullptr;
+ wcex.lpszMenuName = nullptr;
+ wcex.hCursor = LoadCursor(nullptr, IDI_APPLICATION);
wcex.lpszClassName = _T("DemoDrawMapDirectX");
RegisterClassEx(&wcex);
@@ -166,13 +161,13 @@
(GetSystemMetrics(SM_CYSCREEN) - args.height) / 2,
args.width,
args.height,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
HINST_THISCOMPONENT,
this
);
- hr = m_hwnd ? S_OK : E_FAIL;
+ hr = m_hwnd!=0 ? S_OK : E_FAIL;
if (!SUCCEEDED(hr))
{
@@ -193,7 +188,7 @@
{
MSG msg;
- while (GetMessage(&msg, NULL, 0, 0))
+ while (GetMessage(&msg, nullptr, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
@@ -223,7 +218,7 @@
{
HRESULT hr = S_OK;
- if (!m_pRenderTarget)
+ if (m_pRenderTarget == nullptr)
{
RECT rc;
GetClientRect(m_hwnd, &rc);
@@ -330,7 +325,7 @@
m_pRenderTarget->DrawRectangle(&rectangle2, m_pCornflowerBlueBrush);
*/
- if (m_Painter != NULL)
+ if (m_Painter != nullptr)
{
m_Painter->DrawMap(m_pBaseData->projection, m_pBaseData->drawParameter, m_pBaseData->data, m_pRenderTarget);
}
@@ -349,7 +344,7 @@
// Resize the render target.
void OnResize(UINT width, UINT height)
{
- if (m_pRenderTarget)
+ if (m_pRenderTarget != nullptr)
{
// Note: This method can fail, but it's okay to ignore the
// error here, because the error will be returned again
@@ -388,7 +383,9 @@
result = 1;
- pDemoApp->m_Painter = new osmscout::MapPainterDirectX(pDemoApp->m_pBaseData->styleConfig, pDemoApp->m_pDirect2dFactory, pDemoApp->m_pWriteFactory);
+ pDemoApp->m_Painter = new osmscout::MapPainterDirectX(pDemoApp->m_pBaseData->styleConfig,
+ pDemoApp->m_pDirect2dFactory,
+ pDemoApp->m_pWriteFactory);
}
else
{
@@ -401,7 +398,7 @@
bool wasHandled = false;
- if (pDemoApp)
+ if (pDemoApp!= nullptr)
{
switch (message)
{
@@ -417,7 +414,7 @@
case WM_DISPLAYCHANGE:
{
- InvalidateRect(hWnd, NULL, FALSE);
+ InvalidateRect(hWnd, nullptr, FALSE);
}
result = 0;
wasHandled = true;
@@ -426,7 +423,7 @@
case WM_PAINT:
{
pDemoApp->OnRender();
- ValidateRect(hWnd, NULL);
+ ValidateRect(hWnd, nullptr);
}
result = 0;
wasHandled = true;
@@ -464,7 +461,7 @@
if (!drawDemo.OpenDatabase()) {
bool bHelp = drawDemo.GetArguments().help;
- MessageBoxA(NULL, bHelp ? strCout.str().c_str() : strCerr.str().c_str(), "DrawMapDirectX", MB_OK | (bHelp ? MB_ICONINFORMATION : MB_ICONERROR));
+ MessageBoxA(nullptr, bHelp ? strCout.str().c_str() : strCerr.str().c_str(), "DrawMapDirectX", MB_OK | (bHelp ? MB_ICONINFORMATION : MB_ICONERROR));
std::cerr.rdbuf(oldCerrStreamBuf);
std::cout.rdbuf(oldCoutStreamBuf);
return EXIT_FAILURE;
@@ -479,9 +476,9 @@
// by the process.
// The return value is ignored, because we want to continue running in the
// unlikely event that HeapSetInformation fails.
- HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0);
+ HeapSetInformation(nullptr, HeapEnableTerminationOnCorruption, nullptr, 0);
- if (SUCCEEDED(CoInitialize(NULL)))
+ if (SUCCEEDED(CoInitialize(nullptr)))
{
{
DrawMapDirectX app(&drawDemo);
@@ -502,16 +499,30 @@
{
int argc = 0;
LPWSTR* w_argv = CommandLineToArgvW(GetCommandLineW(), &argc);
- char** argv = NULL;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Demos/src/DrawMapGDI.cpp
^
|
@@ -45,31 +45,33 @@
class DrawMapGDI : public osmscout::MapPainterGDIWindow
{
private:
- osmscout::MapPainterGDI* m_Painter;
std::list<osmscout::TileRef> m_Tiles;
- DrawMapDemo* m_pBaseData;
+ DrawMapDemo* m_pBaseData;
public:
explicit DrawMapGDI(DrawMapDemo* pBaseData)
- : m_Painter(nullptr)
- , m_pBaseData(pBaseData)
+ : m_pBaseData(pBaseData)
{
}
bool initialize(HINSTANCE hInstance, int /*nShowCmd*/)
{
Arguments args = m_pBaseData->GetArguments();
+
+ LONG screenWidth=GetSystemMetrics(SM_CXSCREEN);
+ LONG screenHeight=GetSystemMetrics(SM_CYSCREEN);
+
RECT size = {
- (GetSystemMetrics(SM_CXSCREEN) - args.width) / 2,
- (GetSystemMetrics(SM_CYSCREEN) - args.height) / 2,
- (GetSystemMetrics(SM_CXSCREEN) + args.width) / 2,
- (GetSystemMetrics(SM_CYSCREEN) + args.height) / 2
+ (screenWidth - LONG(args.width)) / 2,
+ (screenHeight - LONG(args.height)) / 2,
+ (screenWidth + LONG(args.width)) / 2,
+ (screenHeight + LONG(args.height)) / 2
};
- if (!CreateCanvas(m_pBaseData->styleConfig, size, nullptr, hInstance))
- {
- return false;
- }
+ if (!CreateCanvas(m_pBaseData->styleConfig, size, nullptr, hInstance))
+ {
+ return false;
+ }
Set(&m_pBaseData->projection, &m_pBaseData->drawParameter, &m_pBaseData->data);
return true;
@@ -187,7 +189,10 @@
if (!drawDemo.OpenDatabase()) {
bool bHelp = drawDemo.GetArguments().help;
- MessageBoxA(nullptr, bHelp ? strCout.str().c_str() : strCerr.str().c_str(), "DrawMapGDI", MB_OK | (bHelp ? MB_ICONINFORMATION : MB_ICONERROR));
+ MessageBoxA(nullptr,
+ bHelp ? strCout.str().c_str() : strCerr.str().c_str(),
+ "DrawMapGDI",
+ MB_OK | (bHelp ? MB_ICONINFORMATION : MB_ICONERROR));
std::cerr.rdbuf(oldCerrStreamBuf);
std::cout.rdbuf(oldCoutStreamBuf);
return EXIT_FAILURE;
@@ -231,9 +236,23 @@
for (int i = 0; i < argc; ++i)
{
int w_len = lstrlenW(w_argv[i]);
- int len = WideCharToMultiByte(CP_ACP, 0, w_argv[i], w_len, nullptr, 0, nullptr, nullptr);
+ int len = WideCharToMultiByte(CP_ACP,
+ 0,
+ w_argv[i],
+ w_len,
+ nullptr,
+ 0,
+ nullptr,
+ nullptr);
argv[i] = new char[len + 1];
- WideCharToMultiByte(CP_ACP, 0, w_argv[i], w_len, argv[i], len, nullptr, nullptr);
+ WideCharToMultiByte(CP_ACP,
+ 0,
+ w_argv[i],
+ w_len,
+ argv[i],
+ len,
+ nullptr,
+ nullptr);
argv[i][len] = 0;
}
LocalFree(w_argv);
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Demos/src/DrawMapOpenGL.cpp
^
|
@@ -78,14 +78,17 @@
}
glfwMakeContextCurrent(offscreen_context);
- osmscout::MapPainterOpenGL* painter = new osmscout::MapPainterOpenGL(args.width, args.height, args.dpi, args.fontName, shaderPath);
+ osmscout::MapPainterOpenGL* painter = new osmscout::MapPainterOpenGL(args.width, args.height, args.dpi, args.fontName, shaderPath, drawDemo.drawParameter);
if (!painter->IsInitialized()) {
delete painter;
return 1;
}
- painter->ProcessData(drawDemo.data, drawDemo.drawParameter, drawDemo.projection, drawDemo.styleConfig);
+ painter->SetCenter(drawDemo.projection.GetCenter());
+ painter->SetMagnification(drawDemo.projection.GetMagnification());
+
+ painter->ProcessData(drawDemo.data, drawDemo.projection, drawDemo.styleConfig);
painter->SwapData();
painter->DrawMap();
@@ -104,6 +107,9 @@
delete[] image;
delete painter;
+ glfwDestroyWindow(offscreen_context);
+ glfwTerminate();
+
return 0;
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Demos/src/DrawMapSVG.cpp
^
|
@@ -50,31 +50,55 @@
if (stricmp(ext1, ".ttf") == 0 || stricmp(ext1, ".otf") == 0)
{
char drive2[_MAX_DRIVE], dir2[_MAX_DIR], fname2[_MAX_FNAME], ext2[_MAX_EXT];
- HKEY hKey = NULL;
- if (RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", &hKey) == ERROR_SUCCESS)
+ HKEY hKey = nullptr;
+ if (RegOpenKey(HKEY_LOCAL_MACHINE, R"(SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)", &hKey) == ERROR_SUCCESS)
{
DWORD cValues = 0, cchMaxValue, cbMaxValueData, cbSecurityDescriptor, cchName = 16383, cchValue = 16383, cType = 0;
FILETIME ftLastWriteTime;
char achName[16383], achValue[16383];
- DWORD retCode = RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL, NULL, NULL, &cValues, &cchMaxValue, &cbMaxValueData, &cbSecurityDescriptor, &ftLastWriteTime);
- if (cValues)
+ DWORD retCode = RegQueryInfoKey(hKey,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ &cValues,
+ &cchMaxValue,
+ &cbMaxValueData,
+ &cbSecurityDescriptor,
+ &ftLastWriteTime);
+ if (retCode == ERROR_SUCCESS && cValues > 0)
{
- for (DWORD i = 0, retCode = ERROR_SUCCESS; i < cValues; i++)
+ for (DWORD i = 0; i < cValues; i++)
{
cchName = 16383;
achName[0] = '\0';
cchValue = 16383;
achValue[0] = '\0';
- if (RegEnumValueA(hKey, i, achName, &cchName, NULL, &cType, (LPBYTE)achValue, &cchValue) == ERROR_SUCCESS)
+
+ if (RegEnumValueA(hKey,
+ i,
+ achName,
+ &cchName,
+ nullptr,
+ &cType,
+ (LPBYTE) achValue,
+ &cchValue) == ERROR_SUCCESS)
{
_splitpath(achValue, drive2, dir2, fname2, ext2);
if (stricmp(fname1, fname2) == 0 && stricmp(ext1, ext2) == 0)
{
- retCode = strlen(achName);
- if (retCode > 11)
+ size_t length = strlen(achName);
+
+ if (length > 11)
{
- if (strcmp(achName + retCode - 11, " (TrueType)") == 0) achName[retCode - 11] = 0;
+ if (strcmp(achName + length - 11, " (TrueType)") == 0)
+ {
+ achName[length - 11] = 0;
+ }
}
+
drawDemo.drawParameter.SetFontName(std::string(achName));
break;
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/OSMScout2/qml/main.qml
^
|
@@ -114,6 +114,7 @@
Layout.fillHeight: true
focus: true
renderingType: "plane" // or "tiled"
+ interactiveIcons: true
function getFreeRect() {
return Qt.rect(Theme.horizSpace,
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/OSMScout2/translations/meson.build
^
|
@@ -18,6 +18,5 @@
'en.ts',
],
build_by_default : true,
- install: true,
install_dir: translationInstallDir
)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/OSMScoutOpenGL/src/OSMScoutOpenGL.cpp
^
|
@@ -48,31 +48,27 @@
osmscout::DatabaseParameter databaseParameter;
osmscout::AreaSearchParameter searchParameter;
-osmscout::MapParameter drawParameter;
osmscout::DatabaseRef database;
osmscout::MapServiceRef mapService;
osmscout::StyleConfigRef styleConfig;
std::list <osmscout::TileRef> tiles;
osmscout::MapData data;
-osmscout::MercatorProjection projection;
-osmscout::Magnification magnification;
-osmscout::GeoBox boundingBox;
-osmscout::GeoCoord center;
+osmscout::MercatorProjection projection; // projection used for data loading
osmscout::MapPainterOpenGL *renderer;
std::string map;
std::string style;
+
// framebuffer dimensions
int width;
int height;
+
std::future<bool> result;
double prevX;
double prevY;
-int level;
-int zoom;
std::chrono::steady_clock::time_point lastEvent=std::chrono::steady_clock::time_point::min();
bool loadData = 0;
bool loadingInProgress = 0;
@@ -82,16 +78,14 @@
bool LoadData() {
data.ClearDBData();
tiles.clear();
- magnification.SetLevel(osmscout::MagnificationLevel(level));
- osmscout::MagnificationConverter mm;
- std::string s;
- mm.Convert(osmscout::MagnificationLevel(level), s);
- osmscout::log.Info() << "Zoom level: " << s << " " << magnification.GetLevel();
- projection.Set(center,
- magnification,
- dpi,
- width,
- height);
+
+ {
+ int level = projection.GetMagnification().GetLevel();
+ osmscout::MagnificationConverter mm;
+ std::string s;
+ mm.Convert(osmscout::MagnificationLevel(level), s);
+ osmscout::log.Info() << "Load zoom level: " << s << " " << level;
+ }
searchParameter.SetUseLowZoomOptimization(true);
mapService->LookupTiles(projection, tiles);
@@ -99,7 +93,7 @@
mapService->AddTileDataToMapData(tiles, data);
mapService->GetGroundTiles(projection, data.groundTiles);
osmscout::log.Info() << "Start processing data...";
- renderer->ProcessData(data, drawParameter, projection, styleConfig);
+ renderer->ProcessData(data, projection, styleConfig);
osmscout::log.Info() << "Ended processing data.";
return true;
@@ -116,35 +110,29 @@
if (key == GLFW_KEY_LEFT) {
renderer->OnTranslation(prevX, prevY, prevX + 10, prevY);
prevX = prevX + 10;
- center = renderer->GetCenter();
loadData = 1;
}
if (key == GLFW_KEY_RIGHT) {
renderer->OnTranslation(prevX, prevY, prevX - 10, prevY);
prevX = prevX - 10;
- center = renderer->GetCenter();
loadData = 1;
}
if (key == GLFW_KEY_UP) {
renderer->OnTranslation(prevX, prevY, prevX, prevY + 10);
prevY = prevY + 10;
- center = renderer->GetCenter();
loadData = 1;
}
if (key == GLFW_KEY_DOWN) {
renderer->OnTranslation(prevX, prevY, prevX, prevY - 10);
prevY = prevY - 10;
- center = renderer->GetCenter();
loadData = 1;
}
if (key == GLFW_KEY_KP_ADD || key == GLFW_KEY_I) {
- offset = 1;
- zoom = 1;
+ renderer->OnZoom(1);
loadData = 1;
}
if (key == GLFW_KEY_KP_SUBTRACT || key == GLFW_KEY_O) {
- offset = -1;
- zoom = 1;
+ renderer->OnZoom(-1);
loadData = 1;
}
@@ -172,24 +160,24 @@
}
static void scroll_callback(GLFWwindow */*window*/, double /*xoffset*/, double yoffset) {
- offset = yoffset;
+ renderer->OnZoom(yoffset);
lastEvent = std::chrono::steady_clock::now();
loadData = 1;
- zoom = 1;
- osmscout::log.Info() << "Zoom level: " << magnification.GetLevel();
- osmscout::log.Info() << "Magnification: " << magnification.GetMagnification();
- projection.GetDimensions(boundingBox);
+ osmscout::log.Info() << "Zoom level: " << renderer->GetMagnification().GetLevel();
+ osmscout::log.Info() << "Magnification: " << renderer->GetMagnification().GetMagnification();
}
static void cursor_position_callback(GLFWwindow */*window*/, double xpos, double ypos) {
if (button_down) {
renderer->OnTranslation(prevX, prevY, xpos, ypos);
- center = renderer->GetCenter();
loadData = 1;
lastEvent = std::chrono::steady_clock::now();
+
+ osmscout::GeoBox boundingBox;
+ renderer->GetProjection().GetDimensions(boundingBox);
osmscout::log.Info() << "BoundingBox: [" << boundingBox.GetMinLon() << " " << boundingBox.GetMinLat() << " "
<< boundingBox.GetMaxLon() << " " << boundingBox.GetMaxLat() << "]";
- osmscout::log.Info() << "Center: [" << center.GetLon() << " " << center.GetLat() << "]";
+ osmscout::log.Info() << "Center: [" << renderer->GetCenter().GetLon() << " " << renderer->GetCenter().GetLat() << "]";
}
prevX = xpos;
prevY = ypos;
@@ -313,15 +301,11 @@
return 1;
}
- database.get()->GetBoundingBox(boundingBox);
-
+ osmscout::MapParameter drawParameter;
drawParameter.SetFontSize(args.defaultTextSize);
std::list<std::string> paths;
paths.push_back(args.iconDirectory);
drawParameter.SetIconPaths(paths);
- center = boundingBox.GetCenter();
- level = 6;
- magnification.SetLevel(osmscout::MagnificationLevel(level));
glfwWindowHint(GLFW_SAMPLES, 4);
GLFWwindow *window;
@@ -362,40 +346,49 @@
glfwMakeContextCurrent(window);
renderer = new osmscout::MapPainterOpenGL(width, height, dpi,
- args.fontPath, args.shaderPath, args.defaultTextSize);
+ args.fontPath,
+ args.shaderPath,
+ drawParameter);
if (!renderer->IsInitialized()) {
+ delete renderer;
glfwDestroyWindow(window);
glfwTerminate();
- delete renderer;
return 1;
}
+ // set initial view
+ {
+ osmscout::GeoBox boundingBox;
+ database->GetBoundingBox(boundingBox);
+ renderer->SetCenter(boundingBox.GetCenter());
+ }
+ {
+ int level = 6;
+ osmscout::Magnification magnification;
+ magnification.SetLevel(osmscout::MagnificationLevel(level));
+ renderer->SetMagnification(magnification);
+ }
+
// initial synchronous rendering
+ projection = renderer->GetProjection();
LoadData();
renderer->SwapData();
std::chrono::steady_clock::time_point currentTime;
while (!glfwWindowShouldClose(window)) {
- glfwSwapBuffers(window);
- glfwPollEvents();
renderer->DrawMap();
+ glfwSwapBuffers(window);
+ glfwPollEvents();
if (loadData) {
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/StyleEditor/src/StyleAnalyser.cpp
^
|
@@ -81,7 +81,7 @@
void StyleAnalyser::update(QString content)
{
osmscout::StyleConfigRef styleConfig=std::make_shared<osmscout::StyleConfig>(typeConfig);
- styleConfig->LoadContent(content.toStdString());
+ styleConfig->LoadContent("main.oss", content.toStdString());
QSet<int> errorLines;
QSet<int> warningLines;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/StyleEditor/src/StyleEditor.cpp
^
|
@@ -119,5 +119,7 @@
#if defined(__WIN32__) || defined(WIN32)
int CALLBACK WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int /*nCmdShow*/){
main(0, nullptr);
+
+ return 0;
}
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Tests/CMakeLists.txt
^
|
@@ -77,6 +77,9 @@
#---- FeatureLabelTest
osmscout_test_project(NAME FeatureLabelTest SOURCES src/FeatureLabelTest.cpp)
+#---- File
+osmscout_test_project(NAME File SOURCES src/File.cpp)
+
#---- FileScannerWriter
osmscout_test_project(NAME FileScannerWriter SOURCES src/FileScannerWriter.cpp)
@@ -133,6 +136,83 @@
message("Skip OSTAndOSSCheck test, libosmscout-map is missing.")
endif()
+#---- PerformanceTest
+if(${OSMSCOUT_BUILD_MAP})
+ osmscout_demo_project(NAME PerformanceTest SOURCES src/PerformanceTest.cpp TARGET OSMScout::OSMScout OSMScout::Map)
+ target_include_directories(PerformanceTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include/PerformanceTest)
+
+ set(PERFORMANCE_TEST_DRIVERS noop none)
+
+ if(${OSMSCOUT_BUILD_MAP_CAIRO})
+ target_link_libraries(PerformanceTest OSMScout::MapCairo)
+ set(HAVE_LIB_OSMSCOUTMAPCAIRO 1)
+ set(PERFORMANCE_TEST_DRIVERS ${PERFORMANCE_TEST_DRIVERS} cairo)
+ endif()
+ if(${OSMSCOUT_BUILD_MAP_QT})
+ target_link_libraries(PerformanceTest OSMScout::MapQt Qt5::Widgets)
+ set(HAVE_LIB_OSMSCOUTMAPQT 1)
+ if(MSVC)
+ visual_studio_qt_helper("PerformanceTest")
+ endif()
+ if(OSMSCOUT_INSTALL_QT_DLL AND TARGET Qt5::windeployqt)
+ add_custom_command(TARGET PerformanceTest
+ POST_BUILD
+ COMMAND set PATH=%PATH%$<SEMICOLON>${qt5_install_prefix}/bin
+ COMMAND Qt5::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$<TARGET_FILE_DIR:PerformanceTest>/$<TARGET_FILE_NAME:PerformanceTest>"
+ )
+ endif()
+ set(PERFORMANCE_TEST_DRIVERS ${PERFORMANCE_TEST_DRIVERS} Qt)
+ endif()
+ if(${OSMSCOUT_BUILD_MAP_AGG})
+ target_link_libraries(PerformanceTest OSMScout::MapAGG)
+ set(HAVE_LIB_OSMSCOUTMAPAGG 1)
+ set(PERFORMANCE_TEST_DRIVERS ${PERFORMANCE_TEST_DRIVERS} agg)
+ endif()
+ if(${OSMSCOUT_BUILD_MAP_OPENGL} AND ${GLFW_FOUND})
+ target_include_directories(PerformanceTest PRIVATE ${GLFW_INCLUDE_DIR})
+ target_link_libraries(PerformanceTest OSMScout::MapOpenGL ${GLFW_LIBRARIES})
+ set(HAVE_LIB_OSMSCOUTMAPOPENGL 1)
+ set(PERFORMANCE_TEST_DRIVERS ${PERFORMANCE_TEST_DRIVERS} opengl)
+ endif()
+ if(${OSMSCOUT_BUILD_MAP_GDI})
+ target_link_libraries(PerformanceTest OSMScout::MapGDI)
+ set(HAVE_LIB_OSMSCOUTMAPGDI 1)
+ set(PERFORMANCE_TEST_DRIVERS ${PERFORMANCE_TEST_DRIVERS} dgi)
+ endif()
+
+ option(PERF_TEST_GPERFTOOLS_USAGE "Enable Gperftools in Performance test" ${GPERFTOOLS_USAGE})
+ if(${PERF_TEST_GPERFTOOLS_USAGE})
+ target_include_directories(PerformanceTest PRIVATE ${GPERFTOOLS_INCLUDE_DIRS})
+ target_link_libraries(PerformanceTest ${GPERFTOOLS_LIBRARIES})
+ endif()
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/PerformanceTestConfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/include/PerformanceTest/config.h)
+
+ set(STYLESHEETS
+ standard.oss
+ winter-sports.oss
+ boundaries.oss
+ railways.oss
+ motorways.oss
+ public-transport.oss)
+
+ foreach(DRIVER ${PERFORMANCE_TEST_DRIVERS})
+ foreach(STYLESHEET ${STYLESHEETS})
+ add_test(NAME PerformanceTest-${DRIVER}-${STYLESHEET}
+ COMMAND PerformanceTest
+ --debug
+ --driver ${DRIVER}
+ --icons "${CMAKE_CURRENT_SOURCE_DIR}/../libosmscout/data/icons/svg/standard"
+ --font "${CMAKE_CURRENT_SOURCE_DIR}/../libosmscout-map-opengl/data/fonts/LiberationSans-Regular.ttf"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/data/testregion"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../stylesheets/${STYLESHEET}"
+ 50.3806 14.5418 50.3806 14.5418)
+ endforeach()
+ endforeach()
+
+else()
+ message("Skip PerformanceTest test, libosmscout-map is missing.")
+endif()
+
#---- LabelPathTest
if(${OSMSCOUT_BUILD_MAP} AND TARGET OSMScout::Map)
osmscout_test_project(NAME LabelPathTest SOURCES src/LabelPathTest.cpp TARGET OSMScout::Map)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Tests/meson.build
^
|
@@ -96,6 +96,13 @@
link_with: [osmscout],
install: false)
+File = executable('File',
+ 'src/File.cpp',
+ include_directories: [testIncDir, osmscoutIncDir],
+ dependencies: [mathDep, openmpDep],
+ link_with: [osmscout],
+ install: false)
+
FileScannerWriter = executable('FileScannerWriter',
'src/FileScannerWriter.cpp',
include_directories: [testIncDir, osmscoutIncDir],
@@ -174,6 +181,58 @@
link_with: [osmscoutmap, osmscout],
install: false)
+if buildMapCairo or buildMapQt or buildMapAgg or buildMapOpenGL
+ includes = [demosIncDir, osmscoutIncDir, osmscoutmapIncDir]
+ deps = [mathDep, openmpDep]
+ links = [osmscout, osmscoutmap]
+
+ if buildMapCairo and pangocairoDep.found()
+ includes += osmscoutmapcairoIncDir
+ deps += pangocairoDep
+ links += osmscoutmapcairo
+ endif
+
+ if buildMapQt
+ includes += osmscoutmapqtIncDir
+ deps += [qt5WidgetsDep, qt5GuiDep]
+ links += osmscoutmapqt
+ endif
+
+ if buildMapAgg
+ includes += osmscoutmapaggIncDir
+ deps += [mathDep, threadDep, aggDep, ftDep]
+ links += osmscoutmapagg
+
+ if aggftpicDep.found()
+ deps += aggftpicDep
+ else
+ deps += aggftDep
+ endif
+ endif
+
+ if buildMapOpenGL
+ includes += osmscoutmapopenglIncDir
+ deps += openGLDep
+ deps += glfwDep
+ deps += glewDep
+ links += osmscoutmapopengl
+ endif
+
+ if buildMapGDI
+ includes += osmscoutmapgdiIncDir
+ deps += gdiplusDep
+ links += osmscoutmapgdi
+ endif
+
+ PerformanceTest = executable('PerformanceTest',
+ 'src/PerformanceTest.cpp',
+ cpp_args: ['-fPIC'],
+ include_directories: includes,
+ dependencies: deps,
+ link_with: links,
+ install: true)
+endif
+
ReaderScannerPerformance = executable('ReaderScannerPerformance',
'src/ReaderScannerPerformance.cpp',
include_directories: [osmscoutIncDir],
@@ -296,6 +355,7 @@
test('Check SunriseSunset utility', SunriseSunset)
test('Check encoding of numbers', EncodeNumber)
test('Check label formatting', FeatureLabelTest)
+test('Check File utilities', File)
test('Check File access implementation', FileScannerWriter)
test('Check parsing of geo box intersection', GeoBox)
test('Check parsing of geo coordinates', GeoCoordParse)
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Tests/src/File.cpp
^
|
@@ -0,0 +1,40 @@
+#include <filesystem>
+#include <iostream>
+#include <utility>
+
+#include <osmscout/util/File.h>
+
+#include <TestMain.h>
+
+TEST_CASE("Current Directory")
+{
+ std::filesystem::path path=std::filesystem::current_path();
+
+ std::cout << "Current path: '" << path << std::endl;
+
+ REQUIRE(std::filesystem::is_directory(path));
+}
+
+TEST_CASE("GetDirectory")
+{
+#if defined(__WIN32__) || defined(WIN32)
+ std::cout << "Windows path mode using '" << std::filesystem::path::preferred_separator << "'" << std::endl;
+ std::vector<std::pair<std::string,std::string>> testData = {{"c:\\directory\\file.txt", "c:\\directory\\"},
+ {"c:\\directory\\", "c:\\directory\\"},
+ {"c:\\directory", "c:\\"},
+ {"c:\\", "c:\\"},
+ {"", ""}};
+#else
+ std::cout << "Unix path mode using '" << std::filesystem::path::preferred_separator << "'" << std::endl;
+ std::vector<std::pair<std::string,std::string>> testData = {{"/directory/file.txt", "/directory/"},
+ {"/directory/", "/directory/"},
+ {"/directory", "/"},
+ {"/", "/"},
+ {"", ""}};
+#endif
+
+ for (const auto& test : testData) {
+ std::string directory=osmscout::GetDirectory(test.first);
+ REQUIRE(test.second == directory);
+ }
+}
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Tests/src/PerformanceTest.cpp
^
|
@@ -0,0 +1,1018 @@
+/*
+ Tiles - a demo program for libosmscout
+ Copyright (C) 2011 Tim Teulings
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <iostream>
+#include <iomanip>
+#include <limits>
+#include <tuple>
+
+#include "config.h"
+
+#include <osmscout/Database.h>
+#include <osmscoutmap/MapService.h>
+
+#if defined(HAVE_LIB_OSMSCOUTMAPCAIRO)
+#include <osmscoutmapcairo/MapPainterCairo.h>
+#endif
+#if defined(HAVE_LIB_OSMSCOUTMAPQT)
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QPixmap>
+#include <QScreen>
+#include <osmscoutmapqt/MapPainterQt.h>
+#endif
+#if defined(HAVE_LIB_OSMSCOUTMAPAGG)
+#include <osmscoutmapagg/MapPainterAgg.h>
+#endif
+#if defined(HAVE_LIB_OSMSCOUTMAPOPENGL)
+#include <osmscoutmapopengl/MapPainterOpenGL.h>
+#include <GLFW/glfw3.h>
+#endif
+
+#if defined(HAVE_LIB_OSMSCOUTMAPGDI)
+#include <osmscoutmapgdi/MapPainterGDI.h>
+#endif
+
+#if defined(PERF_TEST_GPERFTOOLS_USAGE)
+#include <gperftools/tcmalloc.h>
+#include <gperftools/heap-profiler.h>
+#include <malloc.h> // mallinfo
+#else
+#if defined(HAVE_MALLINFO)
+#include <malloc.h> // mallinfo
+#endif
+#endif
+
+#include <osmscoutmap/MapPainterNoOp.h>
+
+#include <osmscout/system/Math.h>
+
+#include <osmscout/util/CmdLineParsing.h>
+#include <osmscout/util/StopClock.h>
+#include <osmscout/util/Tiling.h>
+
+/*
+ Example for the nordrhein-westfalen.osm (to be executed in the Demos top
+ level directory), drawing the "Ruhrgebiet":
+
+ src/PerformanceTest ../maps/nordrhein-westfalen ../stylesheets/standard.oss 51.4 7.3 51.6 7.7 10 15 256 256 cairo
+*/
+
+// See http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames for details about
+// coordinate transformation
+
+struct Arguments {
+ bool help{false};
+ bool debug{false};
+ std::string databaseDirectory{"."};
+ std::string style{"stylesheets/standard.oss"};
+ osmscout::GeoCoord coordTopLeft;
+ osmscout::GeoCoord coordBottomRight;
+ osmscout::MagnificationLevel startZoom{0};
+ osmscout::MagnificationLevel endZoom{20};
+ std::tuple<size_t, size_t> tileDimension{std::make_tuple(256, 256)};
+ std::string driver{"none"};
+ // TODO: Use some way to find a valid font on the system (Agg display a ton of messages otherwise)
+ std::string font{"/usr/share/fonts/TTF/DejaVuSans.ttf"};
+ std::list<std::string> icons;
+ double dpi{96};
+ size_t drawRepeat{1};
+ size_t loadRepeat{1};
+ bool flushCache{false};
+ bool flushDiskCache{false};
+
+#if defined(PERF_TEST_GPERFTOOLS_USAGE)
+ bool heapProfile{false};
+ std::string heapProfilePrefix;
+#endif
+
+ size_t TileWidth() const
+ {
+ return std::get<0>(tileDimension);
+ }
+
+ size_t TileHeight() const
+ {
+ return std::get<1>(tileDimension);
+ }
+
+ double LatBottom() const
+ {
+ return coordBottomRight.GetLat();
+ }
+
+ double LonLeft() const
+ {
+ return coordTopLeft.GetLon();
+ }
+
+ double LatTop() const
+ {
+ return coordTopLeft.GetLat();
+ }
+
+ double LonRight() const
+ {
+ return coordBottomRight.GetLon();
+ }
+};
+
+class Stats
+{
+private:
+ double minTime;
+ double maxTime;
+ double totalTime=0.0;
+ uint32_t count=0;
+
+public:
+ Stats()
+ : minTime(std::numeric_limits<double>::max()),
+ maxTime(std::numeric_limits<double>::min())
+ {
+ }
+
+ void AddEvent(double time)
+ {
+ minTime=std::min(minTime,time);
+ maxTime=std::max(maxTime,time);
+ totalTime+=time;
+ count++;
+ }
+
+ bool HasValue() const
+ {
+ return count>0;
+ }
+
+ double GetMinTime() const
+ {
+ return minTime;
+ }
+
+ double GetMaxTime() const
+ {
+ return maxTime;
+ }
+
+ double GetTotalTime() const
+ {
+ return totalTime;
+ }
+
+ double GetAverageTime() const
+ {
+ if (HasValue()) {
+ return totalTime/(1.0*count);
+ }
+
+ return NAN;
+ }
+};
+
+struct LevelStats
+{
+ size_t level;
+
+ Stats dbStats;
+ Stats drawStats;
+
+ std::vector<Stats> drawLevelStats;
+
+ double allocMax=0.0;
+ double allocSum=0.0;
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Tests/src/PerformanceTestConfig.h.cmake
^
|
@@ -0,0 +1,99 @@
+#ifndef LIBOSMSCOUT_PERFORMANCETEST_PRIVATE_CONFIG_H
+#define LIBOSMSCOUT_PERFORMANCETEST_PRIVATE_CONFIG_H
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#cmakedefine HAVE_DLFCN_H 1
+
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+#cmakedefine HAVE_FSEEKO 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine HAVE_INTTYPES_H 1
+
+/* cairo detected */
+#cmakedefine HAVE_LIB_CAIRO 1
+
+#cmakedefine HAVE_LIB_OSMSCOUTMAPCAIRO 1
+
+/* Gperftools detected */
+#cmakedefine PERF_TEST_GPERFTOOLS_USAGE 1
+
+/* pango detected */
+#cmakedefine OSMSCOUT_MAP_CAIRO_HAVE_LIB_PANGO 1
+
+/* qt detected */
+#cmakedefine HAVE_LIB_QT5_GUI 1
+
+#cmakedefine HAVE_LIB_OSMSCOUTMAPQT 1
+
+/* Agg detected */
+#cmakedefine HAVE_LIB_AGG 1
+#cmakedefine HAVE_LIB_OSMSCOUTMAPAGG 1
+
+/* Opengl detected */
+#cmakedefine HAVE_LIB_OPENGL 1
+#cmakedefine HAVE_LIB_OSMSCOUTMAPOPENGL 1
+
+/* GDI detected */
+/* GDI detected */
+#cmakedefine HAVE_LIB_OSMSCOUTMAPGDI 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#cmakedefine HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mallinfo' function. */
+#cmakedefine HAVE_MALLINFO 1
+
+/* Define to 1 if you have the `mmap' function. */
+#cmakedefine HAVE_MMAP 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#cmakedefine HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#cmakedefine HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#cmakedefine HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#cmakedefine HAVE_SYS_STAT_H */
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H 1
+
+/* Define to 1 or 0, depending whether the compiler supports simple visibility
+ declarations. */
+#cmakedefine HAVE_VISIBILITY 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "tim@teulings.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "PerformanceTest"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "PerformanceTest 0.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "PerformanceTest"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "0.1"
+
+/* The size of `wchar_t', as computed by sizeof. */
+#define SIZEOF_WCHAR_T @SIZEOF_WCHAR_T@
+
+/* Define to 1 if you have the ANSI C header files. */
+#cmakedefine STDC_HEADERS 1
+
+#endif
\ No newline at end of file
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/Tests/src/SunriseSunsetTest.cpp
^
|
@@ -20,7 +20,7 @@
stream << "nullopt";
}
return stream.str();
-};
+}
std::string SunriseSunsetString(const std::string &day,
const osmscout::GeoCoord &location,
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/archlinux_clang_cmake/Dockerfile
^
|
@@ -15,6 +15,8 @@
cmake make pkg-config \
clang openmp
+ENV QT_QPA_PLATFORM offscreen
+
RUN mkdir /work
COPY data/build.sh /work
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/archlinux_gcc_cmake/Dockerfile
^
|
@@ -15,6 +15,8 @@
cmake make pkg-config \
gcc
+ENV QT_QPA_PLATFORM offscreen
+
RUN mkdir /work
COPY data/build.sh /work
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/archlinux_gcc_meson/Dockerfile
^
|
@@ -15,6 +15,8 @@
meson ninja pkg-config \
gcc
+ENV QT_QPA_PLATFORM offscreen
+
RUN mkdir /work
COPY data/build.sh /work
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/debian_bullseye_gcc_meson/Dockerfile
^
|
@@ -22,6 +22,7 @@
ENV LANG en_US.utf8
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/
+ENV QT_QPA_PLATFORM offscreen
RUN apt-get update && apt-get install -y \
g++ \
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/debian_buster_gcc_meson/Dockerfile
^
|
@@ -21,6 +21,7 @@
ENV LANG en_US.utf8
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/
+ENV QT_QPA_PLATFORM offscreen
RUN apt-get update && apt-get install -y \
g++ \
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/ubuntu_18.04_gcc_cmake/Dockerfile
^
|
@@ -19,6 +19,7 @@
RUN locale-gen en_US.UTF-8
ENV LANG en_US.utf8
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
+ENV QT_QPA_PLATFORM offscreen
RUN apt-get update && apt-get install -y \
cmake \
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/ci/docker/ubuntu_20.04_gcc_cmake/Dockerfile
^
|
@@ -22,6 +22,7 @@
RUN locale-gen en_US.UTF-8
ENV LANG en_US.utf8
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
+ENV QT_QPA_PLATFORM offscreen
RUN apt-get update && apt-get install -y \
cmake \
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/cmake/Config.h.cmake
^
|
@@ -206,6 +206,11 @@
#cmakedefine HAVE_STD_EXECUTION 1
#endif
+/* Define to 1 or 0, depending whether the tbb::task_scheduler_init exists. */
+#ifndef TBB_HAS_SCHEDULER_INIT
+#cmakedefine TBB_HAS_SCHEDULER_INIT 1
+#endif
+
/* int16_t is available */
#ifndef OSMSCOUT_HAVE_INT16_T
#cmakedefine OSMSCOUT_HAVE_INT16_T 1
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/cmake/TestTBBSchedulerInit.cpp
^
|
@@ -0,0 +1,7 @@
+#include "tbb/task_scheduler_init.h"
+
+int main()
+{
+ [[maybe_unused]] tbb::task_scheduler_init task_scheduler;
+ return 0;
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/cmake/features.cmake
^
|
@@ -223,6 +223,11 @@
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${THREADS_PTHREAD_ARG}")
endif()
find_package(TBB QUIET)
+if (TBB_FOUND)
+ try_compile(TBB_HAS_SCHEDULER_INIT "${PROJECT_BINARY_DIR}"
+ "${PROJECT_SOURCE_DIR}/cmake/TestTBBSchedulerInit.cpp"
+ LINK_LIBRARIES TBB::tbb)
+endif()
find_program(HUGO_PATH hugo)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/CMakeLists.txt
^
|
@@ -8,6 +8,8 @@
include/osmscoutclientqt/ElevationChartWidget.h
include/osmscoutclientqt/ElevationModule.h
include/osmscoutclientqt/FileDownloader.h
+ include/osmscoutclientqt/IconAnimation.h
+ include/osmscoutclientqt/IconLookup.h
include/osmscoutclientqt/InputHandler.h
include/osmscoutclientqt/LocationEntry.h
include/osmscoutclientqt/LocationInfoModel.h
@@ -65,6 +67,8 @@
src/osmscoutclientqt/ElevationChartWidget.cpp
src/osmscoutclientqt/ElevationModule.cpp
src/osmscoutclientqt/FileDownloader.cpp
+ src/osmscoutclientqt/IconAnimation.cpp
+ src/osmscoutclientqt/IconLookup.cpp
src/osmscoutclientqt/InputHandler.cpp
src/osmscoutclientqt/LocationEntry.cpp
src/osmscoutclientqt/LocationInfoModel.cpp
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/include/meson.build
^
|
@@ -29,6 +29,8 @@
'osmscoutclientqt/MapProvider.h',
'osmscoutclientqt/AvailableMapsModel.h',
'osmscoutclientqt/FileDownloader.h',
+ 'osmscoutclientqt/IconAnimation.h',
+ 'osmscoutclientqt/IconLookup.h',
'osmscoutclientqt/MapManager.h',
'osmscoutclientqt/MapDownloadsModel.h',
'osmscoutclientqt/MapObjectInfoModel.h',
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/include/osmscoutclientqt/IconAnimation.h
^
|
@@ -0,0 +1,84 @@
+#ifndef OSMSCOUT_CLIENT_QT_ICONANIMATION_H
+#define OSMSCOUT_CLIENT_QT_ICONANIMATION_H
+
+/*
+ OSMScout - a Qt backend for libosmscout and libosmscout-map
+ Copyright (C) 2022 Lukáš Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <osmscoutclientqt/ClientQtImportExport.h>
+
+#include <osmscout/util/Projection.h>
+#include <osmscoutclientqt/IconLookup.h>
+
+#include <QObject>
+#include <QTimer>
+#include <QPainter>
+
+namespace osmscout {
+
+class OSMSCOUT_CLIENT_QT_API IconAnimation : public QObject
+{
+ Q_OBJECT
+private:
+ static constexpr int animationDuration = 200;
+ QTimer timer;
+
+ enum class State {
+ FadeIn,
+ Full,
+ FadeOut
+ };
+
+ struct Animation {
+ MapIcon icon;
+ double size;
+ double startSize;
+ State state;
+ QElapsedTimer duration;
+
+ double MaxSize() const
+ {
+ return icon.image.width();
+ }
+
+ double MinSize() const
+ {
+ return icon.dimensions.width();
+ }
+ };
+
+ std::vector<Animation> icons;
+
+public slots:
+ void tick();
+
+signals:
+ void update();
+
+public:
+ IconAnimation();
+ ~IconAnimation() override = default;
+
+ void activate(const MapIcon &icon);
+ void deactivateAll();
+ void paint(QPainter *painter, const MercatorProjection &projection);
+};
+
+}
+
+#endif // OSMSCOUT_CLIENT_QT_ICONANIMATION_H
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/include/osmscoutclientqt/IconLookup.h
^
|
@@ -0,0 +1,112 @@
+#ifndef OSMSCOUT_CLIENT_QT_ICONLOOKUP_H
+#define OSMSCOUT_CLIENT_QT_ICONLOOKUP_H
+
+/*
+ OSMScout - a Qt backend for libosmscout and libosmscout-map
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <osmscoutmap/DataTileCache.h>
+
+#include <osmscoutclientqt/DBThread.h>
+
+#include <osmscoutclientqt/ClientQtImportExport.h>
+#include <osmscoutclientqt/OverlayObject.h>
+
+#include <QObject>
+#include <QSettings>
+#include <QMutex>
+
+namespace osmscout {
+
+/**
+ * \ingroup QtAPI
+ */
+struct OSMSCOUT_CLIENT_QT_API MapIcon {
+ QPoint screenCoord;
+ QRectF dimensions;
+ GeoCoord coord;
+ double distanceSquare;
+ IconStyleRef iconStyle;
+ QString databasePath;
+ ObjectFileRef objectRef;
+ int poiId;
+ QString type;
+ QString name;
+ QString altName;
+ QString ref;
+ QString operatorName;
+ QString phone;
+ QString website;
+ QImage image;
+};
+
+/**
+ * \ingroup QtAPI
+ */
+class OSMSCOUT_CLIENT_QT_API IconLookup : public QObject {
+ Q_OBJECT
+private:
+ static constexpr int iconImageUpscale=3;
+ static constexpr double tapSize=4;
+ QThread *thread;
+ DBThreadRef dbThread;
+ DBLoadJob *loadJob;
+ osmscout::MercatorProjection projection;
+ std::map<int,OverlayObjectRef> overlayObjects;
+ MapParameter drawParameter;
+ QPoint lookupCoord;
+ std::vector<MapIcon> findIcons;
+
+public slots:
+ void onIconRequest(const MapViewStruct &view,
+ const QPoint &coord,
+ const std::map<int,OverlayObjectRef> &overlayObjects);
+ void onDatabaseLoaded(QString dbPath,QList<osmscout::TileRef> tiles);
+ void onLoadJobFinished(QMap<QString,QMap<osmscout::TileKey,osmscout::TileRef>> tiles);
+
+public:
+signals:
+ void iconRequested(const MapViewStruct &view,
+ const QPoint &coord,
+ const std::map<int,OverlayObjectRef> &overlayObjects);
+
+ void iconFound(QPoint lookupCoord, MapIcon icon);
+ void iconNotFound(QPoint lookupCoord);
+
+public:
+ IconLookup(QThread *thread, DBThreadRef dbThread, QString iconDirectory);
+ ~IconLookup() override;
+
+ void RequestIcon(const MapViewStruct &view,
+ const QPoint &coord,
+ const std::map<int,OverlayObjectRef> &overlayObjects);
+
+private:
+ void lookupIcons(const QString &databasePath,
+ osmscout::MapData &data,
+ const TypeConfigRef &typeConfig,
+ const StyleConfigRef &styleConfig);
+};
+
+/**
+ * \ingroup QtAPI
+ */
+using IconLookupRef = std::shared_ptr<IconLookup> ;
+
+}
+#endif //OSMSCOUT_CLIENT_QT_ICONLOOKUP_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/include/osmscoutclientqt/MapWidget.h
^
|
@@ -35,6 +35,8 @@
#include <osmscoutclientqt/OSMScoutQt.h>
#include <osmscoutclientqt/OverlayObject.h>
#include <osmscoutclientqt/VehiclePosition.h>
+#include <osmscoutclientqt/IconAnimation.h>
+#include <osmscoutclientqt/IconLookup.h>
namespace osmscout {
@@ -89,6 +91,8 @@
Q_PROPERTY(QString vehicleInTunnelIconFile READ getVehicleInTunnelIconFile WRITE setVehicleInTunnelIconFile)
Q_PROPERTY(double vehicleIconSize READ getVehicleIconSize WRITE setVehicleIconSize)
+ Q_PROPERTY(bool interactiveIcons READ hasInteractiveIcons WRITE setInteractiveIcons)
+
private:
MapRenderer *renderer{nullptr};
@@ -97,6 +101,9 @@
InputHandler *inputHandler{nullptr};
TapRecognizer tapRecognizer;
+ IconLookup *iconLookup{nullptr};
+ IconAnimation iconAnimation;
+
bool preventMouseStealing{false};
bool finished{false};
@@ -166,6 +173,10 @@
void longTap(const int screenX, const int screenY, const double lat, const double lon);
void tapLongTap(const int screenX, const int screenY, const double lat, const double lon);
+ void iconTapped(QPoint screenCoord, double lat, double lon, QString databasePath,
+ QString objectType, quint64 objectId, int poiId, QString type,
+ QString name, QString altName, QString ref, QString operatorName, QString phone, QString website);
+
void stylesheetFilenameChanged();
void styleErrorsChanged();
void databaseLoaded(osmscout::GeoBox);
@@ -242,6 +253,8 @@
OverlayArea *createOverlayArea(QString type="_highlighted");
OverlayNode *createOverlayNode(QString type="_highlighted");
+ void deactivateIcons();
+
bool toggleDebug();
bool toggleInfo();
@@ -253,6 +266,8 @@
*/
void setVehicleScaleFactor(float factor);
+ void onIconFound(QPoint lookupCoord, MapIcon icon);
+
private slots:
virtual void onTap(const QPoint p);
@@ -300,6 +315,8 @@
}
}
+ MapViewStruct GetViewStruct() const;
+
inline VehiclePosition* GetVehiclePosition() const
{
return vehicle.position;
@@ -354,6 +371,13 @@
redraw();
}
+ bool hasInteractiveIcons() const
+ {
+ return iconLookup!=nullptr;
+ }
+
+ void setInteractiveIcons(bool b);
+
inline double GetLat() const
{
return view->center.GetLat();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/include/osmscoutclientqt/OSMScoutQt.h
^
|
@@ -33,6 +33,7 @@
#include <osmscoutclientqt/POILookupModule.h>
#include <osmscoutclientqt/VoiceManager.h>
#include <osmscoutclientqt/ElevationModule.h>
+#include <osmscoutclientqt/IconLookup.h>
#include <osmscoutclientqt/ClientQtImportExport.h>
@@ -306,6 +307,7 @@
StyleModule *MakeStyleModule();
POILookupModule *MakePOILookupModule();
ElevationModule *MakeElevationModule();
+ IconLookup *MakeIconLookup();
QString GetUserAgent() const;
QString GetCacheLocation() const;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/include/osmscoutclientqt/StyleFlagsModel.h
^
|
@@ -61,14 +61,14 @@
StyleFlagsModel();
~StyleFlagsModel() override;
- Q_INVOKABLE virtual int inline rowCount(const QModelIndex &/*parent = QModelIndex()*/) const
+ Q_INVOKABLE virtual int inline rowCount(const QModelIndex &/*parent = QModelIndex()*/) const override
{
return mapFlags.size();
};
- Q_INVOKABLE virtual QVariant data(const QModelIndex &index, int role) const;
- virtual QHash<int, QByteArray> roleNames() const;
- Q_INVOKABLE virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+ Q_INVOKABLE virtual QVariant data(const QModelIndex &index, int role) const override;
+ virtual QHash<int, QByteArray> roleNames() const override;
+ Q_INVOKABLE virtual Qt::ItemFlags flags(const QModelIndex &index) const override;
Q_INVOKABLE void setFlag(const QString &key, bool value);
};
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/src/meson.build
^
|
@@ -26,6 +26,8 @@
'src/osmscoutclientqt/MapProvider.cpp',
'src/osmscoutclientqt/AvailableMapsModel.cpp',
'src/osmscoutclientqt/FileDownloader.cpp',
+ 'src/osmscoutclientqt/IconAnimation.cpp',
+ 'src/osmscoutclientqt/IconLookup.cpp',
'src/osmscoutclientqt/MapManager.cpp',
'src/osmscoutclientqt/MapDownloadsModel.cpp',
'src/osmscoutclientqt/MapObjectInfoModel.cpp',
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/src/osmscoutclientqt/IconAnimation.cpp
^
|
@@ -0,0 +1,115 @@
+/*
+ OSMScout - a Qt backend for libosmscout and libosmscout-map
+ Copyright (C) 2022 Lukáš Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <osmscoutclientqt/IconAnimation.h>
+
+#include <cmath>
+
+namespace osmscout {
+
+IconAnimation::IconAnimation():
+ QObject(nullptr)
+{
+ timer.setSingleShot(false);
+ timer.setInterval(16);
+
+ connect(&timer, &QTimer::timeout, this, &IconAnimation::tick);
+}
+
+void IconAnimation::activate(const MapIcon &icon)
+{
+ QElapsedTimer t;
+ t.start();
+ icons.push_back(Animation{icon, icon.dimensions.width(), icon.dimensions.width(), State::FadeIn, t});
+ if (!timer.isActive()) {
+ timer.start();
+ }
+ emit update();
+}
+
+void IconAnimation::deactivateAll()
+{
+ for (Animation &animation: icons) {
+ if (animation.state != State::FadeOut) {
+ animation.startSize=animation.size;
+ animation.state = State::FadeOut;
+ animation.duration.restart();
+ }
+ }
+ if (!timer.isActive() && !icons.empty()) {
+ timer.start();
+ }
+ emit update();
+}
+
+void IconAnimation::paint(QPainter *painter, const MercatorProjection &projection)
+{
+ for (Animation &animation: icons) {
+ double x,y;
+ projection.GeoToPixel(animation.icon.coord, x, y);
+ double w = animation.size;
+ double h = animation.icon.image.height() * (w / animation.icon.image.width());
+
+ // draw semitransparent black circle as background
+ double r = std::sqrt(std::pow(w, 2) + std::pow(h, 2)) / 2;
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(QBrush(QColor::fromRgbF(0, 0, 0, 0.1)));
+ painter->drawEllipse(QPointF(x, y) ,r ,r);
+
+ painter->drawImage(QRectF(x-w/2, y-h/2, w, h), animation.icon.image);
+ }
+}
+
+void IconAnimation::tick()
+{
+ int running=0;
+ for (auto it=icons.begin(); it!=icons.end();) {
+ Animation &animation=*it;
+ if (animation.state==State::FadeIn) {
+ if (animation.duration.elapsed() >= animationDuration) {
+ animation.state=State::Full;
+ animation.size=animation.MaxSize();
+ it++;
+ } else {
+ double progress = double(animation.duration.elapsed()) / double(animationDuration);
+ animation.size = animation.startSize + (animation.MaxSize() - animation.startSize) * progress;
+ running++;
+ it++;
+ }
+ } else if (animation.state==State::FadeOut){
+ if (animation.duration.elapsed() >= animationDuration) {
+ it=icons.erase(it);
+ } else {
+ double progress = double(animation.duration.elapsed()) / double(animationDuration);
+ animation.size = animation.startSize - (animation.startSize - animation.MinSize()) * progress;
+ running++;
+ it++;
+ }
+ } else {
+ it++;
+ }
+ }
+ if (running==0) {
+ timer.stop();
+ }
+ emit update();
+}
+
+}
+
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/src/osmscoutclientqt/IconLookup.cpp
^
|
@@ -0,0 +1,300 @@
+/*
+ OSMScout - a Qt backend for libosmscout and libosmscout-map
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <osmscoutmapqt/SymbolRendererQt.h>
+#include <osmscoutclientqt/IconLookup.h>
+
+#include <QSvgRenderer>
+
+#include <cmath>
+
+namespace osmscout {
+
+IconLookup::IconLookup(QThread *thread, DBThreadRef dbThread, QString iconDirectory):
+ QObject(),
+ thread(thread),
+ dbThread(dbThread),
+ loadJob(nullptr)
+{
+ std::list<std::string> paths;
+ paths.push_back(iconDirectory.toStdString());
+
+ drawParameter.SetIconMode(osmscout::MapParameter::IconMode::Scalable);
+ drawParameter.SetPatternMode(osmscout::MapParameter::PatternMode::Scalable);
+ drawParameter.SetIconPaths(paths);
+ drawParameter.SetPatternPaths(paths);
+
+ connect(this, &IconLookup::iconRequested,
+ this, &IconLookup::onIconRequest,
+ Qt::QueuedConnection);
+}
+
+IconLookup::~IconLookup()
+{
+ if (thread != QThread::currentThread()) {
+ qWarning() << "Destroy" << this << "from incorrect thread;" << thread << "!=" << QThread::currentThread();
+ }
+ if (thread != nullptr) {
+ thread->quit();
+ }
+}
+
+void IconLookup::lookupIcons(const QString &databasePath,
+ osmscout::MapData &data,
+ const TypeConfigRef &typeConfig,
+ const StyleConfigRef &styleConfig)
+{
+ double iconSize = projection.ConvertWidthToPixel(drawParameter.GetIconSize());
+ double tapSizePixels = tapSize*dbThread->GetPhysicalDpi()/25.4;
+ QRectF tapRectangle(lookupCoord.x()-tapSizePixels/2, lookupCoord.y()-tapSizePixels/2, tapSizePixels, tapSizePixels);
+
+ auto CheckIcon=[&](const IconStyleRef &iconStyle,
+ const GeoCoord &coord,
+ const ObjectFileRef &objectRef,
+ int poiId,
+ const TypeInfoRef& type,
+ const FeatureValueBuffer& featureBuffer) {
+ if (iconStyle && iconStyle->IsVisible() && !iconStyle->IsOverlay()) {
+ double x, y;
+ projection.GeoToPixel(coord, x, y);
+ QRectF iconRect;
+
+ if (!iconStyle->GetIconName().empty()) {
+ iconRect=QRectF(x - iconSize/2, y-iconSize/2, iconSize, iconSize);
+ } else {
+ auto symbol=iconStyle->GetSymbol();
+ assert(symbol);
+ double w=symbol->GetWidth(projection);
+ double h=symbol->GetHeight(projection);
+ iconRect=QRectF(x - w/2, y-h/2, w, h);
+ }
+ if (iconRect.intersects(tapRectangle)) {
+ double distanceSquare=iconRect.contains(lookupCoord) ? 0 :
+ std::pow(lookupCoord.x()-x,2)+std::pow(lookupCoord.y()-y,2);
+
+ QString name;
+ QString altName;
+ QString ref;
+ QString operatorName;
+ QString phone;
+ QString website;
+ if (const osmscout::NameFeatureValue *nameValue=featureBuffer.findValue<osmscout::NameFeatureValue>();
+ nameValue!=nullptr){
+ name=QString::fromStdString(nameValue->GetLabel(Locale(), 0));
+ }
+ if (const osmscout::NameAltFeatureValue *altNameValue=featureBuffer.findValue<osmscout::NameAltFeatureValue>();
+ altNameValue != nullptr){
+ altName=QString::fromStdString(altNameValue->GetLabel(Locale(), 0));
+ }
+ if (const osmscout::RefFeatureValue *refValue=featureBuffer.findValue<osmscout::RefFeatureValue>();
+ refValue != nullptr){
+ ref=QString::fromStdString(refValue->GetLabel(Locale(), 0));
+ }
+ if (const osmscout::OperatorFeatureValue *operatorValue=featureBuffer.findValue<osmscout::OperatorFeatureValue>();
+ operatorValue != nullptr){
+ operatorName=QString::fromStdString(operatorValue->GetLabel(Locale(), 0));
+ }
+ if (const osmscout::PhoneFeatureValue *phoneValue=featureBuffer.findValue<osmscout::PhoneFeatureValue>();
+ phoneValue!=nullptr){
+ phone=QString::fromStdString(phoneValue->GetPhone());
+ }
+ if (const osmscout::WebsiteFeatureValue *websiteValue=featureBuffer.findValue<osmscout::WebsiteFeatureValue>();
+ websiteValue!=nullptr){
+ website=QString::fromStdString(websiteValue->GetWebsite());
+ }
+
+ findIcons.push_back(MapIcon{QPoint(x,y), iconRect, coord, distanceSquare, iconStyle,
+ databasePath, objectRef, poiId, QString::fromStdString(type->GetName()),
+ name, altName, ref, operatorName, phone, website, QImage()});
+ }
+ }
+ };
+
+ auto VisitArea=[&](const AreaRef a, int poiId) {
+ a->VisitRings([&](size_t, const Area::Ring&r, const TypeInfoRef& type) -> bool {
+ if (!type->GetIgnore()) {
+ auto iconStyle = styleConfig->GetAreaIconStyle(type, r.GetFeatureValueBuffer(), projection);
+ auto coord = r.center.value_or(r.GetBoundingBox().GetCenter());
+ CheckIcon(iconStyle, coord, a->GetObjectFileRef(), poiId, type, r.GetFeatureValueBuffer());
+ }
+ return true;
+ });
+ };
+
+ for (auto const &n:data.nodes) {
+ auto iconStyle = styleConfig->GetNodeIconStyle(n->GetFeatureValueBuffer(), projection);
+ CheckIcon(iconStyle,
+ n->GetCoords(),
+ n->GetObjectFileRef(),
+ 0,
+ n->GetFeatureValueBuffer().GetType(),
+ n->GetFeatureValueBuffer());
+ }
+ for (auto const &a:data.areas) {
+ VisitArea(a, 0);
+ }
+
+ for (auto const &o:overlayObjects){
+ if (o.second->getObjectType()==osmscout::RefType::refArea){
+ OverlayArea *oa=dynamic_cast<OverlayArea*>(o.second.get());
+ if (oa != nullptr) {
+ osmscout::AreaRef a = std::make_shared<osmscout::Area>();
+ if (oa->toArea(a, *typeConfig)) {
+ VisitArea(a, o.first);
+ }
+ }
+ } else if (o.second->getObjectType()==osmscout::RefType::refNode){
+ OverlayNode *oo=dynamic_cast<OverlayNode*>(o.second.get());
+ if (oo != nullptr) {
+ osmscout::NodeRef n = std::make_shared<osmscout::Node>();
+ if (oo->toNode(n, *typeConfig)) {
+ auto iconStyle = styleConfig->GetNodeIconStyle(n->GetFeatureValueBuffer(), projection);
+ CheckIcon(iconStyle,
+ n->GetCoords(),
+ n->GetObjectFileRef(),
+ o.first,
+ n->GetFeatureValueBuffer().GetType(),
+ n->GetFeatureValueBuffer());
+ }
+ }
+ }
+ }
+ overlayObjects.clear();
+}
+
+void IconLookup::onDatabaseLoaded(QString dbPath,QList<osmscout::TileRef> tiles)
+{
+ osmscout::MapData data;
+ loadJob->AddTileDataToMapData(dbPath,tiles,data);
+ dbThread->RunSynchronousJob([&](const std::list<DBInstanceRef> &databases){
+ for (auto &db: databases) {
+ if (db->path==dbPath){
+ TypeConfigRef typeConfig=db->GetDatabase()->GetTypeConfig();
+ StyleConfigRef styleConfig=db->GetStyleConfig();
+ this->lookupIcons(db->path, data, typeConfig, styleConfig);
+ }
+ }
+ });
+}
+
+
+void IconLookup::onLoadJobFinished(QMap<QString,QMap<osmscout::TileKey,osmscout::TileRef>> /*tiles*/)
+{
+ std::stable_sort(findIcons.begin(), findIcons.end(), [](const MapIcon &a, const MapIcon &b){
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/src/osmscoutclientqt/MapWidget.cpp
^
|
@@ -70,6 +70,8 @@
connect(this, &QQuickItem::widthChanged, this, &MapWidget::onResize);
connect(this, &QQuickItem::heightChanged, this, &MapWidget::onResize);
+ connect(&iconAnimation, &IconAnimation::update, this, &MapWidget::redraw);
+
// TODO, open last position, move to current position or get as constructor argument...
view = new MapView(this,
osmscout::GeoCoord(0.0, 0.0),
@@ -93,6 +95,10 @@
renderer->deleteLater();
renderer=nullptr;
}
+ if (iconLookup!=nullptr) {
+ iconLookup->deleteLater();
+ iconLookup = nullptr;
+ }
}
void MapWidget::translateToTouch(QMouseEvent* event, Qt::TouchPointStates states)
@@ -258,15 +264,8 @@
painter->setRenderHint(QPainter::TextAntialiasing, !animationInProgress);
painter->setRenderHint(QPainter::SmoothPixmapTransform, !animationInProgress);
- MapViewStruct request;
- QRectF boundingBox = contentsBoundingRect();
-
- request.coord = view->center;
- request.angle = view->angle;
- request.magnification = view->magnification;
- request.width = boundingBox.width();
- request.height = boundingBox.height();
- request.dpi = view->mapDpi;
+ MapViewStruct request=GetViewStruct();
+ QRectF boundingBox = contentsBoundingRect();
bool oldFinished = finished;
assert(renderer);
@@ -275,6 +274,8 @@
emit finishedChanged(finished);
}
+ iconAnimation.paint(painter, projection);
+
// render vehicle
if (vehicle.position && !vehicle.getIcon().isNull()){
QImage vehicleIcon=vehicle.getIcon();
@@ -699,13 +700,43 @@
return result;
}
+void MapWidget::deactivateIcons()
+{
+ iconAnimation.deactivateAll();
+}
void MapWidget::onTap(const QPoint p)
{
osmscout::GeoCoord coord;
- getProjection().PixelToGeo(p.x(), p.y(),
- coord);
- emit tap(p.x(), p.y(), coord.GetLat(), coord.GetLon());
+ getProjection().PixelToGeo(p.x(), p.y(),
+ coord);
+ emit tap(p.x(), p.y(), coord.GetLat(), coord.GetLon());
+ iconAnimation.deactivateAll();
+ if (iconLookup!=nullptr) {
+ iconLookup->RequestIcon(GetViewStruct(), p, renderer->getOverlayObjects());
+ }
+}
+
+void MapWidget::onIconFound(QPoint /*lookupCoord*/, MapIcon icon)
+{
+ if (icon.iconStyle->IsVisible()) {
+ if (!icon.iconStyle->GetIconName().empty()) {
+ qDebug() << "Object:" << QString::fromStdString(icon.objectRef.GetName())
+ << "icon:" << QString::fromStdString(icon.iconStyle->GetIconName())
+ << "name:" << icon.name;
+ } else {
+ assert(icon.iconStyle->GetSymbol());
+ qDebug() << "Object:" << QString::fromStdString(icon.objectRef.GetName())
+ << "symbol:" << QString::fromStdString(icon.iconStyle->GetSymbol()->GetName())
+ << "name:" << icon.name;
+ }
+ }
+
+ iconAnimation.activate(icon);
+
+ emit iconTapped(icon.screenCoord, icon.coord.GetLat(), icon.coord.GetLon(), icon.databasePath,
+ QString(icon.objectRef.GetTypeName()), icon.objectRef.GetFileOffset(), icon.poiId,
+ icon.type, icon.name, icon.altName, icon.ref, icon.operatorName, icon.phone, icon.website);
}
void MapWidget::onDoubleTap(const QPoint p)
@@ -761,6 +792,20 @@
inputHandler->widgetResized(QSizeF(width(), height()));
}
+MapViewStruct MapWidget::GetViewStruct() const
+{
+ MapViewStruct result;
+ QRectF boundingBox = contentsBoundingRect();
+
+ result.coord = view->center;
+ result.angle = view->angle;
+ result.magnification = view->magnification;
+ result.width = boundingBox.width();
+ result.height = boundingBox.height();
+ result.dpi = view->mapDpi;
+ return result;
+}
+
void MapWidget::SetVehiclePosition(QObject *o)
{
VehiclePosition *updated = dynamic_cast<VehiclePosition*>(o);
@@ -822,6 +867,21 @@
vehicle.inTunnelIcon=loadSVGIcon(iconDirectory, vehicle.inTunnelIconFile, iconPixelSize);
}
+void MapWidget::setInteractiveIcons(bool b)
+{
+ if (iconLookup!=nullptr && !b) {
+ iconLookup->deleteLater();
+ iconLookup = nullptr;
+ return;
+ }
+ if (iconLookup==nullptr && b) {
+ iconLookup=OSMScoutQt::GetInstance().MakeIconLookup();
+ connect(iconLookup, &IconLookup::iconFound,
+ this, &MapWidget::onIconFound,
+ Qt::QueuedConnection);
+ }
+}
+
QString MapWidget::GetStylesheetFilename() const
{
DBThreadRef dbThread=OSMScoutQt::GetInstance().GetDBThread();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-client-qt/src/osmscoutclientqt/OSMScoutQt.cpp
^
|
@@ -167,6 +167,8 @@
qRegisterMetaType<OverlayNode*>("OverlayNode*");
qRegisterMetaType<QList<LookupModule::ObjectInfo>>("QList<LookupModule::ObjectInfo>");
qRegisterMetaType<ElevationModule::ElevationPoints>("ElevationModule::ElevationPoints");
+ qRegisterMetaType<std::map<int,OverlayObjectRef>>("std::map<int,OverlayObjectRef>");
+ qRegisterMetaType<MapIcon>("MapIcon");
// register osmscout types for usage in QML
qmlRegisterType<AvailableMapsModel>(uri, versionMajor, versionMinor, "AvailableMapsModel");
@@ -365,6 +367,15 @@
return module;
}
+IconLookup* OSMScoutQt::MakeIconLookup()
+{
+ QThread *thread=makeThread("IconLookup");
+ IconLookup *iconLookup=new IconLookup(thread, dbThread, iconDirectory);
+ iconLookup->moveToThread(thread);
+ thread->start();
+ return iconLookup;
+}
+
MapRenderer* OSMScoutQt::MakeMapRenderer(RenderingType type)
{
QThread *thread=makeThread("MapRenderer");
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-import/src/osmscoutimport/Import.cpp
^
|
@@ -75,7 +75,7 @@
#include <osmscoutimport/GenTextIndex.h>
#endif
-#if defined(HAVE_STD_EXECUTION)
+#if defined(HAVE_STD_EXECUTION) and defined(TBB_HAS_SCHEDULER_INIT)
#include "tbb/task_scheduler_init.h"
#endif
@@ -332,9 +332,10 @@
bool Importer::Import(ImportProgress& progress)
{
-#if defined(HAVE_STD_EXECUTION)
+#if defined(HAVE_STD_EXECUTION) and defined(TBB_HAS_SCHEDULER_INIT)
// create tbb scheduler explicitly to avoid leaks by default scheduler
// NOTE that task_scheduler_init is deprecated, but there is no way to destruct global scheduler - it is leaking
+ // TODO: use oneapi::tbb::finalize when it becomes official
[[maybe_unused]] tbb::task_scheduler_init task_scheduler;
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-directx/include/osmscoutmapdirectx/MapPainterDirectX.h
^
|
@@ -66,7 +66,10 @@
DWRITE_TEXT_METRICS m_TextMetrics;
public:
- DirectXTextLayout(IDWriteFactory* m_pWriteFactory, double fontSize, IDWriteTextFormat* font, std::string text);
+ DirectXTextLayout(IDWriteFactory* m_pWriteFactory,
+ double fontSize,
+ IDWriteTextFormat* font,
+ const std::string& text);
~DirectXTextLayout();
};
@@ -77,16 +80,16 @@
friend DirectXLabelLayouter;
private:
- typedef std::unordered_map<uint32_t, IDWriteTextFormat*> FontMap;
+ using FontMap = std::unordered_map<uint32_t, IDWriteTextFormat *>;
FontMap m_Fonts;
- typedef std::unordered_map<uint32_t, ID2D1SolidColorBrush*> BrushMap;
+ using BrushMap = std::unordered_map<uint32_t, ID2D1SolidColorBrush *>;
BrushMap m_Brushs;
- typedef std::unordered_map<uint64_t, ID2D1PathGeometry*> GeometryMap;
+ using GeometryMap = std::unordered_map<uint64_t, ID2D1PathGeometry *>;
GeometryMap m_Geometries;
GeometryMap m_Polygons;
- typedef std::unordered_map<uint64_t, ID2D1Bitmap*> BitmapMap;
+ using BitmapMap = std::unordered_map<uint64_t, ID2D1Bitmap *>;
BitmapMap m_Bitmaps;
- typedef std::unordered_map<uint64_t, ID2D1StrokeStyle*> StrokeStyleMap;
+ using StrokeStyleMap = std::unordered_map<uint64_t, ID2D1StrokeStyle *>;
StrokeStyleMap m_StrokeStyles;
ID2D1StrokeStyle* m_dashLessStrokeStyle;
@@ -112,30 +115,30 @@
IDWriteTextFormat* GetFont(const Projection& projection, const MapParameter& parameter, double fontSize);
protected:
- virtual void AfterPreprocessing(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
-
- virtual void BeforeDrawing(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
-
- virtual void AfterDrawing(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
-
- virtual bool HasIcon(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- IconStyle& style);
-
-
- virtual double GetFontHeight(const Projection& projection,
- const MapParameter& parameter,
- double fontSize);
+ void AfterPreprocessing(const StyleConfig &styleConfig,
+ const Projection &projection,
+ const MapParameter ¶meter,
+ const MapData &data) override;
+
+ void BeforeDrawing(const StyleConfig &styleConfig,
+ const Projection &projection,
+ const MapParameter ¶meter,
+ const MapData &data) override;
+
+ void AfterDrawing(const StyleConfig &styleConfig,
+ const Projection &projection,
+ const MapParameter ¶meter,
+ const MapData &data) override;
+
+ bool HasIcon(const StyleConfig &styleConfig,
+ const Projection &projection,
+ const MapParameter ¶meter,
+ IconStyle &style) override;
+
+
+ double GetFontHeight(const Projection &projection,
+ const MapParameter ¶meter,
+ double fontSize) override;
DoubleRectangle GetTextDimension(const Projection& projection,
const MapParameter& parameter,
@@ -143,9 +146,9 @@
double fontSize,
const std::string& text);
- virtual void DrawGround(const Projection& projection,
- const MapParameter& parameter,
- const FillStyle& style);
+ void DrawGround(const Projection &projection,
+ const MapParameter ¶meter,
+ const FillStyle &style) override;
void DrawLabel(const Projection& projection,
const MapParameter& parameter,
@@ -155,48 +158,48 @@
void DrawGlyphs(const Projection &projection,
const MapParameter ¶meter,
- const osmscout::PathTextStyleRef style,
+ const osmscout::PathTextStyleRef& style,
const std::vector<osmscout::Glyph<DirectXNativeGlyph>> &glyphs);
/**
Register regular label with given text at the given pixel coordinate
in a style defined by the given LabelStyle.
*/
- virtual void RegisterRegularLabel(const Projection &projection,
- const MapParameter ¶meter,
- const std::vector<LabelData> &labels,
- const Vertex2D &position,
- double objectWidth);
+ void RegisterRegularLabel(const Projection &projection,
+ const MapParameter ¶meter,
+ const std::vector<LabelData> &labels,
+ const Vertex2D &position,
+ double objectWidth) override;
/**
* Register contour label
*/
- virtual void RegisterContourLabel(const Projection &projection,
- const MapParameter ¶meter,
- const PathLabelData &label,
- const LabelPath &labelPath);
-
- virtual void DrawLabels(const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
-
- virtual void DrawIcon(const IconStyle* style,
- double centerX, double centerY,
- double width, double height);
-
- virtual void DrawSymbol(const Projection& projection,
- const MapParameter& parameter,
- const Symbol& symbol,
- double x, double y);
-
- virtual void DrawPath(const Projection& projection,
- const MapParameter& parameter,
- const Color& color,
- double width,
- const std::vector<double>& dash,
- LineStyle::CapStyle startCap,
- LineStyle::CapStyle endCap,
- size_t transStart, size_t transEnd);
+ void RegisterContourLabel(const Projection &projection,
+ const MapParameter ¶meter,
+ const PathLabelData &label,
+ const LabelPath &labelPath) override;
+
+ void DrawLabels(const Projection &projection,
+ const MapParameter ¶meter,
+ const MapData &data) override;
+
+ void DrawIcon(const IconStyle *style,
+ double centerX, double centerY,
+ double width, double height) override;
+
+ void DrawSymbol(const Projection &projection,
+ const MapParameter ¶meter,
+ const Symbol &symbol,
+ double x, double y) override;
+
+ void DrawPath(const Projection &projection,
+ const MapParameter ¶meter,
+ const Color &color,
+ double width,
+ const std::vector<double> &dash,
+ LineStyle::CapStyle startCap,
+ LineStyle::CapStyle endCap,
+ size_t transStart, size_t transEnd) override;
std::shared_ptr<DirectXLabel> Layout(const Projection& projection,
const MapParameter& parameter,
@@ -217,21 +220,22 @@
ContourLabelHelper& helper);
*/
- virtual void DrawContourSymbol(const Projection& projection,
- const MapParameter& parameter,
- const Symbol& symbol,
- double space,
- size_t transStart, size_t transEnd);
-
- virtual void DrawArea(const Projection& projection,
- const MapParameter& parameter,
- const AreaData& area);
+ void DrawContourSymbol(const Projection &projection,
+ const MapParameter ¶meter,
+ const Symbol &symbol,
+ double space,
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-directx/include/osmscoutmapdirectx/PathTextRenderer.h
^
|
@@ -64,7 +64,7 @@
ID2D1Brush* brush;
};
-class PathTextRenderer : public IDWriteTextRenderer
+class PathTextRenderer final : public IDWriteTextRenderer
{
public:
// Static creation method that takes care of allocating a renderer
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-directx/src/osmscoutmapdirectx/MapPainterDirectX.cpp
^
|
@@ -77,20 +77,32 @@
std::wstring s2w(const std::string& str)
{
- if (str.empty()) return std::wstring();
- int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), nullptr, 0);
+ if (str.empty())
+ {
+ return std::wstring();
+ }
+
+ int size_needed = MultiByteToWideChar(CP_UTF8,
+ 0,
+ &str.data()[0],
+ (int)str.size(),
+ nullptr,
+ 0);
std::wstring wstrTo(size_needed, 0);
- MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
+ MultiByteToWideChar(CP_UTF8,
+ 0,
+ &str.data()[0],
+ (int)str.size(),
+ &wstrTo[0],
+ size_needed);
return wstrTo;
}
MapPainterDirectX::DirectXTextLayout::DirectXTextLayout(IDWriteFactory* pWriteFactory,
double fontSize,
IDWriteTextFormat* font,
- std::string text)
+ const std::string& text)
{
- DoubleRectangle dimension;
-
m_pWriteFactory=pWriteFactory;
#ifdef MBUC
@@ -196,9 +208,12 @@
ID2D1SolidColorBrush* solidColorBrush;
HRESULT hr = m_pRenderTarget->CreateSolidColorBrush(GetColorValue(color), &solidColorBrush);
if (SUCCEEDED(hr))
+ {
return m_Brushs.insert(std::make_pair(clr, solidColorBrush)).first->second;
- else
+ }
+ else {
return nullptr;
+ }
}
ID2D1SolidColorBrush* MapPainterDirectX::GetColorBrush(D2D1_COLOR_F& color)
@@ -215,20 +230,30 @@
ID2D1SolidColorBrush* solidColorBrush;
HRESULT hr = m_pRenderTarget->CreateSolidColorBrush(color, &solidColorBrush);
if (SUCCEEDED(hr))
+ {
return m_Brushs.insert(std::make_pair(clr, solidColorBrush)).first->second;
+ }
else
+ {
return nullptr;
+ }
}
ID2D1StrokeStyle* MapPainterDirectX::GetStrokeStyle(const std::vector<double>& dash)
{
- if (dash.size() > 0)
+ if (!dash.empty())
{
float* dashes = new float[dash.size()];
- for (size_t uj = 0; uj < dash.size(); uj++) dashes[uj] = (float)dash[uj];
+ for (size_t uj = 0; uj < dash.size(); uj++)
+ {
+ dashes[uj] = (float)dash[uj];
+ }
+
uint64_t id = crc64((const unsigned char*)dashes, dash.size() * sizeof(float));
if (m_StrokeStyles.find(id) != m_StrokeStyles.end())
+ {
return m_StrokeStyles[id];
+ }
else
{
ID2D1StrokeStyle* pStrokeStyle = nullptr;
@@ -325,27 +350,27 @@
);
}
- if (pDecoder)
+ if (pDecoder != nullptr)
{
pDecoder->Release();
pDecoder = nullptr;
}
- if (pSource)
+ if (pSource != nullptr)
{
pSource->Release();
pSource = nullptr;
}
- if (pStream)
+ if (pStream != nullptr)
{
pStream->Release();
pStream = nullptr;
}
- if (pConverter)
+ if (pConverter != nullptr)
{
pConverter->Release();
pConverter = nullptr;
}
- if (pScaler)
+ if (pScaler != nullptr)
{
pScaler->Release();
pScaler = nullptr;
@@ -389,10 +414,9 @@
if (SUCCEEDED(hr)) {
return m_Fonts.insert(std::make_pair(hash, pTextFormat)).first->second;
}
- else {
- std::cerr << "Could not get font " << parameter.GetFontName() << " " << fontSize << std::endl;
- return nullptr;
- }
+
+ std::cerr << "Could not get font " << parameter.GetFontName() << " " << fontSize << std::endl;
+ return nullptr;
}
void MapPainterDirectX::AfterPreprocessing(const StyleConfig& /*styleConfig*/,
@@ -493,16 +517,16 @@
double fontSize)
{
if (fontHeightMap.find(fontSize) != fontHeightMap.end())
- return fontHeightMap[fontSize];
- else
{
- DoubleRectangle dimension;
+ return fontHeightMap[fontSize];
+ }
- dimension = GetTextDimension(projection, parameter, /*objectWidth*/ -1, fontSize, "App");
- fontHeightMap[fontSize] = dimension.height;
+ DoubleRectangle dimension;
- return dimension.height;
- }
+ dimension = GetTextDimension(projection, parameter, /*objectWidth*/ -1, fontSize, "App");
+ fontHeightMap[fontSize] = dimension.height;
+
+ return dimension.height;
}
DoubleRectangle MapPainterDirectX::GetTextDimension(
@@ -615,7 +639,7 @@
void MapPainterDirectX::DrawGlyphs(const Projection &projection,
const MapParameter ¶meter,
- const osmscout::PathTextStyleRef style,
+ const osmscout::PathTextStyleRef& style,
const std::vector<osmscout::Glyph<DirectXNativeGlyph>> &glyphs)
{
//std::cout << "Draw glyphs..." << std::endl;
@@ -836,7 +860,7 @@
{
// TODO: Evaluate objectWidth and enableWrapping to
// support multi-line layouted labels
- auto font = GetFont(projection, parameter, fontSize);
+ auto *font = GetFont(projection, parameter, fontSize);
auto label = std::make_shared<MapPainterDirectX::DirectXLabel>(m_pWriteFactory, fontSize, font, text);
label->text=text;
@@ -971,9 +995,15 @@
}
}
if (hasFilling)
+ {
m_pRenderTarget->FillGeometry(pPathGeometry, GetColorBrush(fillStyle->GetFillColor()));
+ }
+
if (hasBorder)
+ {
m_pRenderTarget->DrawGeometry(pPathGeometry, GetColorBrush(borderStyle->GetColor()), borderWidth, GetStrokeStyle(borderStyle->GetDash()));
+ }
+
pPathGeometry->Release();
for (const auto& data : area.clippings) {
@@ -999,9 +1029,14 @@
}
}
if (hasFilling)
+ {
m_pRenderTarget->FillGeometry(pPathGeometry, GetColorBrush(fillStyle->GetFillColor()));
+ }
+
if (hasBorder)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-directx/src/osmscoutmapdirectx/PathTextRenderer.cpp
^
|
@@ -67,7 +67,10 @@
void PathTextRenderer::DestroyPathTextRenderer(PathTextRenderer *textRenderer)
{
if (textRenderer == nullptr)
+ {
return;
+ }
+
textRenderer->Release();
}
@@ -96,7 +99,9 @@
)
{
if (clientDrawingContext == nullptr)
+ {
return S_OK;
+ }
HRESULT hr;
@@ -112,10 +117,12 @@
hr = dc->geometry->ComputeLength(
prevTransform, &maxLength);
if (FAILED(hr))
+ {
return hr;
+ }
float totalRunLength = 0;
- for (int idx = 0; idx < glyphRun->glyphCount; ++idx) {
+ for (UINT32 idx = 0; idx < glyphRun->glyphCount; ++idx) {
totalRunLength += glyphRun->glyphAdvances[idx];
}
@@ -162,7 +169,9 @@
hr = dc->geometry->ComputePointAtLength(middle, D2D1::IdentityMatrix(), &pathOffset, &pathTangent);
if (hr != S_OK)
+ {
return hr;
+ }
// Lifted from the Microsoft sample.
// Create a rotation matrix to align the cluster to the path.
@@ -210,7 +219,7 @@
float /*baselineOriginX*/,
float /*baselineOriginY*/,
_In_ DWRITE_UNDERLINE const* /*underline*/,
- _In_opt_ IUnknown* clientDrawingEffect
+ _In_opt_ IUnknown* /*clientDrawingEffect*/
)
{
// NOPE.
@@ -252,7 +261,7 @@
)
{
// yes, we want pixel snapping ?
- *isDisabled = false;
+ *isDisabled = FALSE;
return S_OK;
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-opengl/CMakeLists.txt
^
|
@@ -1,7 +1,8 @@
set(HEADER_FILES
- include/osmscoutmapopengl/MapOpenGLImportExport.h
+ include/osmscoutmapopengl/MapOpenGLImportExport.h
include/osmscoutmapopengl/OpenGLMapData.h
include/osmscoutmapopengl/MapPainterOpenGL.h
+ include/osmscoutmapopengl/MapProjection.h
include/osmscoutmapopengl/Triangulate.h
include/osmscoutmapopengl/PNGLoaderOpenGL.h
include/osmscoutmapopengl/ShaderUtils.h
@@ -35,6 +36,7 @@
data/shaders/AreaVertexShader.vert
data/shaders/GroundFragmentShader.frag
data/shaders/PathVertexShader.vert
+ data/shaders/Projection.vert
data/shaders/GroundVertexShader.vert
data/shaders/TextFragmentShader.frag)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-opengl/include/meson.build
^
|
@@ -3,6 +3,7 @@
osmscoutmapopenglHeader = [
'osmscoutmapopengl/MapOpenGLImportExport.h',
'osmscoutmapopengl/MapPainterOpenGL.h',
+ 'osmscoutmapopengl/MapProjection.h',
'osmscoutmapopengl/OpenGLMapData.h',
'osmscoutmapopengl/Triangulate.h',
'osmscoutmapopengl/PNGLoaderOpenGL.h',
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-opengl/include/osmscoutmapopengl/MapPainterOpenGL.h
^
|
@@ -26,6 +26,7 @@
#include <osmscoutmapopengl/MapOpenGLFeatures.h>
#include <osmscoutmapopengl/OpenGLMapData.h>
#include <osmscoutmapopengl/MapOpenGLImportExport.h>
+#include <osmscoutmapopengl/MapProjection.h>
#include <osmscoutmapopengl/TextLoader.h>
namespace osmscout {
@@ -54,14 +55,7 @@
private:
bool initialized = false;
- int width;
- int height;
- double dpi;
-
- float minLon;
- float minLat;
- float maxLon;
- float maxLat;
+ MapProjection mapProjection;
float lookX;
float lookY;
@@ -79,47 +73,45 @@
osmscout::MapData mapData;
osmscout::StyleConfigRef styleConfig;
+ osmscout::StyleConfigRef dataStyleConfig;
osmscout::MapParameter parameter;
- osmscout::FillStyleRef landFill;
- osmscout::FillStyleRef seaFill;
- osmscout::GeoCoord center;
- osmscout::Magnification magnification;
/**
* Processes OSM area data, and converts to the format required by the OpenGL pipeline
*/
- void ProcessAreas(const osmscout::MapData &data, const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection, const osmscout::StyleConfigRef &styleConfig);
+ void ProcessAreas(const osmscout::MapData &data,
+ const osmscout::Projection &loadProjection,
+ const osmscout::StyleConfigRef &styleConfig);
/**
* Processes OSM ground data, and converts to the format required by the OpenGL pipeline
*/
- void ProcessGround(const osmscout::MapData &data, const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection, const osmscout::StyleConfigRef &styleConfig);
+ void ProcessGround(const osmscout::MapData &data,
+ const osmscout::Projection &loadProjection,
+ const osmscout::StyleConfigRef &styleConfig);
void ProcessWay(const osmscout::WayRef &way,
- const osmscout::Projection &projection,
+ const osmscout::Projection &loadProjection,
const osmscout::StyleConfigRef &styleConfig,
const WidthFeatureValueReader &widthReader);
/**
* Processes OSM way data, and converts to the format required by the OpenGL pipeline
*/
- void ProcessWays(const osmscout::MapData &data, const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection,
+ void ProcessWays(const osmscout::MapData &data,
+ const osmscout::Projection &loadProjection,
const osmscout::StyleConfigRef &styleConfig);
void ProcessNode(const osmscout::NodeRef &node,
- const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection,
+ const osmscout::Projection &loadProjection,
const osmscout::StyleConfigRef &styleConfig,
std::vector<int> &icons);
/**
* Processes OSM node data, and converts to the format required by the OpenGL pipeline
*/
- void ProcessNodes(const osmscout::MapData &data, const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection,
+ void ProcessNodes(const osmscout::MapData &data,
+ const osmscout::Projection &loadProjection,
const osmscout::StyleConfigRef &styleConfig);
/**
@@ -155,7 +147,7 @@
MapPainterOpenGL(int width, int height, double dpi,
const std::string &fontPath, const std::string &shaderDir,
- long defaultTextSize=12);
+ const osmscout::MapParameter ¶meter);
~MapPainterOpenGL();
@@ -179,13 +171,22 @@
/**
* Returns the visual center of the map.
*/
- osmscout::GeoCoord GetCenter();
+ osmscout::GeoCoord GetCenter() const;
+
+ void SetCenter(const osmscout::GeoCoord ¢er);
+
+ osmscout::Magnification GetMagnification() const;
+
+ void SetMagnification(const osmscout::Magnification &magnification);
+
+ MercatorProjection GetProjection() const;
/**
- * Processes all OSM data, and converts to the format required by the OpenGL pipeline.
- */
- void ProcessData(const osmscout::MapData &data, const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection, const osmscout::StyleConfigRef &styleConfig);
+ * Processes all OSM data, and converts to the format required by the OpenGL pipeline.
+ */
+ void ProcessData(const osmscout::MapData &data,
+ const osmscout::Projection &loadProjection,
+ const osmscout::StyleConfigRef &styleConfig);
/**
* Swaps currently drawn data and processed data.
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-opengl/include/osmscoutmapopengl/MapProjection.h
^
|
@@ -0,0 +1,51 @@
+#ifndef LIBOSMSCOUT_MAPPROJECTION_H
+#define LIBOSMSCOUT_MAPPROJECTION_H
+
+/*
+ This source is part of the libosmscout-map-opengl library
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <osmscout/GeoCoord.h>
+#include <osmscout/util/Magnification.h>
+#include <osmscout/util/Projection.h>
+
+#include <osmscoutmapopengl/MapOpenGLImportExport.h>
+
+namespace osmscout {
+
+ /**
+ * OpenGL renderer map projection
+ */
+ struct OSMSCOUT_MAP_OPENGL_API MapProjection
+ {
+ osmscout::GeoCoord center;
+ osmscout::Magnification magnification;
+ double dpi;
+ int width;
+ int height;
+
+ MercatorProjection Mercator() const
+ {
+ MercatorProjection mercator;
+ mercator.Set(center, magnification, dpi, width, height);
+ return mercator;
+ }
+ };
+}
+
+#endif //LIBOSMSCOUT_MAPPROJECTION_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-opengl/include/osmscoutmapopengl/OpenGLMapData.h
^
|
@@ -21,6 +21,7 @@
*/
#include <osmscoutmapopengl/ShaderUtils.h>
+#include <osmscoutmapopengl/MapProjection.h>
#include <osmscoutmap/MapParameter.h>
#include <osmscoutmap/MapPainter.h>
@@ -363,6 +364,16 @@
glUniform1f(uniform, value);
}
+ void SetMapProjection(const MapProjection &mapProjection)
+ {
+ AddUniform("windowWidth", mapProjection.width);
+ AddUniform("windowHeight", mapProjection.height);
+ AddUniform("centerLat", mapProjection.center.GetLat());
+ AddUniform("centerLon", mapProjection.center.GetLon());
+ AddUniform("magnification", mapProjection.magnification.GetMagnification());
+ AddUniform("dpi", mapProjection.dpi);
+ }
+
GLuint getVAO() {
return this->vao;
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-opengl/src/osmscoutmapopengl/MapPainterOpenGL.cpp
^
|
@@ -34,11 +34,10 @@
MapPainterOpenGL::MapPainterOpenGL(int width, int height, double dpi,
const std::string &fontPath, const std::string &shaderDir,
- long defaultTextSize)
- : width(width),
- height(height),
- dpi(dpi),
- textLoader(fontPath, defaultTextSize, dpi)
+ const osmscout::MapParameter ¶meter)
+ : mapProjection{GeoCoord(), Magnification(), dpi, width, height},
+ textLoader(fontPath, parameter.GetFontSize(), dpi),
+ parameter(parameter)
{
if (!textLoader.IsInitialized()) {
log.Error() << "Failed to initialize text loader!";
@@ -131,28 +130,22 @@
}
}
- void osmscout::MapPainterOpenGL::ProcessData(const osmscout::MapData &data, const osmscout::MapParameter ¶meter,
- const osmscout::Projection &projection,
+ void osmscout::MapPainterOpenGL::ProcessData(const osmscout::MapData &data,
+ const osmscout::Projection &loadProjection,
const osmscout::StyleConfigRef &styleConfig) {
- landFill=styleConfig.get()->GetLandFillStyle(projection);
- seaFill=styleConfig.get()->GetSeaFillStyle(projection);
+ dataStyleConfig = styleConfig;
- textLoader.SetDefaultFontSize(parameter.GetFontSize());
+ ProcessAreas(data, loadProjection, styleConfig);
- this->magnification = projection.GetMagnification();
- this->center = projection.GetCenter();
- this->parameter = parameter;
+ ProcessGround(data, loadProjection, styleConfig);
- ProcessAreas(data, parameter, projection, styleConfig);
+ ProcessWays(data, loadProjection, styleConfig);
- ProcessGround(data, parameter, projection, styleConfig);
-
- ProcessWays(data, parameter, projection, styleConfig);
-
- ProcessNodes(data, parameter, projection, styleConfig);
+ ProcessNodes(data, loadProjection, styleConfig);
}
void osmscout::MapPainterOpenGL::SwapData() {
+ styleConfig=dataStyleConfig;
SwapAreaData();
SwapGroundData();
@@ -162,155 +155,27 @@
void osmscout::MapPainterOpenGL::SwapAreaData() {
areaRenderer.SwapData();
-
- areaRenderer.BindBuffers();
- areaRenderer.UseProgram();
- areaRenderer.LoadVertices();
-
- areaRenderer.SetProjection(width, height);
- areaRenderer.SetModel();
- areaRenderer.SetView(lookX, lookY);
- areaRenderer.AddAttrib("position", 2, GL_FLOAT, 0);
- areaRenderer.AddAttrib("color", 4, GL_FLOAT, 2 * sizeof(GLfloat));
-
- areaRenderer.AddUniform("windowWidth", width);
- areaRenderer.AddUniform("windowHeight", height);
- areaRenderer.AddUniform("centerLat", center.GetLat());
- areaRenderer.AddUniform("centerLon", center.GetLon());
- areaRenderer.AddUniform("magnification", magnification.GetMagnification());
- areaRenderer.AddUniform("dpi", dpi);
}
void osmscout::MapPainterOpenGL::SwapGroundData() {
groundTileRenderer.SwapData();
-
- groundTileRenderer.BindBuffers();
- groundTileRenderer.UseProgram();
- groundTileRenderer.LoadVertices();
-
- groundTileRenderer.SetProjection(width, height);
- groundTileRenderer.SetModel();
- groundTileRenderer.SetView(lookX, lookY);
- groundTileRenderer.AddAttrib("position", 2, GL_FLOAT, 0);
- groundTileRenderer.AddAttrib("color", 3, GL_FLOAT, 2 * sizeof(GLfloat));
-
- groundTileRenderer.AddUniform("windowWidth", width);
- groundTileRenderer.AddUniform("windowHeight", height);
- groundTileRenderer.AddUniform("centerLat", center.GetLat());
- groundTileRenderer.AddUniform("centerLon", center.GetLon());
- groundTileRenderer.AddUniform("magnification", magnification.GetMagnification());
- groundTileRenderer.AddUniform("dpi", dpi);
-
groundRenderer.SwapData();
-
- groundRenderer.BindBuffers();
-
- groundRenderer.UseProgram();
- groundRenderer.LoadVertices();
-
- groundRenderer.SetProjection(width, height);
- groundRenderer.SetModel();
- groundRenderer.SetView(lookX, lookY);
- groundRenderer.AddAttrib("position", 2, GL_FLOAT, 0);
- groundRenderer.AddAttrib("color", 3, GL_FLOAT, 2 * sizeof(GLfloat));
-
- groundRenderer.AddUniform("centerLat", center.GetLat());
- groundRenderer.AddUniform("centerLon", center.GetLon());
- groundRenderer.AddUniform("magnification", magnification.GetMagnification());
- groundRenderer.AddUniform("dpi", dpi);
}
void osmscout::MapPainterOpenGL::SwapNodeData() {
imageRenderer.SwapData();
- imageRenderer.BindBuffers();
- imageRenderer.UseProgram();
- imageRenderer.LoadVertices();
- imageRenderer.LoadTextures();
-
- imageRenderer.AddAttrib("position", 2, GL_FLOAT, 0);
- imageRenderer.AddAttrib("index", 1, GL_FLOAT, 2 * sizeof(GLfloat));
- imageRenderer.AddAttrib("textureStart", 1, GL_FLOAT, 3 * sizeof(GLfloat));
- imageRenderer.AddAttrib("textureWidth", 1, GL_FLOAT, 4 * sizeof(GLfloat));
- imageRenderer.AddUniform("windowWidth", width);
- imageRenderer.AddUniform("windowHeight", height);
- imageRenderer.AddUniform("centerLat", center.GetLat());
- imageRenderer.AddUniform("centerLon", center.GetLon());
- imageRenderer.AddUniform("quadWidth", 14);
- imageRenderer.AddUniform("magnification", magnification.GetMagnification());
- imageRenderer.AddUniform("textureWidthSum", imageRenderer.GetTextureWidth());
- imageRenderer.AddUniform("dpi", dpi);
- imageRenderer.AddUniform("z", 0.001);
-
- imageRenderer.SetProjection(width, height);
- imageRenderer.SetModel();
- imageRenderer.SetView(lookX, lookY);
-
textRenderer.SetTextureHeight(textLoader.GetHeight());
textRenderer.SwapData();
-
- textRenderer.BindBuffers();
- textRenderer.UseProgram();
- textRenderer.LoadVertices();
- textRenderer.LoadTextures();
-
- textRenderer.AddAttrib("position", 2, GL_FLOAT, 0);
- textRenderer.AddAttrib("color", 4, GL_FLOAT, 2 * sizeof(GLfloat));
- textRenderer.AddAttrib("index", 1, GL_FLOAT, 6 * sizeof(GLfloat));
- textRenderer.AddAttrib("textureStart", 1, GL_FLOAT, 7 * sizeof(GLfloat));
- textRenderer.AddAttrib("textureWidth", 1, GL_FLOAT, 8 * sizeof(GLfloat));
- textRenderer.AddAttrib("positionOffset", 1, GL_FLOAT, 9 * sizeof(GLfloat));
- textRenderer.AddAttrib("startOffset", 1, GL_FLOAT, 10 * sizeof(GLfloat));
- textRenderer.AddUniform("windowWidth", width);
- textRenderer.AddUniform("windowHeight", height);
- textRenderer.AddUniform("centerLat", center.GetLat());
- textRenderer.AddUniform("centerLon", center.GetLon());
- textRenderer.AddUniform("textureHeight", textLoader.GetHeight());
- textRenderer.AddUniform("magnification", magnification.GetMagnification());
- textRenderer.AddUniform("textureWidthSum", imageRenderer.GetTextureWidth());
- textRenderer.AddUniform("dpi", dpi);
- textRenderer.AddUniform("z", 0.001);
-
- textRenderer.SetProjection(width, height);
- textRenderer.SetModel();
- textRenderer.SetView(lookX, lookY);
}
void osmscout::MapPainterOpenGL::SwapWayData() {
wayRenderer.SwapData();
-
- wayRenderer.BindBuffers();
- wayRenderer.UseProgram();
- wayRenderer.LoadVertices();
-
- wayRenderer.SetProjection(width, height);
- wayRenderer.SetModel();
- wayRenderer.SetView(lookX, lookY);
- wayRenderer.AddAttrib("position", 2, GL_FLOAT, 0);
- wayRenderer.AddAttrib("previous", 2, GL_FLOAT, 2 * sizeof(GLfloat));
- wayRenderer.AddAttrib("next", 2, GL_FLOAT, 4 * sizeof(GLfloat));
- wayRenderer.AddAttrib("color", 4, GL_FLOAT, 6 * sizeof(GLfloat));
- wayRenderer.AddAttrib("gapcolor", 4, GL_FLOAT, 10 * sizeof(GLfloat));
- wayRenderer.AddAttrib("index", 1, GL_FLOAT, 14 * sizeof(GLfloat));
- wayRenderer.AddAttrib("thickness", 1, GL_FLOAT, 15 * sizeof(GLfloat));
- wayRenderer.AddAttrib("border", 1, GL_FLOAT, 16 * sizeof(GLfloat));
- wayRenderer.AddAttrib("barycentric", 3, GL_FLOAT, 17 * sizeof(GLfloat));
- wayRenderer.AddAttrib("z", 1, GL_FLOAT, 20 * sizeof(GLfloat));
- wayRenderer.AddAttrib("dashsize", 1, GL_FLOAT, 21 * sizeof(GLfloat));
- wayRenderer.AddAttrib("length", 1, GL_FLOAT, 22 * sizeof(GLfloat));
- wayRenderer.AddUniform("windowWidth", width);
- wayRenderer.AddUniform("windowHeight", height);
- wayRenderer.AddUniform("centerLat", center.GetLat());
- wayRenderer.AddUniform("centerLon", center.GetLon());
- wayRenderer.AddUniform("magnification", magnification.GetMagnification());
- wayRenderer.AddUniform("dpi", dpi);
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-qt/CMakeLists.txt
^
|
@@ -4,10 +4,12 @@
set(HEADER_FILES
include/osmscoutmapqt/MapQtImportExport.h
include/osmscoutmapqt/MapPainterQt.h
+ include/osmscoutmapqt/SymbolRendererQt.h
)
set(SOURCE_FILES
src/osmscoutmapqt/MapPainterQt.cpp
+ src/osmscoutmapqt/SymbolRendererQt.cpp
)
osmscout_library_project(
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-qt/include/meson.build
^
|
@@ -2,7 +2,8 @@
osmscoutmapqtHeader = [
'osmscoutmapqt/MapQtImportExport.h',
- 'osmscoutmapqt/MapPainterQt.h'
+ 'osmscoutmapqt/MapPainterQt.h',
+ 'osmscoutmapqt/SymbolRendererQt.h'
]
install_headers(osmscoutmapqtHeader)
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-qt/include/osmscoutmapqt/SymbolRendererQt.h
^
|
@@ -0,0 +1,58 @@
+#ifndef OSMSCOUT_MAP_QT_SYMBOLRENDERERQT_H
+#define OSMSCOUT_MAP_QT_SYMBOLRENDERERQT_H
+
+/*
+ This source is part of the libosmscout-map library
+ Copyright (C) 2010 Tim Teulings
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <QPainter>
+
+#include <osmscoutmapqt/MapQtImportExport.h>
+#include <osmscoutmap/SymbolRenderer.h>
+
+#include <osmscoutmap/Styles.h>
+
+namespace osmscout {
+
+/**
+ * \ingroup Renderer
+ */
+class OSMSCOUT_MAP_QT_API SymbolRendererQt: public SymbolRenderer {
+private:
+ QPainter *painter; // not owning
+public:
+ explicit SymbolRendererQt(QPainter *painter);
+ SymbolRendererQt(const SymbolRendererQt&) = default;
+ SymbolRendererQt(SymbolRendererQt&&) = default;
+
+ ~SymbolRendererQt() override = default;
+
+ SymbolRendererQt& operator=(const SymbolRendererQt&) = default;
+ SymbolRendererQt& operator=(SymbolRendererQt&&) = default;
+
+protected:
+ void SetFill(const FillStyleRef &fillStyle) const override;
+ void SetBorder(const BorderStyleRef &borderStyle, double screenMmInPixel) const override;
+ void DrawPolygon(const std::vector<Vertex2D> &polygonPixels) const override;
+ void DrawRect(double x, double y, double w, double h) const override;
+ void DrawCircle(double x, double y, double radius) const override;
+};
+}
+
+#endif // OSMSCOUT_MAP_QT_SYMBOLRENDERERQT_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-qt/src/meson.build
^
|
@@ -1,5 +1,6 @@
osmscoutmapqtSrc = [
- 'src/osmscoutmapqt/MapPainterQt.cpp'
+ 'src/osmscoutmapqt/MapPainterQt.cpp',
+ 'src/osmscoutmapqt/SymbolRendererQt.cpp'
]
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-qt/src/osmscoutmapqt/MapPainterQt.cpp
^
|
@@ -34,6 +34,7 @@
#include <osmscout/util/File.h>
#include <osmscout/util/Geometry.h>
#include <osmscout/util/Logger.h>
+#include <osmscoutmapqt/SymbolRendererQt.h>
namespace osmscout {
@@ -641,172 +642,12 @@
}
void MapPainterQt::DrawSymbol(const Projection& projection,
- const MapParameter& parameter,
+ const MapParameter& /*parameter*/,
const Symbol& symbol,
double x, double y)
{
- double minX;
- double minY;
- double maxX;
- double maxY;
- double centerX;
- double centerY;
-
- symbol.GetBoundingBox(projection,minX,minY,maxX,maxY);
-
- centerX=(minX+maxX)/2;
- centerY=(minY+maxY)/2;
-
- for (const auto& primitive : symbol.GetPrimitives()) {
- const DrawPrimitive *primitivePtr=primitive.get();
-
- if (const auto *polygon = dynamic_cast<const PolygonPrimitive*>(primitivePtr);
- polygon != nullptr) {
-
- FillStyleRef fillStyle=polygon->GetFillStyle();
- BorderStyleRef borderStyle=polygon->GetBorderStyle();
-
- if (fillStyle) {
- SetFill(projection,
- parameter,
- *fillStyle);
- }
- else {
- painter->setBrush(Qt::NoBrush);
- }
-
- if (borderStyle) {
- SetBorder(projection,
- parameter,
- *borderStyle);
- }
- else {
- painter->setPen(Qt::NoPen);
- }
-
- QPainterPath path;
-
- if (polygon->GetProjectionMode()==DrawPrimitive::ProjectionMode::MAP) {
- for (auto pixel=polygon->GetCoords().begin();
- pixel!=polygon->GetCoords().end();
- ++pixel) {
- if (pixel==polygon->GetCoords().begin()) {
- path.moveTo(x+projection.ConvertWidthToPixel(pixel->GetX())-centerX,
- y+projection.ConvertWidthToPixel(pixel->GetY())-centerY);
- }
- else {
- path.lineTo(x+projection.ConvertWidthToPixel(pixel->GetX())-centerX,
- y+projection.ConvertWidthToPixel(pixel->GetY())-centerY);
- }
- }
- }
- else {
- for (auto pixel=polygon->GetCoords().begin();
- pixel!=polygon->GetCoords().end();
- ++pixel) {
- if (pixel==polygon->GetCoords().begin()) {
- path.moveTo(x+projection.GetMeterInPixel()*pixel->GetX()-centerX,
- y+projection.GetMeterInPixel()*pixel->GetY()-centerY);
- }
- else {
- path.lineTo(x+projection.GetMeterInPixel()*pixel->GetX()-centerX,
- y+projection.GetMeterInPixel()*pixel->GetY()-centerY);
-
- }
- }
- }
-
- painter->drawPath(path);
- }
- else if (const auto *rectangle = dynamic_cast<const RectanglePrimitive*>(primitivePtr);
- rectangle != nullptr) {
-
- FillStyleRef fillStyle=rectangle->GetFillStyle();
- BorderStyleRef borderStyle=rectangle->GetBorderStyle();
-
- if (fillStyle) {
- SetFill(projection,
- parameter,
- *fillStyle);
- }
- else {
- painter->setBrush(Qt::NoBrush);
- }
-
- if (borderStyle) {
- SetBorder(projection,
- parameter,
- *borderStyle);
- }
- else {
- painter->setPen(Qt::NoPen);
- }
-
- QPainterPath path;
-
- if (rectangle->GetProjectionMode()==DrawPrimitive::ProjectionMode::MAP) {
- path.addRect(x+projection.ConvertWidthToPixel(rectangle->GetTopLeft().GetX())-centerX,
- y+projection.ConvertWidthToPixel(rectangle->GetTopLeft().GetY())-centerY,
- projection.ConvertWidthToPixel(rectangle->GetWidth()),
- projection.ConvertWidthToPixel(rectangle->GetHeight()));
- }
- else {
- path.addRect(x+projection.GetMeterInPixel()*rectangle->GetTopLeft().GetX()-centerX,
- y+projection.GetMeterInPixel()*rectangle->GetTopLeft().GetY()-centerY,
- projection.GetMeterInPixel()*rectangle->GetWidth(),
- projection.GetMeterInPixel()*rectangle->GetHeight());
- }
-
- painter->drawPath(path);
- }
- else if (const auto *circle = dynamic_cast<const CirclePrimitive*>(primitivePtr);
- circle != nullptr) {
-
- FillStyleRef fillStyle=circle->GetFillStyle();
- BorderStyleRef borderStyle=circle->GetBorderStyle();
- QPointF center;
- double radius;
-
- if (circle->GetProjectionMode()==DrawPrimitive::ProjectionMode::MAP) {
- center=QPointF(x+projection.ConvertWidthToPixel(circle->GetCenter().GetX())-centerX,
- y+projection.ConvertWidthToPixel(circle->GetCenter().GetY())-centerY);
-
- radius=projection.ConvertWidthToPixel(circle->GetRadius());
- }
- else {
- center=QPointF(x+projection.GetMeterInPixel()*circle->GetCenter().GetX()-centerX,
- y+projection.GetMeterInPixel()*circle->GetCenter().GetY()-centerY);
-
- radius=projection.GetMeterInPixel()*circle->GetRadius();
- }
-
- if (fillStyle) {
- SetFill(projection,
- parameter,
- *fillStyle);
- }
- else {
- painter->setBrush(Qt::NoBrush);
- }
-
- if (borderStyle) {
- SetBorder(projection,
- parameter,
- *borderStyle);
- }
- else {
- painter->setPen(Qt::NoPen);
- }
-
- QPainterPath path;
-
- path.addEllipse(center,
- radius,
- radius);
-
- painter->drawPath(path);
- }
- }
+ SymbolRendererQt renderer(painter);
+ renderer.Render(symbol, Vertex2D(x, y), projection);
}
void MapPainterQt::DrawPath(const Projection& /*projection*/,
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map-qt/src/osmscoutmapqt/SymbolRendererQt.cpp
^
|
@@ -0,0 +1,119 @@
+/*
+ This source is part of the libosmscout-map library
+ Copyright (C) 2010 Tim Teulings
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <osmscout/util/Logger.h>
+#include <osmscoutmapqt/SymbolRendererQt.h>
+
+#include <QPainterPath>
+
+namespace osmscout {
+SymbolRendererQt::SymbolRendererQt(QPainter *painter):
+ painter(painter)
+{}
+
+void SymbolRendererQt::SetFill(const FillStyleRef &fillStyle) const
+{
+ if (fillStyle) {
+ if (fillStyle->HasPattern()) {
+ log.Warn() << "Pattern is not supported for symbols";
+ }
+ if (fillStyle->GetFillColor().IsVisible()) {
+ painter->setBrush(QBrush(QColor::fromRgbF(fillStyle->GetFillColor().GetR(),
+ fillStyle->GetFillColor().GetG(),
+ fillStyle->GetFillColor().GetB(),
+ fillStyle->GetFillColor().GetA())));
+ } else {
+ painter->setBrush(Qt::NoBrush);
+ }
+ } else {
+ painter->setBrush(Qt::NoBrush);
+ }
+}
+
+void SymbolRendererQt::SetBorder(const BorderStyleRef &borderStyle, double screenMmInPixel) const
+{
+ if (borderStyle) {
+ double borderWidth=borderStyle->GetWidth() * screenMmInPixel;
+
+ if (borderWidth>=0) {
+ QPen pen;
+
+ pen.setColor(QColor::fromRgbF(borderStyle->GetColor().GetR(),
+ borderStyle->GetColor().GetG(),
+ borderStyle->GetColor().GetB(),
+ borderStyle->GetColor().GetA()));
+ pen.setWidthF(borderWidth);
+
+ if (borderStyle->GetDash().empty()) {
+ pen.setStyle(Qt::SolidLine);
+ pen.setCapStyle(Qt::RoundCap);
+ }
+ else {
+ QVector<qreal> dashes;
+
+ for (double i : borderStyle->GetDash()) {
+ dashes << i;
+ }
+
+ pen.setDashPattern(dashes);
+ pen.setCapStyle(Qt::FlatCap);
+ }
+
+ painter->setPen(pen);
+ }
+ else {
+ painter->setPen(Qt::NoPen);
+ }
+ } else {
+ painter->setPen(Qt::NoPen);
+ }
+}
+
+void SymbolRendererQt::DrawPolygon(const std::vector<Vertex2D> &polygonPixels) const
+{
+ QPainterPath path;
+
+ for (auto pixel=polygonPixels.begin();
+ pixel!=polygonPixels.end();
+ ++pixel) {
+ if (pixel==polygonPixels.begin()) {
+ path.moveTo(pixel->GetX(), pixel->GetY());
+ } else {
+ path.lineTo(pixel->GetX(), pixel->GetY());
+ }
+ }
+ painter->drawPath(path);
+}
+
+void SymbolRendererQt::DrawRect(double x, double y, double w, double h) const
+{
+ QPainterPath path;
+ path.addRect(x, y, w, h);
+ painter->drawPath(path);
+}
+
+void SymbolRendererQt::DrawCircle(double x, double y, double radius) const
+{
+ QPainterPath path;
+ path.addEllipse(QPointF(x,y), radius, radius);
+ painter->drawPath(path);
+}
+
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/CMakeLists.txt
^
|
@@ -16,6 +16,7 @@
include/osmscoutmap/DataTileCache.h
include/osmscoutmap/MapTileCache.h
include/osmscoutmap/MapPainterNoOp.h
+ include/osmscoutmap/SymbolRenderer.h
${CMAKE_CURRENT_BINARY_DIR}/include/osmscoutmap/MapFeatures.h
)
@@ -36,6 +37,7 @@
src/osmscoutmap/DataTileCache.cpp
src/osmscoutmap/MapTileCache.cpp
src/osmscoutmap/MapPainterNoOp.cpp
+ src/osmscoutmap/SymbolRenderer.cpp
)
osmscout_library_project(
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/include/meson.build
^
|
@@ -17,7 +17,8 @@
'osmscoutmap/MapTileCache.h',
'osmscoutmap/MapData.h',
'osmscoutmap/MapService.h',
- 'osmscoutmap/MapPainterNoOp.h'
+ 'osmscoutmap/MapPainterNoOp.h',
+ 'osmscoutmap/SymbolRenderer.h'
]
install_headers(osmscoutmapHeader)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/include/osmscoutmap/LabelLayouter.h
^
|
@@ -309,206 +309,275 @@
labelInstances.clear();
}
- bool CheckLabelCollision(const std::vector<uint64_t> &canvas,
- const Mask &mask,
- int64_t viewportHeight) const
- {
- bool collision=false;
- for (int r=std::max(0,mask.rowFrom); !collision && r<=std::min((int)viewportHeight-1, mask.rowTo); r++){
- for (int c=std::max(0,mask.cellFrom); !collision && c<=std::min((int)mask.size()-1,mask.cellTo); c++){
- collision |= (mask.d[c] & canvas[r*mask.size() + c]) != 0;
- }
- }
- return collision;
- }
-
- void MarkLabelPlace(std::vector<uint64_t> &canvas,
- const Mask &mask,
- int viewportHeight) const
- {
- for (int r=std::max(0,mask.rowFrom); r<=std::min((int)viewportHeight-1, mask.rowTo); r++){
- for (int c=std::max(0,mask.cellFrom); c<=std::min((int)mask.size()-1, mask.cellTo); c++){
- canvas[r*mask.size() + c] = mask.d[c] | canvas[r*mask.size() + c];
- }
- }
- }
-
// Something is an overlay, if its alpha is <0.8
- bool IsOverlay(const LabelData &labelData) const
+ static bool IsOverlay(const LabelData &labelData)
{
return labelData.alpha < 0.8;
}
- void Layout(const Projection& projection,
- const MapParameter& parameter)
- {
+ /**
+ * Layout job initializes separate canvases for icons/symbols, labels and overlay labels.
+ * Then takes all registered labels and contour labels and sort them by priority.
+ * Note that labels includes standard labels, icons/symbols and overlay labels.
+ * As final step process labels and contour labels (from highest priority) and check
+ * its visual rectangle in corresponding canvas. When pixels are not occupied yet,
+ * it is added and pixels on canvas mark.
+ */
+ struct LayoutJob {
+ DoubleRectangle layoutViewport;
+
+ double iconPadding;
+ double labelPadding;
+ double shieldLabelPadding;
+ double contourLabelPadding;
+ double overlayLabelPadding;
+
+ int64_t rowSize;
+
std::vector<ContourLabelType> allSortedContourLabels;
std::vector<LabelInstanceType> allSortedLabels;
- double iconPadding = projection.ConvertWidthToPixel(parameter.GetIconPadding());
- double labelPadding = projection.ConvertWidthToPixel(parameter.GetLabelPadding());
- double shieldLabelPadding = projection.ConvertWidthToPixel(parameter.GetPlateLabelPadding());
- double contourLabelPadding = projection.ConvertWidthToPixel(parameter.GetContourLabelPadding());
- double overlayLabelPadding = projection.ConvertWidthToPixel(parameter.GetOverlayLabelPadding());
-
- std::swap(allSortedLabels, labelInstances);
- std::swap(allSortedContourLabels, contourLabelInstances);
-
- // sort labels by priority and position (to be deterministic)
- std::stable_sort(allSortedLabels.begin(),
- allSortedLabels.end(),
- LabelInstanceSorter<NativeGlyph, NativeLabel>);
- std::stable_sort(allSortedContourLabels.begin(),
- allSortedContourLabels.end(),
- ContourLabelSorter<NativeGlyph>);
+ std::vector<uint64_t> iconCanvas;
+ std::vector<uint64_t> labelCanvas;
+ std::vector<uint64_t> overlayCanvas;
+
+ LayoutJob(const DoubleRectangle &layoutViewport,
+ const Projection& projection,
+ const MapParameter& parameter):
+ layoutViewport(layoutViewport),
+ iconPadding(projection.ConvertWidthToPixel(parameter.GetIconPadding())),
+ labelPadding(projection.ConvertWidthToPixel(parameter.GetLabelPadding())),
+ shieldLabelPadding(projection.ConvertWidthToPixel(parameter.GetPlateLabelPadding())),
+ contourLabelPadding(projection.ConvertWidthToPixel(parameter.GetContourLabelPadding())),
+ overlayLabelPadding(projection.ConvertWidthToPixel(parameter.GetOverlayLabelPadding())),
+ rowSize((int64_t(layoutViewport.width) / 64)+1)
+ {
+ iconCanvas.resize((size_t)(rowSize*layoutViewport.height));
+ labelCanvas.resize((size_t)(rowSize*layoutViewport.height));
+ overlayCanvas.resize((size_t)(rowSize*layoutViewport.height));
+ }
- // compute collisions, hide some labels
- int64_t rowSize = (layoutViewport.width / 64)+1;
- std::vector<uint64_t> iconCanvas((size_t)(rowSize*layoutViewport.height));
- std::vector<uint64_t> labelCanvas((size_t)(rowSize*layoutViewport.height));
- std::vector<uint64_t> overlayCanvas((size_t)(rowSize*layoutViewport.height));
-
- auto labelIter = allSortedLabels.begin();
- auto contourLabelIter = allSortedContourLabels.begin();
- while (labelIter != allSortedLabels.end()
- || contourLabelIter != allSortedContourLabels.end()) {
-
- auto currentLabel = labelIter;
- auto currentContourLabel = contourLabelIter;
- if (currentLabel != allSortedLabels.end()
- && currentContourLabel != allSortedContourLabels.end()) {
- if (currentLabel->priority != currentContourLabel->priority) {
- if (currentLabel->priority < currentContourLabel->priority) {
- currentContourLabel = allSortedContourLabels.end();
- } else {
- currentLabel = allSortedLabels.end();
- }
+ LayoutJob(const LayoutJob&) = delete;
+ LayoutJob(LayoutJob&&) = delete;
+ ~LayoutJob() = default;
+ LayoutJob& operator=(const LayoutJob&) = delete;
+ LayoutJob& operator=(LayoutJob&&) = delete;
+
+ void Swap(std::vector<LabelInstanceType> &labelInstances,
+ std::vector<ContourLabelType> &contourLabelInstances)
+ {
+ std::swap(allSortedLabels, labelInstances);
+ std::swap(allSortedContourLabels, contourLabelInstances);
+ }
+
+ void SortLabels()
+ {
+ // sort labels by priority and position (to be deterministic)
+ std::stable_sort(allSortedLabels.begin(),
+ allSortedLabels.end(),
+ LabelInstanceSorter<NativeGlyph, NativeLabel>);
+ std::stable_sort(allSortedContourLabels.begin(),
+ allSortedContourLabels.end(),
+ ContourLabelSorter<NativeGlyph>);
+ }
+
+ void MarkLabelPlace(std::vector<uint64_t> &canvas,
+ const Mask &mask,
+ int viewportHeight) const
+ {
+ for (int r=std::max(0,mask.rowFrom); r<=std::min((int)viewportHeight-1, mask.rowTo); r++){
+ for (int c=std::max(0,mask.cellFrom); c<=std::min((int)mask.size()-1, mask.cellTo); c++){
+ canvas[r*mask.size() + c] = mask.d[c] | canvas[r*mask.size() + c];
}
}
+ }
- if (currentLabel != allSortedLabels.end()){
- Mask m(rowSize);
- std::vector<Mask> masks(currentLabel->elements.size(), m);
- std::vector<std::vector<uint64_t> *> canvases(currentLabel->elements.size(), nullptr);
-
- std::vector<typename LabelInstance<NativeGlyph, NativeLabel>::Element> visibleElements;
-
- for (size_t eli=0; eli < currentLabel->elements.size(); eli++){
- const typename LabelInstance<NativeGlyph, NativeLabel>::Element& element = currentLabel->elements[eli];
- Mask& row=masks[eli];
-
- double padding;
- if (element.labelData.type==LabelData::Icon || element.labelData.type==LabelData::Symbol) {
- padding = iconPadding;
- } else if (IsOverlay(element.labelData)) {
- padding = overlayLabelPadding;
- } else if (dynamic_cast<const ShieldStyle*>(element.labelData.style.get())!=nullptr){
- padding = shieldLabelPadding;
- } else {
- padding = labelPadding;
- }
-
- IntRectangle rectangle{ (int)std::floor(element.x - layoutViewport.x - padding),
- (int)std::floor(element.y - layoutViewport.y - padding),
- 0, 0 };
- std::vector<uint64_t> *canvas = &labelCanvas;
- if (element.labelData.type==LabelData::Icon || element.labelData.type==LabelData::Symbol){
- if (element.labelData.iconStyle->IsOverlay()) {
- rectangle.width = 0;
- rectangle.height = 0;
- }
- else {
- rectangle.width = std::ceil(element.labelData.iconWidth + 2*padding);
- rectangle.height = std::ceil(element.labelData.iconHeight + 2*padding);
- }
- canvas = &iconCanvas;
+ bool CheckLabelCollision(const std::vector<uint64_t> &canvas,
+ const Mask &mask,
+ int64_t viewportHeight) const
+ {
+ bool collision=false;
+ for (int r=std::max(0,mask.rowFrom); !collision && r<=std::min((int)viewportHeight-1, mask.rowTo); r++){
+ for (int c=std::max(0,mask.cellFrom); !collision && c<=std::min((int)mask.size()-1,mask.cellTo); c++){
+ collision |= (mask.d[c] & canvas[r*mask.size() + c]) != 0;
+ }
+ }
+ return collision;
+ }
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/include/osmscoutmap/MapPainter.h
^
|
@@ -57,25 +57,29 @@
FirstStep = 0,
Initialize = 0, //!< Setup internal state of renderer for executing next steps with current projection and parameters
DumpStatistics = 1, //!< Prints details for debugging, if debug flag (performance, data) is set in renderer parameter
- PreprocessData = 2, //!< Convert geographical coordinates of object points to screen coordinates,
- Prerender = 3, //!< Implementation specific preparison
- DrawBaseMapTiles = 4, //!< Draw unknown/sea/land tiles and tiles with "coastlines" from base map
- DrawGroundTiles = 5, //!< Same as previous, but from main database
- DrawOSMTileGrids = 6, //!< If special style exists, renders grid corresponding to OSM tiles
- DrawAreas = 7,
- DrawWays = 8,
- DrawWayDecorations = 9,
- DrawWayContourLabels = 10,
- PrepareAreaLabels = 11,
- DrawAreaBorderLabels = 12,
- DrawAreaBorderSymbols = 13,
- PrepareNodeLabels = 14,
- PrepareRouteLabels = 15,
- DrawContourLines = 16,
- DrawHillShading = 17,
- DrawLabels = 18,
- Postrender = 19, //!< Implementation specific final step
- LastStep = 19
+ CalculatePaths = 2, //!< Calculate the paths to draw based on the given ways
+ CalculateWayShields = 3, //!< Calculate the label shields on the ways
+ ProcessAreas = 4, //!< Process (complex) areas for rendering
+ ProcessRoutes = 5, //!< Process routes for rendering
+ AfterPreprocessing = 6, //!< Additional postprocessing
+ Prerender = 7, //!< Implementation specific preparison
+ DrawBaseMapTiles = 8, //!< Draw unknown/sea/land tiles and tiles with "coastlines" from base map
+ DrawGroundTiles = 9, //!< Same as previous, but from main database
+ DrawOSMTileGrids = 10, //!< If special style exists, renders grid corresponding to OSM tiles
+ DrawAreas = 11,
+ DrawWays = 12,
+ DrawWayDecorations = 13,
+ DrawWayContourLabels = 14,
+ PrepareAreaLabels = 15,
+ DrawAreaBorderLabels = 16,
+ DrawAreaBorderSymbols = 17,
+ PrepareNodeLabels = 18,
+ PrepareRouteLabels = 19,
+ DrawContourLines = 20,
+ DrawHillShading = 21,
+ DrawLabels = 22,
+ Postrender = 23, //!< Implementation specific final step
+ LastStep = 23
};
/**
@@ -223,7 +227,6 @@
std::list<AreaData> areaData; //!< Internal processing list for area rendering
std::list<WayData> wayData; //!< Internal processing list for way rendering
std::list<WayPathData> wayPathData;
- // std::list<RouteData> routeData;
std::list<RouteLabelData> routeLabelData;
std::vector<TextStyleRef> textStyles; //!< Temporary storage for StyleConfig return value
@@ -310,20 +313,10 @@
int8_t CalculateLineLayer(const FeatureValueBuffer& buffer) const;
- void CalculatePaths(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const Way& way);
-
- void PrepareWays(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
-
- void PrepareRoutes(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
+ void CalculateWayPaths(const StyleConfig& styleConfig,
+ const Projection& projection,
+ const MapParameter& parameter,
+ const Way& way);
bool PrepareAreaRing(const StyleConfig& styleConfig,
const Projection& projection,
@@ -344,11 +337,6 @@
const MapParameter& parameter,
const AreaData& areaData);
- void PrepareAreas(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data);
-
void RegisterPointWayLabel(const Projection& projection,
const MapParameter& parameter,
const PathShieldStyleRef& style,
@@ -372,7 +360,7 @@
bool CalculateWayShieldLabels(const StyleConfig& styleConfig,
const Projection& projection,
const MapParameter& parameter,
- const Way& data);
+ const Way& way);
bool DrawWayContourLabel(const StyleConfig& styleConfig,
const Projection& projection,
@@ -418,10 +406,26 @@
const MapParameter& parameter,
const MapData& data);
- void PreprocessData(const Projection& projection,
+ void CalculatePaths(const Projection& projection,
const MapParameter& parameter,
const MapData& data);
+ void CalculateWayShields(const Projection& projection,
+ const MapParameter& parameter,
+ const MapData& data);
+
+ void ProcessAreas(const Projection& projection,
+ const MapParameter& parameter,
+ const MapData& data);
+
+ void ProcessRoutes(const Projection& projection,
+ const MapParameter& parameter,
+ const MapData& data);
+
+ void AfterPreprocessing(const Projection& projection,
+ const MapParameter& parameter,
+ const MapData& data);
+
void Prerender(const Projection& projection,
const MapParameter& parameter,
const MapData& data);
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/include/osmscoutmap/StyleConfig.h
^
|
@@ -669,7 +669,7 @@
void AddFlag(const std::string& name,
bool value);
- std::unordered_map<std::string,bool> GetFlags() const
+ std::unordered_map<std::string,bool> GetFlags() const
{
return flags;
}
@@ -844,10 +844,13 @@
* Methods for loading a concrete OSS style sheet
*/
//@{
- bool LoadContent(const std::string& content,
- ColorPostprocessor colorPostprocessor=nullptr);
+ bool LoadContent(const std::string& filename,
+ const std::string& content,
+ ColorPostprocessor colorPostprocessor=nullptr,
+ bool submodule=false);
bool Load(const std::string& styleFile,
- ColorPostprocessor colorPostprocessor=nullptr);
+ ColorPostprocessor colorPostprocessor=nullptr,
+ bool submodule=false);
const std::list<std::string>& GetErrors();
const std::list<std::string>& GetWarnings();
//@}
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/include/osmscoutmap/SymbolRenderer.h
^
|
@@ -0,0 +1,56 @@
+#ifndef OSMSCOUT_MAP_SYMBOLRENDERER_H
+#define OSMSCOUT_MAP_SYMBOLRENDERER_H
+
+/*
+ This source is part of the libosmscout-map library
+ Copyright (C) 2010 Tim Teulings
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <osmscoutmap/MapImportExport.h>
+
+#include <osmscoutmap/Styles.h>
+
+namespace osmscout {
+
+/**
+ * \ingroup Renderer
+ */
+class OSMSCOUT_MAP_API SymbolRenderer
+{
+public:
+virtual ~SymbolRenderer() = default;
+
+virtual void Render(const Symbol &symbol, const Vertex2D &zeroCoord,
+ double groundMeterInPixel, double screenMmInPixel) const;
+
+virtual void Render(const Symbol &symbol, const Vertex2D ¢er, const Projection &projection) const;
+
+protected:
+virtual void SetFill(const FillStyleRef &fillStyle) const = 0;
+
+virtual void SetBorder(const BorderStyleRef &borderStyle, double screenMmInPixel) const = 0;
+
+virtual void DrawPolygon(const std::vector<Vertex2D> &polygonPixels) const = 0;
+
+virtual void DrawRect(double x, double y, double w, double h) const = 0;
+
+virtual void DrawCircle(double x, double y, double radius) const = 0;
+};
+}
+
+#endif // OSMSCOUT_MAP_SYMBOLRENDERER_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/include/osmscoutmap/oss/Parser.h
^
|
@@ -29,6 +29,7 @@
#include <osmscout/TypeConfig.h>
+#include <osmscout/util/File.h>
#include <osmscout/util/String.h>
#include <osmscout/util/Transformation.h>
@@ -115,6 +116,7 @@
public:
Errors *errors;
+std::string filename;
StyleConfig& config;
MagnificationConverter magnificationConverter;
bool state;
@@ -213,6 +215,7 @@
Parser(Scanner *scanner,
+ const std::string& filename,
StyleConfig& config,
osmscout::ColorPostprocessor colorPostprocessor=nullptr);
~Parser();
@@ -221,11 +224,14 @@
void SemWarning(const char* msg);
void OSS();
+ void IMPORTS();
void FLAGSECTION();
void WAYORDER();
void CONSTSECTION();
void SYMBOLSECTION();
void STYLESECTION();
+ void IMPORT();
+ void STRING(std::string& value);
void FLAGBLOCK(bool state);
void FLAGDEF();
void FLAGCONDBLOCK(bool state);
@@ -297,7 +303,6 @@
void ATTRIBUTEVALUE(PartialStyleBase& style, const StyleAttributeDescriptor& descriptor);
void COLOR_VALUE(Color& color);
void CONSTANT(StyleConstantRef& constant);
- void STRING(std::string& value);
void Parse();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/parser/OSS/OSS.atg
^
|
@@ -6,11 +6,13 @@
#include <osmscout/TypeConfig.h>
+#include <osmscout/util/File.h>
#include <osmscout/util/String.h>
#include <osmscout/util/Transformation.h>
COMPILER OSS
+std::string filename;
StyleConfig& config;
MagnificationConverter magnificationConverter;
bool state;
@@ -130,24 +132,63 @@
PRODUCTIONS
OSS = SYNC "OSS"
(. state=true; .)
+ [IMPORTS]
{
FLAGSECTION
}
+ [IMPORTS]
[
WAYORDER
]
+ [IMPORTS]
{
CONSTSECTION
}
+ [IMPORTS]
{
SYMBOLSECTION
}
+ [IMPORTS]
{
STYLESECTION
}
+ [IMPORTS]
"END"
.
+ IMPORTS = IMPORT
+ {
+ IMPORT
+ }
+ .
+
+ IMPORT = SYNC "MODULE"
+ (. std::string moduleName; .)
+ STRING<moduleName>
+ (.
+ std::string directory=osmscout::GetDirectory(filename);
+
+ std::string moduleFileName;
+
+ if (!directory.empty()) {
+ moduleFileName=osmscout::AppendFileToDir(directory,moduleName)+".oss";
+ }
+ else {
+ moduleFileName=moduleName+".ost";
+ }
+
+ bool success=config.Load(moduleFileName,
+ colorPostprocessor,
+ true);
+
+ if (!success) {
+ std::string e="Cannot load module '"+moduleFileName+"'";
+
+ SemErr(e.c_str());
+ }
+ .)
+ .
+
FLAGSECTION = SYNC "FLAG"
FLAGBLOCK<true>
.
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/parser/OSS/Parser.frame
^
|
@@ -5,9 +5,9 @@
-->headerdef
-#include <osmscout/oss/Scanner.h>
+#include <osmscoutmap/oss/Scanner.h>
-#include <osmscout/StyleConfig.h>
+#include <osmscoutmap/StyleConfig.h>
#ifdef CONST
#undef CONST
@@ -78,6 +78,7 @@
-->declarations
Parser(Scanner *scanner,
+ const std::string& filename,
StyleConfig& config,
osmscout::ColorPostprocessor colorPostprocessor=nullptr);
~Parser();
@@ -115,7 +116,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <osmscout/oss/Parser.h>
+#include <osmscoutmap/oss/Parser.h>
#include <sstream>
@@ -124,7 +125,7 @@
#include <osmscout/util/Logger.h>
#include <osmscout/util/String.h>
-#include <osmscout/oss/Scanner.h>
+#include <osmscoutmap/oss/Scanner.h>
-->namespace_open
@@ -234,9 +235,11 @@
}
Parser::Parser(Scanner *scanner,
+ const std::string& filename,
StyleConfig& config,
osmscout::ColorPostprocessor colorPostprocessor)
- : config(config)
+ : filename(filename),
+ config(config)
{
-->constants
dummyToken = NULL;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/parser/OSS/Scanner.frame
^
|
@@ -207,7 +207,7 @@
#include <iostream>
-#include <osmscout/oss/Scanner.h>
+#include <osmscoutmap/oss/Scanner.h>
-->namespace_open
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/parser/generate.sh
^
|
@@ -22,8 +22,8 @@
sed -i s/L\"/\"/g OSS/Parser.cpp
-cp OSS/Scanner.h ../include/osmscout/oss/
-cp OSS/Scanner.cpp ../src/osmscout/oss
+cp OSS/Scanner.h ../include/osmscoutmap/oss/
+cp OSS/Scanner.cpp ../src/osmscoutmap/oss
-cp OSS/Parser.h ../include/osmscout/oss/
-cp OSS/Parser.cpp ../src/osmscout/oss
+cp OSS/Parser.h ../include/osmscoutmap/oss/
+cp OSS/Parser.cpp ../src/osmscoutmap/oss
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/src/meson.build
^
|
@@ -15,5 +15,6 @@
'src/osmscoutmap/MapData.cpp',
'src/osmscoutmap/MapService.cpp',
'src/osmscoutmap/MapPainterNoOp.cpp',
+ 'src/osmscoutmap/SymbolRenderer.cpp'
]
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/src/osmscoutmap/MapPainter.cpp
^
|
@@ -39,8 +39,8 @@
namespace osmscout {
static std::set<GeoCoord> GetGridPoints(const std::vector<Point>& nodes,
- double gridSizeHoriz,
- double gridSizeVert)
+ double gridSizeHoriz,
+ double gridSizeVert)
{
assert(nodes.size()>=2);
@@ -187,7 +187,11 @@
stepMethods[RenderSteps::Initialize]=&MapPainter::InitializeRender;
stepMethods[RenderSteps::DumpStatistics]=&MapPainter::DumpStatistics;
- stepMethods[RenderSteps::PreprocessData]=&MapPainter::PreprocessData;
+ stepMethods[RenderSteps::CalculatePaths]=&MapPainter::CalculatePaths;
+ stepMethods[RenderSteps::CalculateWayShields]=&MapPainter::CalculateWayShields;
+ stepMethods[RenderSteps::ProcessAreas]=&MapPainter::ProcessAreas;
+ stepMethods[RenderSteps::ProcessRoutes]=&MapPainter::ProcessRoutes;
+ stepMethods[RenderSteps::AfterPreprocessing]=&MapPainter::AfterPreprocessing;
stepMethods[RenderSteps::Prerender]=&MapPainter::Prerender;
stepMethods[RenderSteps::DrawBaseMapTiles]=&MapPainter::DrawBaseMapTiles;
stepMethods[RenderSteps::DrawGroundTiles]=&MapPainter::DrawGroundTiles;
@@ -521,7 +525,7 @@
const std::string& text,
const std::vector<Point>& nodes)
{
- const LabelStyleRef& style=shieldStyle->GetShieldStyle();
+ LabelStyleRef style=shieldStyle->GetShieldStyle();
std::set<GeoCoord> gridPoints=GetGridPoints(nodes,
shieldGridSizeHoriz,
shieldGridSizeVert);
@@ -541,7 +545,11 @@
labelBox.text=text;
std::vector<LabelData> vect = {labelBox};
- RegisterRegularLabel(projection, parameter, vect, Vertex2D(x,y), /*proposedWidth*/ -1);
+ RegisterRegularLabel(projection,
+ parameter,
+ vect,
+ Vertex2D(x,y),
+ /*proposedWidth*/ -1);
}
}
@@ -1048,9 +1056,9 @@
bool MapPainter::CalculateWayShieldLabels(const StyleConfig& styleConfig,
const Projection& projection,
const MapParameter& parameter,
- const Way& data)
+ const Way& way)
{
- PathShieldStyleRef shieldStyle=styleConfig.GetWayPathShieldStyle(data.GetFeatureValueBuffer(),
+ PathShieldStyleRef shieldStyle=styleConfig.GetWayPathShieldStyle(way.GetFeatureValueBuffer(),
projection);
if (!shieldStyle) {
@@ -1058,7 +1066,7 @@
}
std::string shieldLabel=shieldStyle->GetLabel()->GetLabel(parameter,
- data.GetFeatureValueBuffer());
+ way.GetFeatureValueBuffer());
if (shieldLabel.empty()) {
return false;
@@ -1068,7 +1076,7 @@
parameter,
shieldStyle,
shieldLabel,
- data.nodes);
+ way.nodes);
return true;
}
@@ -1429,8 +1437,7 @@
});
}
- void MapPainter::PrepareAreas(const StyleConfig& styleConfig,
- const Projection& projection,
+ void MapPainter::ProcessAreas(const Projection& projection,
const MapParameter& parameter,
const MapData& data)
{
@@ -1438,17 +1445,15 @@
//Areas
for (const auto& area : data.areas) {
- PrepareArea(styleConfig,
- projection,
- parameter,
- area);
+ PrepareArea(*styleConfig,
+ projection,
+ parameter,
+ area);
}
- areaData.sort(AreaSorter);
-
// POI Areas
for (const auto& area : data.poiAreas) {
- PrepareArea(styleConfig,
+ PrepareArea(*styleConfig,
projection,
parameter,
area);
@@ -1633,10 +1638,10 @@
}
}
- void MapPainter::CalculatePaths(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const Way& way)
+ void MapPainter::CalculateWayPaths(const StyleConfig& styleConfig,
+ const Projection& projection,
+ const MapParameter& parameter,
+ const Way& way)
{
FileOffset ref=way.GetFileOffset();
const FeatureValueBuffer& buffer=way.GetFeatureValueBuffer();
@@ -1777,53 +1782,70 @@
}
}
- void MapPainter::PrepareWays(const StyleConfig& styleConfig,
- const Projection& projection,
- const MapParameter& parameter,
- const MapData& data)
+ void MapPainter::CalculatePaths(const Projection& projection,
+ const MapParameter& parameter,
+ const MapData& data)
{
- bool hasShieldLabels = styleConfig.HasWayPathShieldStyle(projection);
+ wayData.clear();
+ wayPathData.clear();
+ routeLabelData.clear();
for (const auto& way : data.ways) {
- if (way->nodes.size() < 2) {
- continue; // algorithms require at least two points
+ if (way->nodes.size() >= 2) {
+ CalculateWayPaths(*styleConfig,
+ projection,
+ parameter,
+ *way);
}
- CalculatePaths(styleConfig,
- projection,
- parameter,
- *way);
+ }
- if (hasShieldLabels) {
- CalculateWayShieldLabels(styleConfig,
- projection,
- parameter,
- *way);
+ for (const auto& way : data.poiWays) {
+ if (way->nodes.size() >= 2) {
+ CalculateWayPaths(*styleConfig,
+ projection,
+ parameter,
+ *way);
}
}
+ }
- for (const auto& way : data.poiWays) {
+ void MapPainter::CalculateWayShields(const Projection& projection,
+ const MapParameter& parameter,
+ const MapData& data)
+ {
+ if (!styleConfig->HasWayPathShieldStyle(projection)) {
+ return;
+ }
+
+ for (const auto& way : data.ways) {
if (way->nodes.size() < 2) {
continue; // algorithms require at least two points
}
- CalculatePaths(styleConfig,
- projection,
- parameter,
- *way);
- if (hasShieldLabels) {
- CalculateWayShieldLabels(styleConfig,
- projection,
- parameter,
- *way);
+ CalculateWayShieldLabels(*styleConfig,
+ projection,
+ parameter,
+ *way);
+ }
+
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/src/osmscoutmap/StyleConfig.cpp
^
|
@@ -32,6 +32,7 @@
#include <osmscoutmap/oss/Parser.h>
#include <osmscoutmap/oss/Scanner.h>
+#include <iostream>
namespace osmscout {
StyleResolveContext::StyleResolveContext(const TypeConfigRef& typeConfig)
@@ -1624,12 +1625,15 @@
}
}
- bool StyleConfig::LoadContent(const std::string& content,
- ColorPostprocessor colorPostprocessor)
+ bool StyleConfig::LoadContent(const std::string& filename,
+ const std::string& content,
+ ColorPostprocessor colorPostprocessor,
+ bool submodule)
{
oss::Scanner *scanner=new oss::Scanner((const unsigned char *)content.c_str(),
content.length());
oss::Parser *parser=new oss::Parser(scanner,
+ filename,
*this,
colorPostprocessor);
parser->Parse();
@@ -1660,13 +1664,27 @@
delete parser;
delete scanner;
-
- Postprocess();
+ if (!submodule) {
+ Postprocess();
+ }
return success;
}
+ /**
+ * Load the given *.oss file into the current style config object.
+ *
+ * @param styleFile
+ * The file to load
+ * @param colorPostprocessor
+ * Optional function to post process color values
+ * @param submodule
+ * Before loading submodule, style config is not reset and post-process after.
+ * @return
+ * true, if loading was successful, else false
+ */
bool StyleConfig::Load(const std::string& styleFile,
- ColorPostprocessor colorPostprocessor)
+ ColorPostprocessor colorPostprocessor,
+ bool submodule)
{
StopClock timer;
bool success=false;
@@ -1675,7 +1693,9 @@
FILE* file;
FileOffset fileSize;
- Reset();
+ if (!submodule) {
+ Reset();
+ }
fileSize=GetFileSize(styleFile);
@@ -1698,8 +1718,10 @@
fclose(file);
- success=LoadContent(std::string((const char *)content,fileSize),
- colorPostprocessor);
+ success=LoadContent(styleFile,
+ std::string((const char *)content,fileSize),
+ colorPostprocessor,
+ submodule);
delete [] content;
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/src/osmscoutmap/SymbolRenderer.cpp
^
|
@@ -0,0 +1,120 @@
+/*
+ This source is part of the libosmscout-map library
+ Copyright (C) 2010 Tim Teulings
+ Copyright (C) 2022 Lukas Karas
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <osmscout/util/Logger.h>
+#include <osmscoutmap/SymbolRenderer.h>
+
+#include <cassert>
+
+namespace osmscout {
+
+void SymbolRenderer::Render(const Symbol &symbol, const Vertex2D &zeroCoord,
+ double groundMeterInPixel, double screenMmInPixel) const
+{
+ for (const auto& primitive : symbol.GetPrimitives()) {
+ const DrawPrimitive *primitivePtr=primitive.get();
+
+ if (const auto *polygon = dynamic_cast<const PolygonPrimitive*>(primitivePtr);
+ polygon != nullptr) {
+
+ FillStyleRef fillStyle=polygon->GetFillStyle();
+ BorderStyleRef borderStyle=polygon->GetBorderStyle();
+
+ SetFill(fillStyle);
+ SetBorder(borderStyle, screenMmInPixel);
+
+ std::vector<Vertex2D> polygonPixels;
+ polygonPixels.reserve(polygon->GetCoords().size());
+ if (polygon->GetProjectionMode()==DrawPrimitive::ProjectionMode::MAP) {
+ for (auto const &pixel: polygon->GetCoords()) {
+ polygonPixels.emplace_back(zeroCoord.GetX() + pixel.GetX() * screenMmInPixel,
+ zeroCoord.GetY() + pixel.GetY() * screenMmInPixel);
+ }
+ } else {
+ assert(polygon->GetProjectionMode()==DrawPrimitive::ProjectionMode::GROUND);
+ for (auto const &pixel: polygon->GetCoords()) {
+ polygonPixels.emplace_back(zeroCoord.GetX() + pixel.GetX() * groundMeterInPixel,
+ zeroCoord.GetY() + pixel.GetY() * groundMeterInPixel);
+ }
+ }
+ DrawPolygon(polygonPixels);
+ }
+ else if (const auto *rectangle = dynamic_cast<const RectanglePrimitive*>(primitivePtr);
+ rectangle != nullptr) {
+
+ FillStyleRef fillStyle=rectangle->GetFillStyle();
+ BorderStyleRef borderStyle=rectangle->GetBorderStyle();
+
+ SetFill(fillStyle);
+ SetBorder(borderStyle, screenMmInPixel);
+
+ if (rectangle->GetProjectionMode()==DrawPrimitive::ProjectionMode::MAP) {
+ DrawRect(zeroCoord.GetX() + rectangle->GetTopLeft().GetX() * screenMmInPixel,
+ zeroCoord.GetY() + rectangle->GetTopLeft().GetY() * screenMmInPixel,
+ rectangle->GetWidth() * screenMmInPixel,
+ rectangle->GetHeight() * screenMmInPixel);
+ }
+ else {
+ DrawRect(zeroCoord.GetX() + rectangle->GetTopLeft().GetX() * groundMeterInPixel,
+ zeroCoord.GetY() + rectangle->GetTopLeft().GetY() * groundMeterInPixel,
+ rectangle->GetWidth() * groundMeterInPixel,
+ rectangle->GetHeight() * groundMeterInPixel);
+ }
+ }
+ else if (const auto *circle = dynamic_cast<const CirclePrimitive*>(primitivePtr);
+ circle != nullptr) {
+
+ FillStyleRef fillStyle=circle->GetFillStyle();
+ BorderStyleRef borderStyle=circle->GetBorderStyle();
+
+ SetFill(fillStyle);
+ SetBorder(borderStyle, screenMmInPixel);
+
+ if (circle->GetProjectionMode()==DrawPrimitive::ProjectionMode::MAP) {
+ DrawCircle(zeroCoord.GetX() + circle->GetCenter().GetX() * screenMmInPixel,
+ zeroCoord.GetY() + circle->GetCenter().GetY() * screenMmInPixel,
+ circle->GetRadius() * screenMmInPixel);
+ } else {
+ DrawCircle(zeroCoord.GetX() + circle->GetCenter().GetX() * groundMeterInPixel,
+ zeroCoord.GetY() + circle->GetCenter().GetY() * groundMeterInPixel,
+ circle->GetRadius() * groundMeterInPixel);
+ }
+ }
+ }
+}
+
+void SymbolRenderer::Render(const Symbol &symbol, const Vertex2D ¢er, const Projection& projection) const
+{
+ double minX;
+ double minY;
+ double maxX;
+ double maxY;
+ double centerX;
+ double centerY;
+
+ symbol.GetBoundingBox(projection,minX,minY,maxX,maxY);
+
+ centerX=(minX+maxX)/2;
+ centerY=(minY+maxY)/2;
+
+ Render(symbol, Vertex2D(center.GetX()-centerX, center.GetY()-centerY), projection.GetMeterInPixel(), projection.ConvertWidthToPixel(1));
+}
+
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/src/osmscoutmap/oss/Parser.cpp
^
|
@@ -146,62 +146,87 @@
}
void Parser::OSS() {
- while (!(la->kind == _EOF || la->kind == 7 /* "OSS" */)) {SynErr(66); Get();}
+ while (!(la->kind == _EOF || la->kind == 7 /* "OSS" */)) {SynErr(67); Get();}
Expect(7 /* "OSS" */);
state=true;
- while (la->kind == 9 /* "FLAG" */) {
+ if (la->kind == 9 /* "MODULE" */) {
+ IMPORTS();
+ }
+ while (la->kind == 10 /* "FLAG" */) {
FLAGSECTION();
}
- if (la->kind == 17 /* "ORDER" */) {
+ if (la->kind == 9 /* "MODULE" */) {
+ IMPORTS();
+ }
+ if (la->kind == 18 /* "ORDER" */) {
WAYORDER();
}
- while (la->kind == 30 /* "CONST" */) {
+ if (la->kind == 9 /* "MODULE" */) {
+ IMPORTS();
+ }
+ while (la->kind == 31 /* "CONST" */) {
CONSTSECTION();
}
- while (la->kind == 21 /* "SYMBO" */) {
+ if (la->kind == 9 /* "MODULE" */) {
+ IMPORTS();
+ }
+ while (la->kind == 22 /* "SYMBO" */) {
SYMBOLSECTION();
}
- while (la->kind == 37 /* "STYLE" */) {
+ if (la->kind == 9 /* "MODULE" */) {
+ IMPORTS();
+ }
+ while (la->kind == 38 /* "STYLE" */) {
STYLESECTION();
}
+ if (la->kind == 9 /* "MODULE" */) {
+ IMPORTS();
+ }
Expect(8 /* "END" */);
}
+void Parser::IMPORTS() {
+ IMPORT();
+ while (la->kind == 9 /* "MODULE" */) {
+ IMPORT();
+ }
+}
+
void Parser::FLAGSECTION() {
- while (!(la->kind == _EOF || la->kind == 9 /* "FLAG" */)) {SynErr(67); Get();}
- Expect(9 /* "FLAG" */);
+ while (!(la->kind == _EOF || la->kind == 10 /* "FLAG" */)) {SynErr(68); Get();}
+ Expect(10 /* "FLAG" */);
FLAGBLOCK(true);
}
void Parser::WAYORDER() {
- while (!(la->kind == _EOF || la->kind == 17 /* "ORDER" */)) {SynErr(68); Get();}
- Expect(17 /* "ORDER" */);
- Expect(18 /* "WAYS" */);
+ while (!(la->kind == _EOF || la->kind == 18 /* "ORDER" */)) {SynErr(69); Get();}
+ Expect(18 /* "ORDER" */);
+ Expect(19 /* "WAYS" */);
size_t priority=1;
- while (la->kind == 19 /* "GROUP" */) {
+ while (la->kind == 20 /* "GROUP" */) {
WAYGROUP(priority);
priority++;
}
}
void Parser::CONSTSECTION() {
- while (!(la->kind == _EOF || la->kind == 30 /* "CONST" */)) {SynErr(69); Get();}
- Expect(30 /* "CONST" */);
+ while (!(la->kind == _EOF || la->kind == 31 /* "CONST" */)) {SynErr(70); Get();}
+ Expect(31 /* "CONST" */);
CONSTBLOCK(true);
}
void Parser::SYMBOLSECTION() {
- while (!(la->kind == _EOF || la->kind == 21 /* "SYMBO" */)) {SynErr(70); Get();}
- Expect(21 /* "SYMBO" */);
+ while (!(la->kind == _EOF || la->kind == 22 /* "SYMBO" */)) {SynErr(71); Get();}
+ Expect(22 /* "SYMBO" */);
std::string name;
IDENT(name);
SymbolRef symbol=std::make_shared<Symbol>(name);
- while (la->kind == 25 /* "POLYGON" */ || la->kind == 27 /* "RECTANGLE" */ || la->kind == 29 /* "CIRCLE" */) {
- if (la->kind == 25 /* "POLYGON" */) {
+ while (la->kind == 26 /* "POLYGON" */ || la->kind == 28 /* "RECTANGLE" */ || la->kind == 30 /* "CIRCLE" */) {
+ if (la->kind == 26 /* "POLYGON" */) {
POLYGON(*symbol);
- } else if (la->kind == 27 /* "RECTANGLE" */) {
+ } else if (la->kind == 28 /* "RECTANGLE" */) {
RECTANGLE(*symbol);
} else {
CIRCLE(*symbol);
@@ -215,13 +240,47 @@
}
void Parser::STYLESECTION() {
- Expect(37 /* "STYLE" */);
+ Expect(38 /* "STYLE" */);
StyleFilter filter;
STYLEBLOCK(filter,true);
}
+void Parser::IMPORT() {
+ while (!(la->kind == _EOF || la->kind == 9 /* "MODULE" */)) {SynErr(72); Get();}
+ Expect(9 /* "MODULE" */);
+ std::string moduleName;
+ STRING(moduleName);
+ std::string directory=osmscout::GetDirectory(filename);
+
+ std::string moduleFileName;
+
+ if (!directory.empty()) {
+ moduleFileName=osmscout::AppendFileToDir(directory,moduleName)+".oss";
+ }
+ else {
+ moduleFileName=moduleName+".ost";
+ }
+
+ bool success=config.Load(moduleFileName,
+ colorPostprocessor,
+ true);
+
+ if (!success) {
+ std::string e="Cannot load module '"+moduleFileName+"'";
+
+ SemErr(e.c_str());
+ }
+
+}
+
+void Parser::STRING(std::string& value) {
+ Expect(_string);
+ value=Destring(t->val);
+
+}
+
void Parser::FLAGBLOCK(bool state) {
- while (la->kind == _ident || la->kind == 10 /* "IF" */) {
+ while (la->kind == _ident || la->kind == 11 /* "IF" */) {
if (la->kind == _ident) {
FLAGDEF();
} else {
@@ -235,7 +294,7 @@
bool value;
IDENT(name);
- Expect(15 /* "=" */);
+ Expect(16 /* "=" */);
BOOL(value);
if (state) {
if (!config.HasFlag(name)) {
@@ -243,44 +302,44 @@
}
}
- Expect(16 /* ";" */);
+ Expect(17 /* ";" */);
}
void Parser::FLAGCONDBLOCK(bool state) {
bool newState=state;
bool executed=false;
- Expect(10 /* "IF" */);
+ Expect(11 /* "IF" */);
IFCOND(newState);
- Expect(11 /* "{" */);
+ Expect(12 /* "{" */);
this->state=state && newState;
FLAGBLOCK(state && newState);
this->state=state;
executed=newState;
- Expect(12 /* "}" */);
- while (la->kind == 13 /* "ELIF" */) {
+ Expect(13 /* "}" */);
+ while (la->kind == 14 /* "ELIF" */) {
Get();
IFCOND(newState);
- Expect(11 /* "{" */);
+ Expect(12 /* "{" */);
this->state=!executed && state && newState;
FLAGBLOCK(!executed && state && newState);
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout-map/src/osmscoutmap/oss/Scanner.cpp
^
|
@@ -167,8 +167,8 @@
void Scanner::Init() {
EOL = '\n';
eofSym = 0;
- maxT = 65;
- noSym = 65;
+ maxT = 66;
+ noSym = 66;
int i;
for (i = 65; i <= 90; ++i) start.set(i, 1);
for (i = 95; i <= 95; ++i) start.set(i, 1);
@@ -194,47 +194,48 @@
start.set(Buffer::EoF, -1);
keywords.set("OSS", 7);
keywords.set("END", 8);
- keywords.set("FLAG", 9);
- keywords.set("IF", 10);
- keywords.set("ELIF", 13);
- keywords.set("ELSE", 14);
- keywords.set("ORDER", 17);
- keywords.set("WAYS", 18);
- keywords.set("GROUP", 19);
- keywords.set("SYMBOL", 21);
- keywords.set("BORDER", 22);
- keywords.set("AREA", 23);
- keywords.set("POLYGON", 25);
- keywords.set("GROUND", 26);
- keywords.set("RECTANGLE", 27);
- keywords.set("x", 28);
- keywords.set("CIRCLE", 29);
- keywords.set("CONST", 30);
- keywords.set("COLOR", 31);
- keywords.set("MAG", 32);
- keywords.set("UINT", 33);
- keywords.set("WIDTH", 34);
- keywords.set("mm", 35);
- keywords.set("m", 36);
- keywords.set("STYLE", 37);
- keywords.set("FEATURE", 40);
- keywords.set("PATH", 41);
- keywords.set("TYPE", 42);
- keywords.set("ONEWAY", 44);
- keywords.set("SIZE", 45);
- keywords.set("px", 47);
- keywords.set("NODE", 49);
- keywords.set("TEXT", 50);
- keywords.set("ICON", 52);
- keywords.set("WAY", 53);
- keywords.set("SHIELD", 54);
- keywords.set("BORDERTEXT", 55);
- keywords.set("BORDERSYMBOL", 56);
- keywords.set("ROUTE", 57);
- keywords.set("name", 58);
- keywords.set("lighten", 59);
- keywords.set("darken", 60);
- keywords.set("alpha", 61);
+ keywords.set("MODULE", 9);
+ keywords.set("FLAG", 10);
+ keywords.set("IF", 11);
+ keywords.set("ELIF", 14);
+ keywords.set("ELSE", 15);
+ keywords.set("ORDER", 18);
+ keywords.set("WAYS", 19);
+ keywords.set("GROUP", 20);
+ keywords.set("SYMBOL", 22);
+ keywords.set("BORDER", 23);
+ keywords.set("AREA", 24);
+ keywords.set("POLYGON", 26);
+ keywords.set("GROUND", 27);
+ keywords.set("RECTANGLE", 28);
+ keywords.set("x", 29);
+ keywords.set("CIRCLE", 30);
+ keywords.set("CONST", 31);
+ keywords.set("COLOR", 32);
+ keywords.set("MAG", 33);
+ keywords.set("UINT", 34);
+ keywords.set("WIDTH", 35);
+ keywords.set("mm", 36);
+ keywords.set("m", 37);
+ keywords.set("STYLE", 38);
+ keywords.set("FEATURE", 41);
+ keywords.set("PATH", 42);
+ keywords.set("TYPE", 43);
+ keywords.set("ONEWAY", 45);
+ keywords.set("SIZE", 46);
+ keywords.set("px", 48);
+ keywords.set("NODE", 50);
+ keywords.set("TEXT", 51);
+ keywords.set("ICON", 53);
+ keywords.set("WAY", 54);
+ keywords.set("SHIELD", 55);
+ keywords.set("BORDERTEXT", 56);
+ keywords.set("BORDERSYMBOL", 57);
+ keywords.set("ROUTE", 58);
+ keywords.set("name", 59);
+ keywords.set("lighten", 60);
+ keywords.set("darken", 61);
+ keywords.set("alpha", 62);
tvalLength = 128;
@@ -460,37 +461,37 @@
else if (ch == 92) {AddCh(); goto case_17;}
else {t->kind = 6; break;}
case 19:
- {t->kind = 11; break;}
- case 20:
{t->kind = 12; break;}
+ case 20:
+ {t->kind = 13; break;}
case 21:
- {t->kind = 15; break;}
- case 22:
{t->kind = 16; break;}
+ case 22:
+ {t->kind = 17; break;}
case 23:
- {t->kind = 20; break;}
+ {t->kind = 21; break;}
case 24:
- {t->kind = 24; break;}
+ {t->kind = 25; break;}
case 25:
- {t->kind = 38; break;}
- case 26:
{t->kind = 39; break;}
+ case 26:
+ {t->kind = 40; break;}
case 27:
- {t->kind = 43; break;}
+ {t->kind = 44; break;}
case 28:
- {t->kind = 46; break;}
+ {t->kind = 47; break;}
case 29:
- {t->kind = 48; break;}
+ {t->kind = 49; break;}
case 30:
- {t->kind = 62; break;}
- case 31:
{t->kind = 63; break;}
- case 32:
+ case 31:
{t->kind = 64; break;}
+ case 32:
+ {t->kind = 65; break;}
case 33:
- recEnd = pos; recKind = 51;
+ recEnd = pos; recKind = 52;
if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f')) {AddCh(); goto case_4;}
- else {t->kind = 51; break;}
+ else {t->kind = 52; break;}
}
AppendVal(t);
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/CMakeLists.txt
^
|
@@ -295,6 +295,11 @@
target_link_libraries(OSMScout ${CMAKE_THREAD_LIBS_INIT})
endif()
+if(CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL "8.3"))
+ # GCC <= 8.3 needs explicit filesystem library linking
+ target_link_libraries(OSMScout -lstdc++fs)
+endif()
+
if(APPLE AND OSMSCOUT_BUILD_FRAMEWORKS)
set_source_files_properties(${HEADER_FILES_ROOT}
PROPERTIES MACOSX_PACKAGE_LOCATION Headers)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/include/osmscout/ost/Parser.h
^
|
@@ -24,6 +24,7 @@
#include <osmscout/TypeConfig.h>
#include <osmscout/TypeFeatures.h>
+#include <osmscout/util/File.h>
#include <osmscout/util/String.h>
#include <osmscout/ost/Scanner.h>
@@ -92,6 +93,7 @@
TokenRef t; // last recognized token
TokenRef la; // lookahead token
+ std::string filename;
TypeConfig& config;
public:
@@ -113,17 +115,20 @@
Parser(Scanner *scanner,
+ const std::string& filename,
TypeConfig& config);
~Parser();
void SemErr(const char* msg);
void OST();
+ void IMPORTS();
void MAXSPEEDS();
void GRADES();
void FEATURES();
void TYPES();
- void MAXSPEED();
+ void IMPORT();
void STRING(std::string& value);
+ void MAXSPEED();
void UINT(size_t& value);
void GRADE();
void FEATURE();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/include/osmscout/util/File.h
^
|
@@ -64,6 +64,14 @@
/**
* \ingroup File
*
+ * Return everything (including the delimiter) before the last path delimiter.
+ * Returns empty string, if there is no delimiter.
+ */
+ extern OSMSCOUT_API std::string GetDirectory(const std::string& file);
+
+ /**
+ * \ingroup File
+ *
* Append the filename 'name' to the directory name 'name' correctly adding directory
* delimiter if necessary.
*/
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/parser/OST/OST.atg
^
|
@@ -1,6 +1,7 @@
#include <osmscout/TypeConfig.h>
#include <osmscout/TypeFeatures.h>
+#include <osmscout/util/File.h>
#include <osmscout/util/String.h>
COMPILER OST
@@ -37,15 +38,53 @@
PRODUCTIONS
OST = SYNC "OST"
+ [IMPORTS]
[MAXSPEEDS]
+ [IMPORTS]
[GRADES]
+ [IMPORTS]
[FEATURES]
+ [IMPORTS]
[TYPES]
+ [IMPORTS]
"END"
.
+ IMPORTS = IMPORT {IMPORT}
+ .
+
+ IMPORT = SYNC "MODULE"
+ (.
+ std::string moduleName;
+ .)
+ STRING<moduleName>
+ (.
+ std::string directory=osmscout::GetDirectory(filename);
+
+ std::string moduleFileName;
+
+ if (!directory.empty()) {
+ moduleFileName=osmscout::AppendFileToDir(directory,moduleName)+".ost";
+ }
+ else {
+ moduleFileName=moduleName+".ost";
+ }
+
+ bool success=config.LoadFromOSTFile(moduleFileName);
+
+ if (!success) {
+ std::string e="Cannot load module '"+moduleFileName+"'";
+
+ SemErr(e.c_str());
+ }
+ .)
+ .
+
MAXSPEEDS = SYNC "MAX" "SPEEDS"
- MAXSPEED {MAXSPEED}
+ MAXSPEED
+ {
+ MAXSPEED
+ }
.
MAXSPEED = (.
@@ -152,7 +191,10 @@
.
TYPES = SYNC "TYPES"
- TYPE {TYPE}
+ TYPE
+ {
+ TYPE
+ }
.
TYPE = (.
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/parser/OST/Parser.frame
^
|
@@ -65,6 +65,7 @@
TokenRef t; // last recognized token
TokenRef la; // lookahead token
+ std::string filename;
TypeConfig& config;
public:
@@ -73,6 +74,7 @@
-->declarations
Parser(Scanner *scanner,
+ const std::string& filename,
TypeConfig& config);
~Parser();
void SemErr(const char* msg);
@@ -213,8 +215,10 @@
}
Parser::Parser(Scanner *scanner,
+ const std::string& filename,
TypeConfig& config)
- : config(config)
+ : filename(filename),
+ config(config)
{
-->constants
dummyToken = nullptr;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/src/osmscout/TypeConfig.cpp
^
|
@@ -1119,6 +1119,7 @@
ost::Scanner *scanner=new ost::Scanner(content,
fileSize);
ost::Parser *parser=new ost::Parser(scanner,
+ filename,
*this);
delete [] content;
@@ -1130,7 +1131,7 @@
delete parser;
delete scanner;
}
- catch (IOException& e) {
+ catch (IOException const& e) {
log.Error() << e.GetDescription();
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/src/osmscout/ost/Parser.cpp
^
|
@@ -129,68 +129,123 @@
}
void Parser::OST() {
- while (!(la->kind == _EOF || la->kind == 4 /* "OST" */)) {SynErr(61); Get();}
+ while (!(la->kind == _EOF || la->kind == 4 /* "OST" */)) {SynErr(62); Get();}
Expect(4 /* "OST" */);
- if (la->kind == 6 /* "MAX" */) {
+ if (la->kind == 6 /* "MODULE" */) {
+ IMPORTS();
+ }
+ if (la->kind == 7 /* "MAX" */) {
MAXSPEEDS();
}
- if (la->kind == 11 /* "GRADES" */) {
+ if (la->kind == 6 /* "MODULE" */) {
+ IMPORTS();
+ }
+ if (la->kind == 12 /* "GRADES" */) {
GRADES();
}
- if (la->kind == 16 /* "FEATURES" */) {
+ if (la->kind == 6 /* "MODULE" */) {
+ IMPORTS();
+ }
+ if (la->kind == 17 /* "FEATURES" */) {
FEATURES();
}
- if (la->kind == 20 /* "TYPES" */) {
+ if (la->kind == 6 /* "MODULE" */) {
+ IMPORTS();
+ }
+ if (la->kind == 21 /* "TYPES" */) {
TYPES();
}
+ if (la->kind == 6 /* "MODULE" */) {
+ IMPORTS();
+ }
Expect(5 /* "END" */);
}
+void Parser::IMPORTS() {
+ IMPORT();
+ while (la->kind == 6 /* "MODULE" */) {
+ IMPORT();
+ }
+}
+
void Parser::MAXSPEEDS() {
- while (!(la->kind == _EOF || la->kind == 6 /* "MAX" */)) {SynErr(62); Get();}
- Expect(6 /* "MAX" */);
- Expect(7 /* "SPEEDS" */);
+ while (!(la->kind == _EOF || la->kind == 7 /* "MAX" */)) {SynErr(63); Get();}
+ Expect(7 /* "MAX" */);
+ Expect(8 /* "SPEEDS" */);
MAXSPEED();
- while (la->kind == 8 /* "SPEED" */) {
+ while (la->kind == 9 /* "SPEED" */) {
MAXSPEED();
}
}
void Parser::GRADES() {
- while (!(la->kind == _EOF || la->kind == 11 /* "GRADES" */)) {SynErr(63); Get();}
- Expect(11 /* "GRADES" */);
+ while (!(la->kind == _EOF || la->kind == 12 /* "GRADES" */)) {SynErr(64); Get();}
+ Expect(12 /* "GRADES" */);
GRADE();
- while (la->kind == 12 /* "SURFACE" */) {
+ while (la->kind == 13 /* "SURFACE" */) {
GRADE();
}
}
void Parser::FEATURES() {
- while (!(la->kind == _EOF || la->kind == 16 /* "FEATURES" */)) {SynErr(64); Get();}
- Expect(16 /* "FEATURES" */);
+ while (!(la->kind == _EOF || la->kind == 17 /* "FEATURES" */)) {SynErr(65); Get();}
+ Expect(17 /* "FEATURES" */);
FEATURE();
- while (la->kind == 17 /* "FEATURE" */) {
+ while (la->kind == 18 /* "FEATURE" */) {
FEATURE();
}
}
void Parser::TYPES() {
- while (!(la->kind == _EOF || la->kind == 20 /* "TYPES" */)) {SynErr(65); Get();}
- Expect(20 /* "TYPES" */);
+ while (!(la->kind == _EOF || la->kind == 21 /* "TYPES" */)) {SynErr(66); Get();}
+ Expect(21 /* "TYPES" */);
TYPE();
- while (la->kind == 21 /* "TYPE" */) {
+ while (la->kind == 22 /* "TYPE" */) {
TYPE();
}
}
+void Parser::IMPORT() {
+ while (!(la->kind == _EOF || la->kind == 6 /* "MODULE" */)) {SynErr(67); Get();}
+ Expect(6 /* "MODULE" */);
+ std::string moduleName;
+
+ STRING(moduleName);
+ std::string directory=osmscout::GetDirectory(filename);
+
+ std::string moduleFileName;
+
+ if (!directory.empty()) {
+ moduleFileName=osmscout::AppendFileToDir(directory,moduleName)+".ost";
+ }
+ else {
+ moduleFileName=moduleName+".ost";
+ }
+
+ bool success=config.LoadFromOSTFile(moduleFileName);
+
+ if (!success) {
+ std::string e="Cannot load module '"+moduleFileName+"'";
+
+ SemErr(e.c_str());
+ }
+
+}
+
+void Parser::STRING(std::string& value) {
+ Expect(_string);
+ value=Destring(t->val);
+
+}
+
void Parser::MAXSPEED() {
std::string alias;
size_t speed;
- while (!(la->kind == _EOF || la->kind == 8 /* "SPEED" */)) {SynErr(66); Get();}
- Expect(8 /* "SPEED" */);
+ while (!(la->kind == _EOF || la->kind == 9 /* "SPEED" */)) {SynErr(68); Get();}
+ Expect(9 /* "SPEED" */);
STRING(alias);
- Expect(9 /* "=" */);
+ Expect(10 /* "=" */);
UINT(speed);
if (speed>0 && speed<256) {
config.RegisterMaxSpeedAlias(alias,
@@ -202,17 +257,11 @@
SemErr(e.c_str());
}
- if (la->kind == 10 /* "km/h" */) {
+ if (la->kind == 11 /* "km/h" */) {
Get();
}
}
-void Parser::STRING(std::string& value) {
- Expect(_string);
- value=Destring(t->val);
-
-}
-
void Parser::UINT(size_t& value) {
Expect(_number);
if (!StringToNumber(t->val,value)) {
@@ -224,13 +273,13 @@
}
void Parser::GRADE() {
- while (!(la->kind == _EOF || la->kind == 12 /* "SURFACE" */)) {SynErr(67); Get();}
- Expect(12 /* "SURFACE" */);
- Expect(13 /* "GRADE" */);
+ while (!(la->kind == _EOF || la->kind == 13 /* "SURFACE" */)) {SynErr(69); Get();}
+ Expect(13 /* "SURFACE" */);
+ Expect(14 /* "GRADE" */);
size_t grade;
UINT(grade);
- Expect(14 /* "{" */);
+ Expect(15 /* "{" */);
while (la->kind == _string) {
std::string surface;
@@ -246,12 +295,12 @@
}
}
- Expect(15 /* "}" */);
+ Expect(16 /* "}" */);
}
void Parser::FEATURE() {
- while (!(la->kind == _EOF || la->kind == 17 /* "FEATURE" */)) {SynErr(68); Get();}
- Expect(17 /* "FEATURE" */);
+ while (!(la->kind == _EOF || la->kind == 18 /* "FEATURE" */)) {SynErr(70); Get();}
+ Expect(18 /* "FEATURE" */);
std::string featureName;
osmscout::FeatureRef feature;
@@ -267,7 +316,7 @@
feature=std::make_shared<osmscout::NameFeature>();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/src/osmscout/ost/Scanner.cpp
^
|
@@ -168,8 +168,8 @@
void Scanner::Init() {
EOL = '\n';
eofSym = 0;
- maxT = 60;
- noSym = 60;
+ maxT = 61;
+ noSym = 61;
int i;
for (i = 65; i <= 90; ++i) start.set(i, 1);
for (i = 97; i <= 106; ++i) start.set(i, 1);
@@ -192,43 +192,44 @@
start.set(Buffer::EoF, -1);
keywords.set("OST", 4);
keywords.set("END", 5);
- keywords.set("MAX", 6);
- keywords.set("SPEEDS", 7);
- keywords.set("SPEED", 8);
- keywords.set("GRADES", 11);
- keywords.set("SURFACE", 12);
- keywords.set("GRADE", 13);
- keywords.set("FEATURES", 16);
- keywords.set("FEATURE", 17);
- keywords.set("DESC", 18);
- keywords.set("TYPES", 20);
- keywords.set("TYPE", 21);
- keywords.set("IGNORE", 22);
- keywords.set("OR", 25);
- keywords.set("AND", 27);
- keywords.set("IN", 35);
- keywords.set("EXISTS", 38);
- keywords.set("NODE", 39);
- keywords.set("WAY", 40);
- keywords.set("AREA", 41);
- keywords.set("RELATION", 42);
- keywords.set("MULTIPOLYGON", 43);
- keywords.set("ROUTE_MASTER", 44);
- keywords.set("ROUTE", 45);
- keywords.set("LOCATION", 46);
- keywords.set("ADMIN_REGION", 47);
- keywords.set("ADDRESS", 48);
- keywords.set("POI", 49);
- keywords.set("OPTIMIZE_LOW_ZOOM", 50);
- keywords.set("PIN_WAY", 51);
- keywords.set("MERGE_AREAS", 52);
- keywords.set("IGNORESEALAND", 53);
- keywords.set("PATH", 54);
- keywords.set("FOOT", 55);
- keywords.set("BICYCLE", 56);
- keywords.set("CAR", 57);
- keywords.set("LANES", 58);
- keywords.set("GROUP", 59);
+ keywords.set("MODULE", 6);
+ keywords.set("MAX", 7);
+ keywords.set("SPEEDS", 8);
+ keywords.set("SPEED", 9);
+ keywords.set("GRADES", 12);
+ keywords.set("SURFACE", 13);
+ keywords.set("GRADE", 14);
+ keywords.set("FEATURES", 17);
+ keywords.set("FEATURE", 18);
+ keywords.set("DESC", 19);
+ keywords.set("TYPES", 21);
+ keywords.set("TYPE", 22);
+ keywords.set("IGNORE", 23);
+ keywords.set("OR", 26);
+ keywords.set("AND", 28);
+ keywords.set("IN", 36);
+ keywords.set("EXISTS", 39);
+ keywords.set("NODE", 40);
+ keywords.set("WAY", 41);
+ keywords.set("AREA", 42);
+ keywords.set("RELATION", 43);
+ keywords.set("MULTIPOLYGON", 44);
+ keywords.set("ROUTE_MASTER", 45);
+ keywords.set("ROUTE", 46);
+ keywords.set("LOCATION", 47);
+ keywords.set("ADMIN_REGION", 48);
+ keywords.set("ADDRESS", 49);
+ keywords.set("POI", 50);
+ keywords.set("OPTIMIZE_LOW_ZOOM", 51);
+ keywords.set("PIN_WAY", 52);
+ keywords.set("MERGE_AREAS", 53);
+ keywords.set("IGNORESEALAND", 54);
+ keywords.set("PATH", 55);
+ keywords.set("FOOT", 56);
+ keywords.set("BICYCLE", 57);
+ keywords.set("CAR", 58);
+ keywords.set("LANES", 59);
+ keywords.set("GROUP", 60);
tvalLength = 128;
@@ -410,56 +411,56 @@
else {goto case_0;}
case 8:
case_8:
- {t->kind = 10; break;}
+ {t->kind = 11; break;}
case 9:
- {t->kind = 14; break;}
- case 10:
{t->kind = 15; break;}
+ case 10:
+ {t->kind = 16; break;}
case 11:
- {t->kind = 19; break;}
+ {t->kind = 20; break;}
case 12:
- {t->kind = 23; break;}
- case 13:
{t->kind = 24; break;}
+ case 13:
+ {t->kind = 25; break;}
case 14:
- {t->kind = 26; break;}
+ {t->kind = 27; break;}
case 15:
case_15:
- {t->kind = 30; break;}
+ {t->kind = 31; break;}
case 16:
case_16:
- {t->kind = 31; break;}
+ {t->kind = 32; break;}
case 17:
case_17:
- {t->kind = 32; break;}
+ {t->kind = 33; break;}
case 18:
case_18:
- {t->kind = 33; break;}
+ {t->kind = 34; break;}
case 19:
- {t->kind = 36; break;}
- case 20:
{t->kind = 37; break;}
+ case 20:
+ {t->kind = 38; break;}
case 21:
- recEnd = pos; recKind = 9;
+ recEnd = pos; recKind = 10;
if (ch == '=') {AddCh(); goto case_16;}
- else {t->kind = 9; break;}
+ else {t->kind = 10; break;}
case 22:
recEnd = pos; recKind = 1;
if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || ch == '_' || (ch >= 'a' && ch <= 'l') || (ch >= 'n' && ch <= 'z')) {AddCh(); goto case_1;}
else if (ch == 'm') {AddCh(); goto case_26;}
else {t->kind = 1; char *literal = coco_string_create(tval, 0, tlen); t->kind = keywords.get(literal, t->kind); coco_string_delete(literal); break;}
case 23:
- recEnd = pos; recKind = 28;
+ recEnd = pos; recKind = 29;
if (ch == '=') {AddCh(); goto case_17;}
- else {t->kind = 28; break;}
+ else {t->kind = 29; break;}
case 24:
- recEnd = pos; recKind = 29;
+ recEnd = pos; recKind = 30;
if (ch == '=') {AddCh(); goto case_15;}
- else {t->kind = 29; break;}
+ else {t->kind = 30; break;}
case 25:
- recEnd = pos; recKind = 34;
+ recEnd = pos; recKind = 35;
if (ch == '=') {AddCh(); goto case_18;}
- else {t->kind = 34; break;}
+ else {t->kind = 35; break;}
case 26:
case_26:
recEnd = pos; recKind = 1;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/libosmscout/src/osmscout/util/File.cpp
^
|
@@ -17,18 +17,10 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <osmscout/private/Config.h>
-
#include <cstdio>
#include <cstdlib>
-#if defined(HAVE_SYS_STAT_H)
-#include <sys/stat.h>
-#endif
-
-#if defined(__WIN32__) || defined(WIN32)
-#include <windows.h>
-#endif
+#include <filesystem>
#include <osmscout/util/Exception.h>
#include <osmscout/util/File.h>
@@ -39,74 +31,24 @@
FileOffset GetFileSize(const std::string& filename)
{
- FILE *file;
-
- file=fopen(filename.c_str(),"rb");
-
- if (file==nullptr) {
- throw IOException(filename,"Opening file");
- }
-
-#if defined(__WIN32__) || defined(WIN32)
- if (_fseeki64(file, 0L, SEEK_END) != 0) {
- fclose(file);
- throw IOException(filename, "Seeking end of file");
- }
-
- const __int64 size = _ftelli64(file);
-
- if (size == -1) {
- fclose(file);
-
- throw IOException(filename, "Getting current file position");
- }
-
- fclose(file);
-
- return (FileOffset)size;
-#elif defined(HAVE_FSEEKO)
- if (fseeko(file,0L,SEEK_END)!=0) {
- fclose(file);
-
- throw IOException(filename,"Seeking end of file");
- }
-
- off_t pos=ftello(file);
-
- if (pos==-1) {
- fclose(file);
-
- throw IOException(filename,"Getting current file position");
- }
-
- fclose(file);
-
- return (FileOffset)pos;
-
-#else
- if (fseek(file,0L,SEEK_END)!=0) {
- fclose(file);
-
- throw IOException(filename,"Seeking end of file");
+ try {
+ return std::filesystem::file_size(filename);
}
-
- long int pos=ftell(file);
-
- if (pos==-1) {
- fclose(file);
-
- throw IOException(filename,"Getting current file position");
+ catch (std::filesystem::filesystem_error& e) {
+ throw IOException(filename,"Cannot read size of file",e);
}
-
- fclose(file);
-
- return (FileOffset)pos;
-#endif
}
bool RemoveFile(const std::string& filename)
{
- return remove(filename.c_str())==0;
+ try {
+ std::filesystem::remove(filename);
+
+ return true;
+ }
+ catch (std::filesystem::filesystem_error& e) {
+ return false;
+ }
}
/**
@@ -115,33 +57,34 @@
bool RenameFile(const std::string& oldFilename,
const std::string& newFilename)
{
- return rename(oldFilename.c_str(),
- newFilename.c_str())==0;
+ try {
+ std::filesystem::rename(oldFilename,
+ newFilename);
+
+ return true;
+ }
+ catch (std::filesystem::filesystem_error& e) {
+ return false;
+ }
}
- std::string AppendFileToDir(const std::string& dir, const std::string& file)
+ std::string GetDirectory(const std::string& file)
{
-#if defined(__WIN32__) || defined(WIN32)
- std::string result(dir);
+ std::filesystem::path filePath=file;
- if (result.length()>0 && result[result.length()-1]!='\\') {
- result.append("\\");
+ if (!filePath.has_filename()) {
+ return filePath.make_preferred().string();
}
- result.append(file);
-
- return result;
-#else
- std::string result(dir);
+ return filePath.remove_filename().make_preferred().string();
+ }
- if (result.length()>0 && result[result.length()-1]!='/') {
- result.append("/");
- }
- result.append(file);
+ std::string AppendFileToDir(const std::string& dir, const std::string& file)
+ {
+ std::filesystem::path dirPath=dir;
- return result;
-#endif
+ return dirPath.append(file).make_preferred().string();
}
uint8_t BytesNeededToAddressFileData(const std::string& filename)
@@ -153,38 +96,22 @@
bool ExistsInFilesystem(const std::string& filename)
{
-#if defined(__WIN32__) || defined(WIN32)
- return GetFileAttributes(filename.c_str())!=INVALID_FILE_ATTRIBUTES;
-#elif defined(HAVE_SYS_STAT_H)
- struct stat s;
- return stat(filename.c_str(),&s)==0;
-#else
- throw IOException(filename,"Is file directory","Not implemented");
-#endif
+ try {
+ return std::filesystem::exists(filename);
+ }
+ catch (std::filesystem::filesystem_error& e) {
+ return false;
+ }
}
bool IsDirectory(const std::string& filename)
{
-#if defined(__WIN32__) || defined(WIN32)
- DWORD attributes=GetFileAttributes(filename.c_str());
-
- if (attributes==INVALID_FILE_ATTRIBUTES) {
- throw IOException(filename,"Is file directory");
+ try {
+ return std::filesystem::is_directory(filename);
}
-
- return (attributes & FILE_ATTRIBUTE_DIRECTORY)!=0;
-#elif defined(HAVE_SYS_STAT_H)
- struct stat s;
-
- if (stat(filename.c_str(),
- &s)!=0) {
- throw IOException(filename,"Is file directory");
+ catch (std::filesystem::filesystem_error& e) {
+ return false;
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/meson.build
^
|
@@ -399,5 +399,5 @@
run_target('cppcheck', command : ['scripts/cppcheck.sh',
- meson.build_root(),
- join_paths(meson.build_root(),'compile_commands.json')])
+ meson.current_build_dir(),
+ join_paths(meson.current_build_dir(),'compile_commands.json')])
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/contour_lines.ost
^
|
@@ -0,0 +1,22 @@
+OST
+
+TYPES
+ //
+ // contour lines
+ //
+
+ TYPE elevation_contour_major
+ = WAY ("contour"=="elevation" AND "contour_ext"=="elevation_major")
+ {Ele}
+ IGNORESEALAND PIN_WAY
+
+ TYPE elevation_contour_medium
+ = WAY ("contour"=="elevation" AND "contour_ext"=="elevation_medium")
+ {Ele}
+ IGNORESEALAND PIN_WAY
+
+ TYPE elevation_contour_minor
+ = WAY ("contour"=="elevation" AND "contour_ext"=="elevation_minor")
+ {Ele}
+ IGNORESEALAND PIN_WAY
+END
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/cycle.oss
^
|
@@ -0,0 +1,1984 @@
+OSS
+/*
+ See http://libosmscout.sourceforge.net/documentation/stylesheet/
+ for an description of the style sheet syntax.
+ */
+
+/*
+ Some general rules in the design of this specific style sheet:
+
+ Labels:
+ * A possible icon will always show on top
+ * The main label (the name of the object) will always be shown below the icon (else on top)
+ * A possible additional label (height of a peak) will be placed below the main label.
+*/
+
+FLAG
+ daylight = true;
+ waterway = true;
+ wood = true;
+ elevationContours = true;
+
+ IF daylight {
+ _natural = true;
+ _railway = true;
+ _leisure = true;
+ _building = true;
+ _minorBuilding = true;
+ }
+ ELSE {
+ _natural = false;
+ _railway = false;
+ _leisure = false;
+ _building = false;
+ _minorBuilding = false;
+ }
+
+ORDER WAYS
+ GROUP _route
+ GROUP highway_motorway
+ GROUP highway_motorway_trunk
+ GROUP highway_motorway_primary
+ GROUP highway_trunk
+ GROUP aerialway_gondola, aerialway_chair_lift, aerialway_drag_lift
+ GROUP highway_primary
+ GROUP highway_secondary
+ GROUP highway_tertiary
+ GROUP highway_motorway_link, highway_trunk_link, highway_primary_link, highway_secondary_link, highway_tertiary_link
+ GROUP highway_unclassified, highway_road, highway_residential
+ GROUP railway_rail,
+ aeroway_runway, aeroway_taxiway
+ GROUP highway_living_street, highway_service, highway_bus_guideway,
+ railway_tram, railway_light_rail, railway_subway, public_transport_platform,
+ railway_narrow_gauge, railway_preserved
+ GROUP highway_track, highway_pedestrian, highway_path, highway_cycleway,
+ highway_footway, highway_bridleway, highway_construction,
+ leisure_track
+ GROUP highway_steps, barrier_fence
+ GROUP waterway_weir, route_ferry
+ GROUP waterway_river, waterway_canal, waterway_drain, waterway_ditch, waterway_stream
+ GROUP elevation_contour_major, elevation_contour_medium, elevation_contour_minor
+
+CONST
+ MAG stepsMag = veryClose;
+ MAG labelPathsMag = veryClose;
+
+ MAG specialBuildingMag = close;
+ MAG labelSpecialBuildingMag = closer;
+
+ MAG buildingMag = closer;
+ MAG labelBuildingMag = veryClose;
+
+ MAG minorBuildingMag = block;
+
+ // Label priorities
+ UINT labelPrioWaypoint = 0;
+ UINT labelPrioContinent = 1;
+ UINT labelPrioIsland = 1;
+ UINT labelPrioCountry = 2;
+ UINT labelPrioState = 3;
+ UINT labelPrioRegion = 4;
+ UINT labelPrioCounty = 5;
+ UINT labelPrioMillionCity = 6;
+ UINT labelPrioBigCity = 7;
+ UINT labelPrioCity = 8;
+
+ UINT labelShieldMotorway = 9;
+ UINT labelShieldTrunk = 11;
+ UINT labelShieldPrimary = 11;
+
+ UINT labelPrioTown = 12;
+ UINT labelPrioVillage = 13;
+ UINT labelPrioHamlet = 14;
+ UINT labelPrioSuburb = 15;
+ UINT labelPrioLocality = 16;
+
+ UINT labelPrioCycle = 17;
+ UINT labelPrioAeroway = 17;
+ UINT labelPrioFerry = 17;
+ UINT labelPrioPublicTransportWay = 17;
+ UINT labelPrioHighway = 18;
+ UINT labelPrioOtherWays = 19;
+
+ UINT labelPrioNatural = 20;
+ UINT labelPrioLanduse = 25;
+ UINT labelPrioLeisure = 26;
+
+ UINT labelPrioPeak = 29;
+
+ UINT labelPrioHighwayServices = 34;
+ UINT labelPrioRailwayStation = 35;
+
+ UINT labelPrioSpecialBuilding = 37;
+ UINT labelPrioMajorBuilding = 38;
+
+ UINT labelPrioRailwayHalt = 40;
+ UINT labelPrioTramHalt = 40;
+
+ UINT labelPrioHighwayArea = 43;
+
+ UINT labelPrioAmenity = 45;
+ UINT labelPrioShop = 50;
+
+ UINT labelPrioHighwayJunction = 55;
+
+ UINT labelPrioBuilding = 100;
+
+ UINT labelPrioElevationContour = 500;
+
+ // For debugging :-)
+ COLOR red = #ff0000;
+
+ // Pseudo types
+ COLOR routeColor = #ae00ff88;
+
+ // Ground tiles
+
+ IF daylight {
+ COLOR waterColor = #85bdd6;
+ COLOR waterLabelColor = darken(@waterColor, 0.5);
+ COLOR landColor = #f1eee9;
+ COLOR unknownColor = @landColor;
+ }
+ ELSE {
+ COLOR waterColor = darken(#9acffd, 0.5);
+ COLOR waterLabelColor = darken(@waterColor, 0.5);
+ COLOR landColor = #333333;
+ COLOR unknownColor = @landColor;
+ }
+
+ // Borders
+ COLOR countryBorderColor = #ff0000;
+
+ // Contour
+ COLOR majorContourColor = #9f9f9f;
+ COLOR mediumContourColor = #a5a5a5;
+ COLOR minorContourColor = #aaaaaa;
+ COLOR contourLabelColor = #505050;
+
+ // Landuse, water
+ IF daylight {
+ COLOR allotmentsColor = #c8b084;
+ }
+ ELSE {
+ COLOR allotmentsColor = darken(#c8b084,0.5);
+ }
+
+ COLOR beachColor = #eecc55;
+
+ COLOR brownFieldColor = #b6b592;
+ COLOR brownFieldLabelColor = darken(@brownFieldColor, 0.5);
+
+ COLOR cemeteryColor = #a9caae;
+ COLOR commercialColor = #efc8c8;
+ COLOR constructionColor = #9d9d6c;
+
+ COLOR farmColor = #ead8bd;
+ COLOR farmyardColor = #dcbe92;
+ COLOR fellColor = #f9f9f9;
+
+ IF daylight {
+ COLOR woodColor = #aed1a0;
+ }
+ ELSE {
+ COLOR woodColor = darken(#aed1a0, 0.5);
+ }
+ COLOR woodLabelColor = darken(@woodColor, 0.5);
+
+ COLOR glacierColor = #ddecec;
+ COLOR grassColor = #e7f3ef;
+ COLOR greenFieldColor = #dcdcc8;
+ COLOR heathColor = #ffffc0;
+ COLOR industrialColor = #dfd1d6;
+
+ IF daylight {
+ COLOR landFillColor = #b6b591;
+ }
+ ELSE {
+ COLOR landFillColor = darken(#b6b591, 0.5);
+ }
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/land_sea.oss
^
|
@@ -0,0 +1,11 @@
+OSS
+
+STYLE
+ [MAG world-] {
+ [TYPE _tile_sea] AREA {color: @waterColor;}
+ //[TYPE _tile_coast] AREA {color: /*@coastColor;*/@waterColor;}
+ [TYPE _tile_land] AREA {color: @landColor;}
+ [TYPE _tile_unknown] AREA {color: @unknownColor;}
+ }
+
+END
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/land_sea_color.oss
^
|
@@ -0,0 +1,16 @@
+OSS
+
+CONST
+ IF daylight {
+ COLOR waterColor = #9acffd;
+ COLOR landColor = #f1eee9;
+ COLOR unknownColor = @waterColor;
+ }
+ ELSE {
+ COLOR waterColor = darken(#9acffd, 0.5);
+ COLOR landColor = #333333;
+ COLOR unknownColor = #000000;
+ }
+
+ COLOR coastColor = lighten(@waterColor,0.5);
+END
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/map.ost
^
|
@@ -72,44 +72,7 @@
Ignore objects of this type
*/
-/*
- List of max speeds aliases. Normally value for the tag "maxspeed" should always
- have a numeric value and the source of the speed limit should be placed into
- the value of the tag "source:maxspeed" containing an alias name.
- In some country this is not (only) the case, the alias is also sometimes
- placed into "maxspeed" itself. This table helps to resolve these aliases
- to numeric values again.
-
- https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Maxspeed
- https://wiki.openstreetmap.org/wiki/Speed_limits
-*/
-MAX SPEEDS
- SPEED "CZ:urban" = 50 km/h
- SPEED "CZ:rural" = 90 km/h
- SPEED "CZ:motorway" = 130 km/h
-
- SPEED "DE:living_street" = 10 km/h
- SPEED "DE:urban" = 50 km/h
- SPEED "DE:rural" = 100 km/h
-
- SPEED "FR:walk" = 6 km/h
- SPEED "FR:urban" = 50 km/h
- SPEED "FR:rural" = 90 km/h
- SPEED "FR:motorway" = 130 km/h
-
- SPEED "SK:urban" = 50 km/h
- SPEED "SK:rural" = 90 km/h
- SPEED "SK:motorway" = 130 km/h
-
- SPEED "IT:urban" = 50 km/h
- SPEED "IT:rural" = 90 km/h
- SPEED "IT:trunk" = 110 km/h
- SPEED "IT:motorway" = 130 km/h
-
- SPEED "RU:living_street" = 20 km/h
- SPEED "RU:urban" = 60 km/h
- SPEED "RU:rural" = 90 km/h
- SPEED "RU:motorway" = 110 km/h
+MODULE "max_speeds"
/*
Allows you to map surface descriptions to a grade value ([1-5]).
@@ -205,162 +168,10 @@
en: "width"
de: "Breite"
-TYPES
-
- //
- // contour lines
- //
-
- TYPE elevation_contour_major
- = WAY ("contour"=="elevation" AND "contour_ext"=="elevation_major")
- {Ele}
- IGNORESEALAND PIN_WAY
-
- TYPE elevation_contour_medium
- = WAY ("contour"=="elevation" AND "contour_ext"=="elevation_medium")
- {Ele}
- IGNORESEALAND PIN_WAY
-
- TYPE elevation_contour_minor
- = WAY ("contour"=="elevation" AND "contour_ext"=="elevation_minor")
- {Ele}
- IGNORESEALAND PIN_WAY
-
- //
- // Motorways and motorways-like: Areas (see https://wiki.openstreetmap.org/wiki/Key:area:highway?uselang=de)
- //
-
- TYPE highway_area_residential IGNORE
- = AREA ("area:highway"=="residential")
- {Name, NameAlt, Ref}
- PATH[FOOT BICYCLE CAR] LOCATION
-
- TYPE highway_area_pedestrian IGNORE
- = AREA ("area:highway"=="pedestrian")
- {Name, NameAlt, Ref}
- PATH[FOOT BICYCLE CAR] LOCATION
-
- TYPE highway_area_path IGNORE
- = AREA ("area:highway"=="path")
- {Name, NameAlt, Ref}
- PATH[FOOT BICYCLE CAR] LOCATION
-
- TYPE highway_area_cycleway IGNORE
- = AREA ("area:highway"=="cycleway")
- {Name, NameAlt, Ref}
- PATH[FOOT BICYCLE CAR] LOCATION
-
- TYPE highway_area_footway IGNORE
- = AREA ("area:highway"=="footway")
- {Name, NameAlt, Ref}
- PATH[FOOT BICYCLE CAR] LOCATION
-
- //
- // Motorways and motorways-like: Ways
- //
-
- TYPE highway_motorway
- = WAY ("highway"=="motorway")
- {Name, NameAlt, Ref, Destination}
- PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 2]
- DESC
- en: "motorway"
- de: "Autobahn"
-
- TYPE highway_motorway_trunk
- = WAY ("highway"=="trunk" AND EXISTS "motorroad" AND !("motorroad" IN ["no","false","0"]))
- {Name, NameAlt, Ref, Destination}
- PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 2]
- DESC
- en: "trunk"
- de: "Schnellstraße"
-
- TYPE highway_motorway_primary
- = WAY ("highway"=="primary" AND EXISTS "motorroad" AND !("motorroad" IN ["no","false","0"]))
- {Name, NameAlt, Ref, Destination}
- PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
-
- TYPE highway_motorway_link
- = WAY ("highway"=="motorway_link")
- {Name, NameAlt, Ref, Destination}
- PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
-
- // Other roads mainly for cars
-
- TYPE highway_trunk
- = WAY ("highway"=="trunk")
- {Name, NameAlt, Ref, Destination}
- PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
- DESC
- en: "trunk"
- de: "Schnellstraße"
-
- TYPE highway_trunk_link
- = WAY ("highway"=="trunk_link")
- {Name, NameAlt, Ref, Destination}
- PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
-
- TYPE highway_primary
- = WAY ("highway"=="primary")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
-
- TYPE highway_primary_link
- = WAY ("highway"=="primary_link")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
-
- TYPE highway_secondary
- = WAY ("highway"=="secondary")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
-
- TYPE highway_secondary_link
- = WAY ("highway"=="secondary_link")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
-
- TYPE highway_tertiary
- = WAY ("highway"=="tertiary")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
-
- TYPE highway_tertiary_link
- = WAY ("highway"=="tertiary_link")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
-
- TYPE highway_unclassified
- = WAY AREA ("highway"=="unclassified")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
-
- TYPE highway_road
- = WAY ("highway"=="road")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
-
- TYPE highway_residential
- = WAY AREA ("highway"=="residential")
- {Name, NameAlt, Ref, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION LANES[2 1]
-
- TYPE highway_living_street
- = WAY AREA ("highway"=="living_street")
- {Name, NameAlt, Sideway}
- PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
- DESC
- en: "living street"
- de: "Spielstraße"
-
- TYPE highway_service
- = WAY AREA ("highway"=="service")
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/max_speeds.ost
^
|
@@ -0,0 +1,41 @@
+OST
+
+/*
+ List of max speeds aliases. Normally value for the tag "maxspeed" should always
+ have a numeric value and the source of the speed limit should be placed into
+ the value of the tag "source:maxspeed" containing an alias name.
+ In some country this is not (only) the case, the alias is also sometimes
+ placed into "maxspeed" itself. This table helps to resolve these aliases
+ to numeric values again.
+
+ https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Maxspeed
+ https://wiki.openstreetmap.org/wiki/Speed_limits
+*/
+MAX SPEEDS
+ SPEED "CZ:urban" = 50 km/h
+ SPEED "CZ:rural" = 90 km/h
+ SPEED "CZ:motorway" = 130 km/h
+
+ SPEED "DE:living_street" = 10 km/h
+ SPEED "DE:urban" = 50 km/h
+ SPEED "DE:rural" = 100 km/h
+
+ SPEED "FR:walk" = 6 km/h
+ SPEED "FR:urban" = 50 km/h
+ SPEED "FR:rural" = 90 km/h
+ SPEED "FR:motorway" = 130 km/h
+
+ SPEED "SK:urban" = 50 km/h
+ SPEED "SK:rural" = 90 km/h
+ SPEED "SK:motorway" = 130 km/h
+
+ SPEED "IT:urban" = 50 km/h
+ SPEED "IT:rural" = 90 km/h
+ SPEED "IT:trunk" = 110 km/h
+ SPEED "IT:motorway" = 130 km/h
+
+ SPEED "RU:living_street" = 20 km/h
+ SPEED "RU:urban" = 60 km/h
+ SPEED "RU:rural" = 90 km/h
+ SPEED "RU:motorway" = 110 km/h
+END
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/motorways.ost
^
|
@@ -0,0 +1,140 @@
+OST
+
+TYPES
+
+ //
+ // Motorways and motorways-like: Areas (see https://wiki.openstreetmap.org/wiki/Key:area:highway?uselang=de)
+ //
+
+ TYPE highway_area_residential IGNORE
+ = AREA ("area:highway"=="residential")
+ {Name, NameAlt, Ref}
+ PATH[FOOT BICYCLE CAR] LOCATION
+
+ TYPE highway_area_pedestrian IGNORE
+ = AREA ("area:highway"=="pedestrian")
+ {Name, NameAlt, Ref}
+ PATH[FOOT BICYCLE CAR] LOCATION
+
+ TYPE highway_area_path IGNORE
+ = AREA ("area:highway"=="path")
+ {Name, NameAlt, Ref}
+ PATH[FOOT BICYCLE CAR] LOCATION
+
+ TYPE highway_area_cycleway IGNORE
+ = AREA ("area:highway"=="cycleway")
+ {Name, NameAlt, Ref}
+ PATH[FOOT BICYCLE CAR] LOCATION
+
+ TYPE highway_area_footway IGNORE
+ = AREA ("area:highway"=="footway")
+ {Name, NameAlt, Ref}
+ PATH[FOOT BICYCLE CAR] LOCATION
+
+ //
+ // Motorways and motorways-like: Ways
+ //
+
+ TYPE highway_motorway
+ = WAY ("highway"=="motorway")
+ {Name, NameAlt, Ref, Destination}
+ PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 2]
+ DESC
+ en: "motorway"
+ de: "Autobahn"
+
+ TYPE highway_motorway_trunk
+ = WAY ("highway"=="trunk" AND EXISTS "motorroad" AND !("motorroad" IN ["no","false","0"]))
+ {Name, NameAlt, Ref, Destination}
+ PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 2]
+ DESC
+ en: "trunk"
+ de: "Schnellstraße"
+
+ TYPE highway_motorway_primary
+ = WAY ("highway"=="primary" AND EXISTS "motorroad" AND !("motorroad" IN ["no","false","0"]))
+ {Name, NameAlt, Ref, Destination}
+ PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
+
+ TYPE highway_motorway_link
+ = WAY ("highway"=="motorway_link")
+ {Name, NameAlt, Ref, Destination}
+ PATH[CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
+
+ // Other roads mainly for cars
+
+ TYPE highway_trunk
+ = WAY ("highway"=="trunk")
+ {Name, NameAlt, Ref, Destination}
+ PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
+ DESC
+ en: "trunk"
+ de: "Schnellstraße"
+
+ TYPE highway_trunk_link
+ = WAY ("highway"=="trunk_link")
+ {Name, NameAlt, Ref, Destination}
+ PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
+
+ TYPE highway_primary
+ = WAY ("highway"=="primary")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
+
+ TYPE highway_primary_link
+ = WAY ("highway"=="primary_link")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
+
+ TYPE highway_secondary
+ = WAY ("highway"=="secondary")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
+
+ TYPE highway_secondary_link
+ = WAY ("highway"=="secondary_link")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
+
+ TYPE highway_tertiary
+ = WAY ("highway"=="tertiary")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY LANES[2 1]
+
+ TYPE highway_tertiary_link
+ = WAY ("highway"=="tertiary_link")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
+
+ TYPE highway_unclassified
+ = WAY AREA ("highway"=="unclassified")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
+
+ TYPE highway_road
+ = WAY ("highway"=="road")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION OPTIMIZE_LOW_ZOOM PIN_WAY
+
+ TYPE highway_residential
+ = WAY AREA ("highway"=="residential")
+ {Name, NameAlt, Ref, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION LANES[2 1]
+
+ TYPE highway_living_street
+ = WAY AREA ("highway"=="living_street")
+ {Name, NameAlt, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION PIN_WAY
+ DESC
+ en: "living street"
+ de: "Spielstraße"
+
+ TYPE highway_service
+ = WAY AREA ("highway"=="service")
+ {Name, NameAlt, Sideway}
+ PATH[FOOT BICYCLE CAR] LOCATION
+ DESC
+ en: "service"
+ de: "Erschließungsweg"
+
+END
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/route.oss
^
|
@@ -0,0 +1,11 @@
+OSS
+
+CONST
+ COLOR routeColor = #ff000088;
+
+STYLE
+ [MAG world-] {
+ [TYPE _route] WAY {color: @routeColor; displayWidth: 1.5mm; width: 6m; priority: 100; }
+ }
+
+END
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/standard.oss
^
|
@@ -60,6 +60,8 @@
GROUP waterway_weir, waterway_waterfall, route_ferry
GROUP waterway_river, waterway_canal, waterway_drain, waterway_ditch, waterway_stream
+MODULE "land_sea_color"
+
CONST
MAG stepsMag = veryClose;
MAG labelPathsMag = veryClose;
@@ -138,9 +140,6 @@
// For debugging :-)
COLOR red = #ff0000;
- // Pseudo types
- COLOR routeColor = #ff000088;
-
// Default label color
IF daylight {
COLOR labelColor = #000000;
@@ -151,21 +150,12 @@
COLOR emphasizeColor = #707070;
}
- // Ground tiles
-
IF daylight {
- COLOR waterColor = #9acffd;
COLOR waterLabelColor = darken(@waterColor, 0.5);
- COLOR landColor = #f1eee9;
- COLOR unknownColor = @waterColor;
}
ELSE {
- COLOR waterColor = darken(#9acffd, 0.5);
COLOR waterLabelColor = darken(@waterColor, 0.5);
- COLOR landColor = #333333;
- COLOR unknownColor = #000000;
}
- COLOR coastColor = lighten(@waterColor,0.5);
// Borders
COLOR countryBorderColor = #ff0000;
@@ -656,6 +646,8 @@
AREA.BORDER { width: 0.1mm; color: @turnSymbolOutlineColor; }
}
+MODULE "route"
+MODULE "land_sea"
STYLE
// -------------------------------------------------------
@@ -671,13 +663,6 @@
ICON { name: target;} */
[MAG world-] {
- [TYPE _route] WAY {color: @routeColor; displayWidth: 1.5mm; priority: 100; }
-
- [TYPE _tile_sea] AREA {color: @waterColor;}
- //[TYPE _tile_coast] AREA {color: /*@coastColor;*/@waterColor;}
- [TYPE _tile_land] AREA {color: @landColor;}
- [TYPE _tile_unknown] AREA {color: @unknownColor;}
-
//[TYPE _osm_tile_border] WAY {color: #222222; displayWidth: 0.2mm; }
//[TYPE _osm_subtile_border] WAY {color: #444444; displayWidth: 0.1mm; }
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/dependencies/libosmscout/stylesheets/winter-sports.oss
^
|
@@ -499,7 +499,7 @@
ICON { name: target;} */
[MAG world-] {
- [TYPE _route] WAY {color: @routeColor; displayWidth: 1.5mm; priority: 100; }
+ [TYPE _route] WAY {color: @routeColor; displayWidth: 1.5mm; width: 6m; priority: 100;}
[TYPE _tile_sea] AREA {color: @waterColor;}
//[TYPE _tile_coast] AREA {color: @waterColor;}
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/graphics/cover-2.23.svg
^
|
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="845"
+ height="422"
+ id="svg2054"
+ version="1.1"
+ sodipodi:docname="cover-2.17.svg"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <metadata
+ id="metadata14">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs12">
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect68354"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect67275"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect61307"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect60161"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect58467"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect52944"
+ is_visible="true"
+ lpeversion="1" />
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter51493"
+ x="-0.2313123"
+ y="-0.37891728"
+ width="1.4626246"
+ height="1.7578346">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.0860482"
+ id="feGaussianBlur51495" />
+ </filter>
+ <meshgradient
+ inkscape:collect="always"
+ id="meshgradient21283"
+ gradientUnits="userSpaceOnUse"
+ x="-332.61957"
+ y="814.60327">
+ <meshrow
+ id="meshrow47633">
+ <meshpatch
+ id="meshpatch47635">
+ <stop
+ path="c 5.2076,-5.43232e-05 13.5814,1.93095 18.7891,1.93095"
+ style="stop-color:#ffffff;stop-opacity:1"
+ id="stop47637" />
+ <stop
+ path="c 0.22361,7.77765 -1.84395,8.97825 -1.84406,16.3893"
+ style="stop-color:#a17e34;stop-opacity:1"
+ id="stop47639" />
+ <stop
+ path="c -5.20756,0.000281765 -8.57128,5.84397 -13.779,5.84397"
+ style="stop-color:#a17e34;stop-opacity:1"
+ id="stop47641" />
+ <stop
+ path="c 0,-7.41092 -3.16582,-16.7528 -3.16604,-24.1642"
+ style="stop-color:#a17e34;stop-opacity:1"
+ id="stop47643" />
+ </meshpatch>
+ <meshpatch
+ id="meshpatch47645">
+ <stop
+ path="c 5.2077,0 9.81985,0.929076 15.0274,0.929122"
+ id="stop47647" />
+ <stop
+ path="c 0.000144097,7.41081 0.595604,13.893 0.595604,21.3039"
+ style="stop-color:#5b471d;stop-opacity:1"
+ id="stop47649" />
+ <stop
+ path="c -2.11035,-6.44281 -10.3606,-5.23983 -17.4671,-5.84374"
+ style="stop-color:#a17e34;stop-opacity:1"
+ id="stop47651" />
+ </meshpatch>
+ </meshrow>
+ <meshrow
+ id="meshrow47653">
+ <meshpatch
+ id="meshpatch47655">
+ <stop
+ path="c -1.68717,14.2356 1.43271,21.6624 1.84406,28.0763"
+ id="stop47657" />
+ <stop
+ path="c -5.2077,0 -10.4154,0 -15.6231,1.13687e-13"
+ style="stop-color:#a17e34;stop-opacity:1"
+ id="stop47659" />
+ <stop
+ path="c -5.68434e-14,-7.41092 -5.68434e-14,-14.8218 4e-05,-22.2324"
+ style="stop-color:#cbb55e;stop-opacity:1"
+ id="stop47661" />
+ </meshpatch>
+ <meshpatch
+ id="meshpatch47663">
+ <stop
+ path="c 0,7.41092 -4.3727,6.98682 -4.37276,14.3978"
+ id="stop47665" />
+ <stop
+ path="c -5.20757,-0.000164599 -6.04249,7.83479 -11.2502,7.83478"
+ style="stop-color:#1f180a;stop-opacity:1"
+ id="stop47667" />
+ </meshpatch>
+ </meshrow>
+ </meshgradient>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter48085"
+ x="-0.011683676"
+ y="-0.0082102014"
+ width="1.0233674"
+ height="1.0164204">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.1521128"
+ id="feGaussianBlur48087" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1136"
+ id="namedview10"
+ showgrid="false"
+ inkscape:zoom="0.87407407"
+ inkscape:cx="353.51695"
+ inkscape:cy="253.98305"
+ inkscape:window-x="1920"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2054"
+ inkscape:pagecheckerboard="0" />
+ <image
+ sodipodi:absref="/home/karry/SailfishOS/projects/osmscout-sailfish/graphics/cover-2.17.jpg"
+ xlink:href="cover-2.17.jpg"
+ y="0"
+ x="0"
+ id="image892"
+ style="image-rendering:optimizeSpeed"
+ preserveAspectRatio="none"
+ height="422"
+ width="845" />
+ <g
+ id="label"
+ transform="matrix(1.4841993,0,0,1.4841993,49.48781,-1166.5396)"
+ style="opacity:1">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50px;line-height:99%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
+ x="263.37292"
+ y="835.81036"
+ id="text4187"><tspan
+ style="fill:#411f11;fill-opacity:0.734982"
|
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/pics/cover.jpg
^
|
[-]
[+]
|
Added |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/pics/edit-place.svg
^
|
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933333"
+ version="1.1"
+ id="svg8"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ sodipodi:docname="edit-place.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <defs
+ id="defs2">
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect2774"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect2176"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect1238"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect1234"
+ is_visible="true"
+ lpeversion="1" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect966"
+ is_visible="true"
+ lpeversion="1" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9195959"
+ inkscape:cx="26.832177"
+ inkscape:cy="36.996837"
+ inkscape:document-units="mm"
+ inkscape:current-layer="g849"
+ inkscape:document-rotation="0"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1136"
+ inkscape:window-x="1920"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="0" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Vrstva 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g849"
+ transform="matrix(0.26458333,0,0,0.26458333,1.3134673,4.3845239)">
+ <path
+ style="color:#000000;overflow:visible;fill:#b32020;stroke:#3b3b3b;stroke-width:0.56692914;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 43.752087,34.011478 -5.18702,-2.680934"
+ id="path2772"
+ inkscape:path-effect="#path-effect2774"
+ inkscape:original-d="m 43.752087,34.011478 c -2.0862,-1.083062 -3.09882,-1.595872 -5.18702,-2.680934"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="color:#000000;overflow:visible;fill:#b32020;stroke:#393939;stroke-width:0.56692914;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 41.919117,28.475389 1.83297,5.536089"
+ id="path2174"
+ inkscape:path-effect="#path-effect2176"
+ inkscape:original-d="m 41.919117,28.475389 c 1.135942,2.065576 1.104176,3.666114 1.83297,5.536089"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:0.799057;fill-rule:nonzero;stroke:none;stroke-width:3.28218;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
+ d="m 24.980638,-12.926012 c -4.326094,0 -9.009737,1.305058 -12.69179,4.3734204 -3.6820523,3.0683619 -6.2458554,7.94627224 -6.2458554,14.566113 0,5.0772656 3.511925,11.7450666 7.3878154,18.1486556 3.875889,6.40359 8.203216,12.28464 10.281406,14.824706 l 1.345813,1.645931 1.251436,-1.719545 c 0.891656,-1.226017 6.254746,-9.617696 7.127616,-10.87789 l -2.039151,-2.159411 c 0,0 -5.999191,8.659731 -6.449378,9.290543 C 22.763153,32.336019 19.443848,27.755669 16.23946,22.461508 12.464255,16.224264 9.3254171,9.3632594 9.3254171,6.0135214 c 0,-5.7992817 2.0931629,-9.5684646 5.0642579,-12.0443654 2.971096,-2.4759007 6.933475,-3.6127429 10.590963,-3.6127429 3.657487,0 7.621754,1.1368422 10.592851,3.6127429 2.971096,2.4759009 6.120114,6.03617119 5.490563,11.8011805 C 40.668506,9.392486 36.7526,16.035248 35.429007,18.253237 l 2.026255,2.081514 C 39.141007,17.509892 43.909514,9.9119914 43.998874,5.5447791 44.1343,-1.0736764 41.35637,-5.4842298 37.674316,-8.5525916 33.992262,-11.620953 29.306732,-12.926012 24.980638,-12.926012 Z"
+ id="path871"
+ sodipodi:nodetypes="ssssccccccssssssccsss" />
+ <path
+ style="color:#000000;overflow:visible;fill:none;stroke:#000000;stroke-width:0.944882;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 24.845588,16.585623 c 0.301589,-0.834018 0.791197,-1.59944 1.421913,-2.222929 0.772594,-0.763741 1.756826,-1.311166 2.813202,-1.564688 m 0,0 13.301997,15.361391"
+ id="path964"
+ inkscape:path-effect="#path-effect966"
+ inkscape:original-d="m 24.845588,16.585623 c 0.294857,-0.782248 0.600352,-1.482991 1.421913,-2.222929 0.817198,-0.736007 2.336185,-1.14744 2.813202,-1.564688 m 0,0 c 4.434999,5.121464 8.868998,10.241927 13.301997,15.361391"
+ sodipodi:nodetypes="csccc" />
+ <path
+ style="color:#000000;overflow:visible;fill:#b32020;stroke:#000000;stroke-width:0.944882;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 42.382699,28.159397 c -0.50812,0.737564 -1.106918,1.412593 -1.778618,2.005051 -0.763838,0.673726 -1.621958,1.240407 -2.541504,1.678346"
+ id="path1232"
+ inkscape:path-effect="#path-effect1234"
+ inkscape:original-d="m 42.382699,28.159397 c -0.765534,0.882832 -1.199243,1.554663 -1.778618,2.005051 -0.642181,0.499212 -1.439147,0.769092 -2.541504,1.678346"
+ sodipodi:nodetypes="csc" />
+ <path
+ style="color:#000000;overflow:visible;fill:#b32020;stroke:#000000;stroke-width:0.9448819;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 38.062576,31.842794 24.845588,16.585623"
+ id="path1236"
+ inkscape:path-effect="#path-effect1238"
+ inkscape:original-d="M 38.062576,31.842794 C 34.112037,26.331256 28.798127,22.099161 24.845588,16.585623"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+</svg>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/qml/custom/MapComponent.qml
^
|
@@ -30,6 +30,7 @@
preventMouseStealing: true
property double topMargin:0
+ property double bottomMargin:0
Connections {
target: Global.positionSource
@@ -72,6 +73,7 @@
anchors{
left: parent.left
bottom: parent.bottom
+ bottomMargin: map.bottomMargin
}
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/qml/l10n.qml
^
|
@@ -77,7 +77,76 @@
QT_TRANSLATE_NOOP("routerVehicle", "foot"),
// names of major database types
- QT_TRANSLATE_NOOP("objectType", "building")
+ QT_TRANSLATE_NOOP("objectType", "building"),
+ QT_TRANSLATE_NOOP("objectType", "amenity"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_atm"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_bar"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_cafe"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_cafe_building"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_drinking_water"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_fast_food"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_fast_food_building"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_ferry_terminal"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_fuel"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_fuel_building"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_hospital"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_charging_station"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_parking"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_parking_building"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_pharmacy"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_post_box"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_post_office"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_pub"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_recycling"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_restaurant"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_restaurant_building"),
+ QT_TRANSLATE_NOOP("objectType", "amenity_toilets"),
+ QT_TRANSLATE_NOOP("objectType", "_highlighted"),
+ QT_TRANSLATE_NOOP("objectType", "highway_bus_stop"),
+ QT_TRANSLATE_NOOP("objectType", "highway_mini_roundabout"),
+ QT_TRANSLATE_NOOP("objectType", "highway_street_lamp"),
+ QT_TRANSLATE_NOOP("objectType", "historic_castle"),
+ QT_TRANSLATE_NOOP("objectType", "historic_castle_building"),
+ QT_TRANSLATE_NOOP("objectType", "historic_memorial"),
+ QT_TRANSLATE_NOOP("objectType", "historic_memorial_building"),
+ QT_TRANSLATE_NOOP("objectType", "historic_monument"),
+ QT_TRANSLATE_NOOP("objectType", "historic_monument_building"),
+ QT_TRANSLATE_NOOP("objectType", "christian_church"),
+ QT_TRANSLATE_NOOP("objectType", "christian_church_building"),
+ QT_TRANSLATE_NOOP("objectType", "leisure_playground"),
+ QT_TRANSLATE_NOOP("objectType", "natural_cave_entrance"),
+ QT_TRANSLATE_NOOP("objectType", "natural_peak"),
+ QT_TRANSLATE_NOOP("objectType", "natural_spring"),
+ QT_TRANSLATE_NOOP("objectType", "natural_tree"),
+ QT_TRANSLATE_NOOP("objectType", "railway_halt"),
+ QT_TRANSLATE_NOOP("objectType", "railway_station"),
+ QT_TRANSLATE_NOOP("objectType", "railway_subway_entrance"),
+ QT_TRANSLATE_NOOP("objectType", "railway_tram_stop"),
+ QT_TRANSLATE_NOOP("objectType", "speed_camera"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_alpine_hut"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_alpine_hut_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_artwork"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_camp_site"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_caravan_site"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_guest_house"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_guest_house_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_hostel"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_hostel_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_hotel"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_hotel_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_chalet"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_chalet_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_information"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_information_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_information_guidepost"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_motel"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_motel_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_museum"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_museum_building"),
+ QT_TRANSLATE_NOOP("objectType", "tourism_viewpoint"),
+ QT_TRANSLATE_NOOP("objectType", "waterway_waterfall"),
+ QT_TRANSLATE_NOOP("objectType", "waterway_weir"),
+ QT_TRANSLATE_NOOP("objectType", "waypoint")
]
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/qml/pages/MapPage.qml
^
|
@@ -19,6 +19,7 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
+import Sailfish.Share 1.0
import Nemo.KeepAlive 1.2
import Nemo.Notifications 1.0
import Nemo.DBus 2.0
@@ -550,9 +551,11 @@
topMargin: nextStepBox.height +
speedIndicator.height + (speedIndicator.height > 0 ? Theme.paddingMedium: 0) +
- trackerIndicator.height + (trackerIndicator.height > 0 ? Theme.paddingMedium: 0);
+ infoPanel.height + (infoPanel.height > 0 ? Theme.paddingMedium: 0);
+ bottomMargin: poiBox.height
showCurrentPosition: true
+ interactiveIcons: true
vehiclePosition: Global.navigationModel.vehiclePosition
followVehicle: Global.navigationModel.destinationSet
renderingType: Global.navigationModel.destinationSet ? "plane" : "tiled"
@@ -595,15 +598,35 @@
}
CollectionMapBridge{
+ id: collectionMapBridge
map: map
enabled: AppSettings.showCollections
}
+ onIconTapped: {
+ //(QPoint screenCoord, double lat, double lon, QString databasePath,
+ // QString objectType, quint64 objectId, int poiId, QString type,
+ // QString name, QString altName, QString ref, QString operatorName, QString phone, QString website);
+ poiBox.objectType = objectType;
+ poiBox.objectId = objectId;
+ poiBox.poiId = poiId;
+ poiBox.type = type;
+ poiBox.name = name;
+ poiBox.altName = altName;
+ poiBox.ref = ref;
+ poiBox.operatorName = operatorName;
+ poiBox.phone = phone;
+ poiBox.website = website;
+ poiBox.lat = lat;
+ poiBox.lon = lon;
+ poiBox.show();
+ }
onTap: {
console.log("tap: " + screenX + "x" + screenY + " @ " + lat + " " + lon + " (map center "+ map.view.lat + " " + map.view.lon + ")");
if (drawer.open){
drawer.open = false;
}
+ poiBox.hide();
}
onLongTap: {
@@ -678,7 +701,7 @@
right: parent.right
bottom: parent.bottom
rightMargin: Theme.paddingMedium
- bottomMargin: active ? Theme.paddingMedium : 0
+ bottomMargin: (active ? Theme.paddingMedium : 0) + poiBox.height
}
width: Theme.iconSizeLarge
height: active ? width : 0
@@ -859,6 +882,369 @@
}
}
}
+
+ ShaderEffectSource {
+ id: poiBlurSource
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ height: poiBox.height
+ visible: poiBox.visible
+
+ //color: "transparent"
+
+ sourceItem: map
+ recursive: true
+ live: true
+ sourceRect: Qt.rect(poiBlurSource.x, poiBlurSource.y, poiBlurSource.width, poiBlurSource.height)
+ }
+
+ Rectangle {
+ id: poiBox
+
+ property string objectType: ""
+ property int objectId: 0
+ property int poiId: 0
+ property double lat
+ property double lon
+ property string type: ""
+ property bool isWaypoint: Utils.startsWith(poiBox.type, "_waypoint")
+ property string name: ""
+ property string altName: ""
+ property string ref: ""
+ property string operatorName: ""
+ property string phone: ""
+ property string website: ""
+
+ function hide() {
+ state = "HIDDEN";
+ }
+ function show() {
+ state = "MINIMAL";
+ }
+
+ state: "HIDDEN"
+
+ states: [
+ State {
+ name: "HIDDEN"
+ PropertyChanges { target: poiBox; height: 0; }
+ },
+ State {
+ name: "MINIMAL"
+ PropertyChanges { target: poiBox; height: poiDetails.height; }
+ },
+ State {
+ name: "INFORMATIVE"
+ PropertyChanges { target: poiBox; height: poiDetails.height; }
+ }
+ ]
+
+ onObjectTypeChanged: {
+ if (objectType=="") {
+ state = "HIDDEN";
+ } else {
+ state = "MINIMAL";
+ }
+ }
+
+ Behavior on height {
+ NumberAnimation {
+ duration: 200
+ }
+ }
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ height: 0
+ visible: height > 0
+ color: "transparent"
+
+ FastBlur {
+ id: poiBlur
+ anchors.fill: parent
+ source: poiBlurSource
+ radius: 32
+ }
+
+ Rectangle {
+ id: poiBackground
+ anchors.fill: parent
+ color: nextStepMouseArea.pressed ? Theme.rgba(Theme.highlightDimmerColor, 0.5) : Theme.rgba(Theme.highlightDimmerColor, 0.7)
+
+ IconButton{
+ id: poiMoreIcon
+ icon.source: "image://theme/icon-m-change-type"
+ anchors{
+ right: parent.right
+ top: parent.top
+ }
+ rotation: poiBox.state == "INFORMATIVE" ? 180 : 0
+ Behavior on rotation {
+ PropertyAnimation {
+ duration: 200
+ }
+ }
+ }
+ MouseArea {
+ anchors{
+ top: parent.top
+ right: parent.right
+ left: parent.left
+ }
+ height: Theme.iconSizeMedium
+
+ onClicked: {
+ if (poiBox.state == "INFORMATIVE") {
+ poiBox.state = "MINIMAL";
+ } else {
+ poiBox.state = "INFORMATIVE";
+ }
+ }
+ }
+
+ Row {
+ id: poiDetails
+ POIIcon{
+ id: poiIcon
+ poiType: poiBox.type
+ width: Theme.iconSizeMedium
+ height: Theme.iconSizeMedium
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/scripts/deploy.sh
^
|
@@ -15,7 +15,7 @@
##################################################################
## configure SDK
PATH=$PATH:~/SailfishOS/bin/
-export OS_VERSION=${OS_VERSION:-4.3.0.12}
+export OS_VERSION=${OS_VERSION:-4.4.0.58}
# device may be configured in SailfishOS SDK
if [ $# -ge 2 ] ; then
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/src/CollectionMapBridge.cpp
^
|
@@ -289,3 +289,18 @@
init();
emit enabledChanged(enabled);
}
+
+QVariantList CollectionMapBridge::getWaypointIds(qint64 objectId) const
+{
+ for (auto colIt=displayedCollection.begin(); colIt!=displayedCollection.end(); colIt++) {
+ for (auto wptIt=colIt->waypoints.begin(); wptIt!=colIt->waypoints.end(); wptIt++){
+ if (wptIt->id==objectId){
+ QVariantList result;
+ result << colIt.key();
+ result << wptIt.key();
+ return result;
+ }
+ }
+ }
+ return QVariantList();
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/src/CollectionMapBridge.h
^
|
@@ -83,6 +83,8 @@
void setEnabled(bool b);
+ Q_INVOKABLE QVariantList getWaypointIds(qint64 objectId) const;
+
private:
void Invalidate();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/stylesheets/outdoor.oss
^
|
@@ -1860,8 +1860,8 @@
AREA.ICON { name: toilets; }
}
[TYPE amenity_atm] {
- NODE.ICON { name: toilets; }
- AREA.ICON { name: toilets; }
+ NODE.ICON { name: atm; }
+ AREA.ICON { name: atm; }
}
[TYPE leisure_playground] {
NODE.ICON { name: playground; }
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/stylesheets/standard.oss
^
|
@@ -2148,8 +2148,8 @@
AREA.ICON { name: toilets; }
}
[TYPE amenity_atm] {
- NODE.ICON { name: toilets; }
- AREA.ICON { name: toilets; }
+ NODE.ICON { name: atm; }
+ AREA.ICON { name: atm; }
}
[TYPE leisure_playground] {
NODE.ICON { name: playground; }
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/cs.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Hledat</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Chyba při stahování mapy</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Kde jsem?</translation>
+ <source>Unsupported url %1</source>
+ <translation>Nepodporované url %1</translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>O OSM Scout</translation>
+ <source>Cannot parse url %1</source>
+ <translation>Chyba při parsování url %1</translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Offline mapy</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Chyba stopaře</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Mapa</translation>
+ <source>Resume tracking?</source>
+ <translation>Obnovit stopaře?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Hledat</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Kde jsem?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Sbírky</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Zastavit navigaci</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Stopař</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>ETA %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Offline mapy</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Změnit prostředek</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Mapa</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Nastavení</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Stopař</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>O OSM Scout</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Obnovit stopaře?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation>Pro hledání je vyžadována offline mapa.</translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Chyba stopaře</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation>Pro navigaci je vyžadována offline mapa.</translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Chyba při stahování mapy</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation>Sdílet odkaz na místo</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation>Pro hledání je vyžadována offline mapa.</translation>
+ <source>Edit waypoint</source>
+ <translation>Upravit místo</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation>Pro navigaci je vyžadována offline mapa.</translation>
+ <source>ETA %1</source>
+ <translation>ETA %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation>Směr: %1</translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation>Nepodporované url %1</translation>
+ <source>Stop navigation</source>
+ <translation>Zastavit navigaci</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation>Chyba při parsování url %1</translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Změnit prostředek</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation>Mažu</translation>
</message>
</context>
<context>
@@ -1811,6 +1825,282 @@
<source>building</source>
<translation>Budova</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation>Bankomat</translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation>Bar</translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation>Kavárna</translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation>Kavárna</translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation>Pítko pitné vody</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation>Fast food</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation>Fast food</translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation>Přívoz / trajekt</translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation>Čerpací stanice</translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation>Čerpací stanice</translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation>Nabícejí stanice</translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation>Parkoviště</translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/de.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Suchen</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Kartendownloadfehler</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Wo befinde ich mich?</translation>
+ <source>Unsupported url %1</source>
+ <translation>Nicht unsterstützte url%1</translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Über OSM Scout</translation>
+ <source>Cannot parse url %1</source>
+ <translation>Kann url %1 nicht parsen</translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Kartendownloads</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Tracker Fehler</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Karteneinstellungen</translation>
+ <source>Resume tracking?</source>
+ <translation>Aufzeichnung fortsetzen?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Suchen</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Wo befinde ich mich?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Sammlungen</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Beende Navigation</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Routenaufzeichnung</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>ETA%1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Kartendownloads</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Ändere Verkehrsmittel</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Karteneinstellungen</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Einstellungen</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Routenaufzeichnung</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Über OSM Scout</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Aufzeichnung fortsetzen?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation>Offline-Kartendatenbank wird für Suchfunktionalität benötigt</translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Tracker Fehler</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation>Offline-Kartendatenbank wird für Navigationsfunktion benötigt</translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Kartendownloadfehler</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">Teile Orts als link</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation>Offline-Kartendatenbank wird für Suchfunktionalität benötigt</translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Bearbeite Wegpunkt</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation>Offline-Kartendatenbank wird für Navigationsfunktion benötigt</translation>
+ <source>ETA %1</source>
+ <translation>ETA%1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation>Ziele: %1</translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation>Nicht unsterstützte url%1</translation>
+ <source>Stop navigation</source>
+ <translation>Beende Navigation</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation>Kann url %1 nicht parsen</translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Ändere Verkehrsmittel</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Lösche</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Gebäude</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/en.ts
^
|
@@ -742,28 +742,35 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
+ <source>Unsupported url %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
+ <source>Cannot parse url %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
@@ -777,16 +784,18 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Stop navigation</source>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
@@ -795,30 +804,29 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
+ <source>Edit waypoint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
+ <source>ETA %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -826,11 +834,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
+ <source>Stop navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cannot parse url %1</source>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Building</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation>ATM</translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation>Bar</translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation>Cafe</translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation>Cafe</translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation>Source of drinking water</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation>Fast food</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation>Fast food</translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation>Ferry terminal</translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation>Fuel station</translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation>Fuel station</translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation>Charging station</translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation>Parking</translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation>Parking</translation>
+ </message>
+ <message>
+ <source>amenity_pharmacy</source>
+ <translation>Pharmacy</translation>
+ </message>
+ <message>
+ <source>amenity_post_box</source>
+ <translation>Post box</translation>
+ </message>
+ <message>
+ <source>amenity_post_office</source>
+ <translation>Post office</translation>
+ </message>
+ <message>
+ <source>amenity_pub</source>
+ <translation>Pub</translation>
+ </message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/es.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Buscar</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Error al bajar el mapa</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Ubicación</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Acerca de</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Nube</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Error del rastreador</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Mapa</translation>
+ <source>Resume tracking?</source>
+ <translation>Resumir rastreo?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Buscar</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Ubicación</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Colecciones</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Parar navegación</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Rastreador</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>HEA %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Nube</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Cambiar vehículo</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Mapa</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Ajustes</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Rastreador</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Acerca de</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Resumir rastreo?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation>Se requiere una base de datos de mapas sin linea para la funcionalidad de búsqueda.</translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Error del rastreador</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation>Se requiere una base de datos de mapas sin linea para la funcionalidad de navegación.</translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Error al bajar el mapa</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">Compartir enlace de lugar</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation>Se requiere una base de datos de mapas sin linea para la funcionalidad de búsqueda.</translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Editar punto definido</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation>Se requiere una base de datos de mapas sin linea para la funcionalidad de navegación.</translation>
+ <source>ETA %1</source>
+ <translation>HEA %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation>Destinos: %1</translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation type="unfinished"></translation>
+ <source>Stop navigation</source>
+ <translation>Parar navegación</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation type="unfinished"></translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Cambiar vehículo</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Borrando</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>edificio</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/et.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Leia kaardilt</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Viga kaardi allalaadimisel</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Kus ma praegu olen?</translation>
+ <source>Unsupported url %1</source>
+ <translation>%1 url ei ole toetatud</translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>OSM Scout rakenduse teave</translation>
+ <source>Cannot parse url %1</source>
+ <translation>%1 urli töötlemine ei õnnestu</translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Võrguühenduseta kaardid</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Viga raja salvestamisel</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Kaart</translation>
+ <source>Resume tracking?</source>
+ <translation>Kas jätkame raja salvestamist?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Leia kaardilt</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Kus ma praegu olen?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Kogumikud</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Lõpeta tee näitamine</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Radade salvestaja</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>Saabume %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Võrguühenduseta kaardid</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Muuda liikumisviisi</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Kaart</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Seadistused</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Radade salvestaja</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>OSM Scout rakenduse teave</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Kas jätkame raja salvestamist?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation>Võrguühenduseta kasutatavate kaartide andmekogu on vajalik otsingute tegemiseks.</translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Viga raja salvestamisel</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation>Võrguühenduseta kasutatavate kaartide andmekogu on vajalik tee juhatamiseks.</translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Viga kaardi allalaadimisel</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation>Jaga viidet asukohale</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation>Võrguühenduseta kasutatavate kaartide andmekogu on vajalik otsingute tegemiseks.</translation>
+ <source>Edit waypoint</source>
+ <translation>Muuda teekonnapunkti</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation>Võrguühenduseta kasutatavate kaartide andmekogu on vajalik tee juhatamiseks.</translation>
+ <source>ETA %1</source>
+ <translation>Saabume %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation>Sihtkohad: %1</translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation>%1 url ei ole toetatud</translation>
+ <source>Stop navigation</source>
+ <translation>Lõpeta tee näitamine</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation>%1 urli töötlemine ei õnnestu</translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Muuda liikumisviisi</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation>Kustutan</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Hooned</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation>Sularahaautomaat</translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation>Baar</translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation>Kohvik</translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation>Kohvik</translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation>Joogivee allikas</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation>Kiirtoidukoht</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation>Kiirtoidukoht</translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation>Praamiterminal</translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation>Tankla</translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation>Tankla</translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation>Laadimisjaam</translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation>Parkla</translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/fa.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>جستجو</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>من کجا هستم؟</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>درباره</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>بارگیریهای نقشه</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>تنظیمات نقشه</translation>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>جستجو</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>من کجا هستم؟</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>مجموعهها</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>توقف مسیریابی</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
- <translation type="unfinished"></translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>بارگیریهای نقشه</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation type="unfinished"></translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>تنظیمات نقشه</translation>
</message>
<message>
<source>Settings</source>
@@ -795,30 +804,29 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation type="unfinished"></translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>درباره</translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
+ <source>Edit waypoint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
+ <source>ETA %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -826,11 +834,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
+ <source>Stop navigation</source>
+ <translation>توقف مسیریابی</translation>
+ </message>
+ <message>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cannot parse url %1</source>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1809,6 +1823,282 @@
<source>building</source>
<translation>ساختمان</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_pharmacy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/fr.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Rechercher</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Erreur de téléchargement de carte</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Où suis-je ?</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>À propos</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Téléchargements de carte</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Erreur de la trace GPS</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Réglages de la carte</translation>
+ <source>Resume tracking?</source>
+ <translation>Reprendre la trace ?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Rechercher</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Où suis-je ?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Collections</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Arrêter la navigation</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Trace GPS</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>Heure d'arrivée estimée %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Téléchargements de carte</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Changer de moyen de transport</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Réglages de la carte</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Paramètres</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Trace GPS</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>À propos</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Reprendre la trace ?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Erreur de la trace GPS</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Erreur de téléchargement de carte</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">Partager l'emplacement</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation type="unfinished"></translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Modifier le repère</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation type="unfinished"></translation>
+ <source>ETA %1</source>
+ <translation>Heure d'arrivée estimée %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation type="unfinished"></translation>
+ <source>Stop navigation</source>
+ <translation>Arrêter la navigation</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation type="unfinished"></translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Changer de moyen de transport</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Suppression</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Bâtiment</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/hu.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Keresés</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Jelenlegi pozíció</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Az alkalmazásról</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Letölthető térképek</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Térképbeállítások</translation>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Keresés</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Jelenlegi pozíció</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Stop navigation</source>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
- <translation type="unfinished"></translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Letölthető térképek</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation type="unfinished"></translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Térképbeállítások</translation>
</message>
<message>
<source>Settings</source>
@@ -795,30 +804,29 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation type="unfinished"></translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Az alkalmazásról</translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation type="unfinished"></translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Útpont szerkesztése</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
+ <source>ETA %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -826,13 +834,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
+ <source>Stop navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cannot parse url %1</source>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Törlés</translation>
+ </message>
</context>
<context>
<name>NavigationInstructions</name>
@@ -1809,6 +1823,282 @@
<source>building</source>
<translation>Épület</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_pharmacy</source>
+ <translation type="unfinished"></translation>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/it.ts
^
|
@@ -742,28 +742,35 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
+ <source>Unsupported url %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
+ <source>Cannot parse url %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
@@ -777,16 +784,18 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Stop navigation</source>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
@@ -795,30 +804,29 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
+ <source>Edit waypoint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
+ <source>ETA %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -826,11 +834,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
+ <source>Stop navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cannot parse url %1</source>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_pharmacy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_post_box</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_post_office</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_pub</source>
+ <translation type="unfinished"></translation>
+ </message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/nb.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Søk</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Hvor er jeg?</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Om</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Kartnedlasting</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Kartinstillinger</translation>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Søk</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Hvor er jeg?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Stop navigation</source>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
- <translation type="unfinished"></translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Kartnedlasting</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation type="unfinished"></translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Kartinstillinger</translation>
</message>
<message>
<source>Settings</source>
@@ -795,30 +804,29 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation type="unfinished"></translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Om</translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
+ <source>Edit waypoint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
+ <source>ETA %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -826,11 +834,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
+ <source>Stop navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cannot parse url %1</source>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>bygning</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_pharmacy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_post_box</source>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/nl.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Zoeken</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Waar ben ik?</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Over</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Kaartdownloads</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Kaartinstellingen</translation>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Zoeken</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Waar ben ik?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Verzamelingen</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Navigatie stoppen</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>ETA %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Kaartdownloads</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Voertuig wijzigen</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Kaartinstellingen</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation type="unfinished"></translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Over</translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation type="unfinished"></translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">Koppeling naar locatie delen</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation type="unfinished"></translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Routepunt bewerken</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation type="unfinished"></translation>
+ <source>ETA %1</source>
+ <translation>ETA %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation type="unfinished"></translation>
+ <source>Stop navigation</source>
+ <translation>Navigatie stoppen</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation type="unfinished"></translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Voertuig wijzigen</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Wordt verwijderd</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Gebouw</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/nl_BE.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Zoeken</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Waar ben ik?</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Over</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Kaartdownloads</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Kaartinstellingen</translation>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Zoeken</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Waar ben ik?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Verzamelingen</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Navigatie stoppen</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>ETA %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Kaartdownloads</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Voertuig wijzigen</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Kaartinstellingen</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation type="unfinished"></translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Over</translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation type="unfinished"></translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">Koppeling naar locatie delen</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation type="unfinished"></translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Routepunt bewerken</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation type="unfinished"></translation>
+ <source>ETA %1</source>
+ <translation>ETA %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation type="unfinished"></translation>
+ <source>Stop navigation</source>
+ <translation>Navigatie stoppen</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation type="unfinished"></translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Voertuig wijzigen</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Wordt verwijderd</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Gebouw</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/pl.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Wyszukaj</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Błąd pobierania mapy</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Gdzie jestem?</translation>
+ <source>Unsupported url %1</source>
+ <translation>Nieobsługiwany adres URL %1</translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>O OSM Scout</translation>
+ <source>Cannot parse url %1</source>
+ <translation>Nie można sparsować adresu URL</translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Mapy do pobrania</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Błąd trackera</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Ustawienia mapy</translation>
+ <source>Resume tracking?</source>
+ <translation>Wznowić śledzenie?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Wyszukaj</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Gdzie jestem?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Kolekcje</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Zatrzymaj nawigację</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Tracker</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>ETA %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Mapy do pobrania</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Zmień pojazd</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Ustawienia mapy</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Ustawienia</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Tracker</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>O OSM Scout</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Wznowić śledzenie?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation>Baza danych map offline jest wymagana, aby móc wyszukiwać.</translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Błąd trackera</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation>Baza danych map offline jest wymagana, aby móc nawigować.</translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Błąd pobierania mapy</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation>Udostępnij link do miejsca</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation>Baza danych map offline jest wymagana, aby móc wyszukiwać.</translation>
+ <source>Edit waypoint</source>
+ <translation>Edytuj punkt trasy</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation>Baza danych map offline jest wymagana, aby móc nawigować.</translation>
+ <source>ETA %1</source>
+ <translation>ETA %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation>Cele podróży: %1</translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation>Nieobsługiwany adres URL %1</translation>
+ <source>Stop navigation</source>
+ <translation>Zatrzymaj nawigację</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation>Nie można sparsować adresu URL</translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Zmień pojazd</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation>Usuwanie</translation>
</message>
</context>
<context>
@@ -1811,6 +1825,282 @@
<source>building</source>
<translation>budynek</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation>Bankomat</translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation>Bar</translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation>Kawiarnia</translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation>Kawiarnia</translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation>Źródło pitnej wody</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation>fast food</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation>Fast food</translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation>Terminal promowy</translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation>Stacja benzynowa</translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation>Stacja benzynowa</translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation>Stacja ładowania</translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation>Parking</translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/pt_BR.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
+ <source>Unsupported url %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Sobre</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Configurações do mapa</translation>
+ <source>Resume tracking?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Coleções</translation>
</message>
<message>
- <source>Stop navigation</source>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>ETA %1</source>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation type="unfinished"></translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Configurações do mapa</translation>
</message>
<message>
<source>Settings</source>
@@ -795,30 +804,29 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation type="unfinished"></translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Sobre</translation>
</message>
<message>
- <source>Resume tracking?</source>
+ <source>Offline map database is required for search functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
+ <source>Edit waypoint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
+ <source>ETA %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -826,13 +834,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
+ <source>Stop navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cannot parse url %1</source>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Excluindo</translation>
+ </message>
</context>
<context>
<name>NavigationInstructions</name>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>Construção</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_pharmacy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_post_box</source>
+ <translation type="unfinished"></translation>
+ </message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/ru.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Поиск</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Где я?</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>О программе</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Загрузка карт</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Настройка карты</translation>
+ <source>Resume tracking?</source>
+ <translation>Продолжить запись пути</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Поиск</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Где я?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Точки и пути</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Отменить маршрут</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Трекер</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>Осталось %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Загрузка карт</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Сменить вид транспорта</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Настройка карты</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Настройка</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Трекер</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>О программе</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Продолжить запись пути</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
+ <source>Offline map database is required for navigation functionality.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation type="unfinished"></translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">Поделиться ссылкой на место</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation type="unfinished"></translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">Редактировать путевую точку</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation type="unfinished"></translation>
+ <source>ETA %1</source>
+ <translation>Осталось %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation type="unfinished"></translation>
+ <source>Stop navigation</source>
+ <translation>Отменить маршрут</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation type="unfinished"></translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Сменить вид транспорта</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">Удаление</translation>
</message>
</context>
<context>
@@ -1811,6 +1825,282 @@
<source>building</source>
<translation>Здания</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking_building</source>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/sv.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>Sök</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Fel vid nerladdning av kartor</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>Var är jag?</translation>
+ <source>Unsupported url %1</source>
+ <translation>URL som saknar stöd %1</translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>Om</translation>
+ <source>Cannot parse url %1</source>
+ <translation>Kan inte tolka URL %1</translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>Ladda ner kartor</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>Spårningsfel</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>Kartinställningar</translation>
+ <source>Resume tracking?</source>
+ <translation>Vill du återuppta spårningen?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>Sök</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>Var är jag?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>Samlingar</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>Avsluta navigering</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>Spårare</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>Beräknad ankomsttid %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>Ladda ner kartor</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>Byt fordon</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>Kartinställningar</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>Inställningar</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>Spårare</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>Om</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>Vill du återuppta spårningen?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation>Lokalt lagrad kartdatabas krävs för sökfunktionen.</translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>Spårningsfel</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation>Lokalt lagrad kartdatabas krävs för navigationsfunktionen.</translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>Fel vid nerladdning av kartor</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation>Dela platslänk</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation>Lokalt lagrad kartdatabas krävs för sökfunktionen.</translation>
+ <source>Edit waypoint</source>
+ <translation>Redigera vägpunkt</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation>Lokalt lagrad kartdatabas krävs för navigationsfunktionen.</translation>
+ <source>ETA %1</source>
+ <translation>Beräknad ankomsttid %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation>Destinationer: %1</translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation>URL som saknar stöd %1</translation>
+ <source>Stop navigation</source>
+ <translation>Avsluta navigering</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation>Kan inte tolka URL %1</translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>Byt fordon</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation>Tar bort</translation>
</message>
</context>
<context>
@@ -1810,6 +1824,282 @@
<source>building</source>
<translation>byggnad</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation>Uttagsautomat</translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation>Bar</translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation>Kafé</translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation>Kafé</translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation>Dricksvattenkälla</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation>Snabbmat</translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation>Snabbmat</translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation>Färjeterminal</translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation>Bensinstation</translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation>Bensinstation</translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation>Laddstation</translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation>Parkering</translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout-2.23.tar.bz2/translations/zh_CN.ts
^
|
@@ -742,29 +742,36 @@
<context>
<name>MapPage</name>
<message>
- <source>Search</source>
- <extracomment>menu item for Search on map</extracomment>
- <translation>搜索</translation>
+ <source>Map download error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>地图下载错误</translation>
</message>
<message>
- <source>Where am I?</source>
- <extracomment>menu item for path with place details</extracomment>
- <translation>我在哪儿?</translation>
+ <source>Unsupported url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>About</source>
- <extracomment>menu item for about page</extracomment>
- <translation>关于</translation>
+ <source>Cannot parse url %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Offline maps</source>
- <extracomment>menu item for offline map downloader</extracomment>
- <translation>地图下载</translation>
+ <source>Tracker error</source>
+ <extracomment>notification summary</extracomment>
+ <translation>追踪系统错误</translation>
</message>
<message>
- <source>Map</source>
- <extracomment>menu item for map settings</extracomment>
- <translation>地图设置</translation>
+ <source>Resume tracking?</source>
+ <translation>是否继续追踪?</translation>
+ </message>
+ <message>
+ <source>Search</source>
+ <extracomment>menu item for Search on map</extracomment>
+ <translation>搜索</translation>
+ </message>
+ <message>
+ <source>Where am I?</source>
+ <extracomment>menu item for path with place details</extracomment>
+ <translation>我在哪儿?</translation>
</message>
<message>
<source>Navigation</source>
@@ -777,17 +784,19 @@
<translation>收藏</translation>
</message>
<message>
- <source>Stop navigation</source>
- <translation>停止导航</translation>
+ <source>Tracker</source>
+ <extracomment>menu item for GPS tracker</extracomment>
+ <translation>追踪系统</translation>
</message>
<message>
- <source>ETA %1</source>
- <translation>ETA %1</translation>
+ <source>Offline maps</source>
+ <extracomment>menu item for offline map downloader</extracomment>
+ <translation>地图下载</translation>
</message>
<message>
- <source>Change vehicle</source>
- <extracomment>menu item: open routing page with current navigation destination</extracomment>
- <translation>换乘</translation>
+ <source>Map</source>
+ <extracomment>menu item for map settings</extracomment>
+ <translation>地图设置</translation>
</message>
<message>
<source>Settings</source>
@@ -795,43 +804,48 @@
<translation>设置</translation>
</message>
<message>
- <source>Tracker</source>
- <extracomment>menu item for GPS tracker</extracomment>
- <translation>追踪系统</translation>
+ <source>About</source>
+ <extracomment>menu item for about page</extracomment>
+ <translation>关于</translation>
</message>
<message>
- <source>Resume tracking?</source>
- <translation>是否继续追踪?</translation>
+ <source>Offline map database is required for search functionality.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Tracker error</source>
- <extracomment>notification summary</extracomment>
- <translation>追踪系统错误</translation>
+ <source>Offline map database is required for navigation functionality.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Map download error</source>
- <extracomment>notification summary</extracomment>
- <translation>地图下载错误</translation>
+ <source>Share place link</source>
+ <extracomment>Page header for share method selection</extracomment>
+ <translation type="unfinished">分享位置链接</translation>
</message>
<message>
- <source>Offline map database is required for search functionality.</source>
- <translation type="unfinished"></translation>
+ <source>Edit waypoint</source>
+ <translation type="unfinished">编辑路标</translation>
</message>
<message>
- <source>Offline map database is required for navigation functionality.</source>
- <translation type="unfinished"></translation>
+ <source>ETA %1</source>
+ <translation>ETA %1</translation>
</message>
<message>
<source>Destinations: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unsupported url %1</source>
- <translation type="unfinished"></translation>
+ <source>Stop navigation</source>
+ <translation>停止导航</translation>
</message>
<message>
- <source>Cannot parse url %1</source>
- <translation type="unfinished"></translation>
+ <source>Change vehicle</source>
+ <extracomment>menu item: open routing page with current navigation destination</extracomment>
+ <translation>换乘</translation>
+ </message>
+ <message>
+ <source>Deleting</source>
+ <extracomment>remorse dialog</extracomment>
+ <translation type="unfinished">删除中</translation>
</message>
</context>
<context>
@@ -1809,6 +1823,282 @@
<source>building</source>
<translation>建筑</translation>
</message>
+ <message>
+ <source>amenity_atm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_cafe_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_drinking_water</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fast_food_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_ferry_terminal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_fuel_building</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_charging_station</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>amenity_parking</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout.changes.in
^
|
@@ -537,3 +537,8 @@
* 2022-02-27 Lukáš Karas <lukas.karas@centrum.cz> 2.22
- update translations (German)
- improve label positioning for areas
+
+* 2022-04-28 Lukáš Karas <lukas.karas@centrum.cz> 2.23
+- fix amenity_atm icon
+- active (clickable) map icons / symbols
+- update translations (Czech, Estonian, Polish, Swedish)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-osmscout.yaml
^
|
@@ -1,6 +1,6 @@
Name: harbour-osmscout
Summary: OSMScout for Sailfish
-Version: 2.22
+Version: 2.23
Release: 1
# The contents of the Group field should be one of the groups listed here:
# http://gitorious.org/meego-developer-tools/spectacle/blobs/master/data/GROUPS
|