diff options
author | Stefan Wildemann <metalstrolch@users.noreply.github.com> | 2017-12-04 09:52:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-04 09:52:52 +0100 |
commit | 2723aba74958ec2201511737978e9d0e91a8b7a5 (patch) | |
tree | 16e971700ae6554f3c5442bd9e24d212deb28cbe | |
parent | 49274bcd2cf0355ebc6e6d9292fc173abda72198 (diff) | |
parent | d0d48666cb1dcfe53a1649e1153bbf884951a9c1 (diff) | |
download | navit-2723aba74958ec2201511737978e9d0e91a8b7a5.tar.gz |
Merge branch 'trunk' into icon_dam
64 files changed, 1952 insertions, 1596 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 4f8a82d39..b2a27c13e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,10 +9,42 @@ jobs: steps: - checkout - run: - name: Build for Linux + name: Setup requirements command: | bash ci/setup_common_requirements.sh - bash ci/build_linux.sh + apt-get install -y libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev libgtk2.0-dev curl + - run: + name: Build for Linux + command: bash ci/build_linux.sh + run_doxygen: + <<: *defaults + steps: + - checkout + - run: + name: Install doxygen + command: apt-get update && apt-get -y install doxygen ca-certificates git + - run: + name: Run doxygen + command: cd navit && doxygen + - run: + name: Update results to Github + command: | + mkdir /root/.ssh + chmod 0600 /root/.ssh + echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' >> ~/.ssh/known_hosts + git clone -b gh-pages git@github.com:navit-gps/navit.git /root/navit-doc + cd /root/navit-doc + git config --global push.default simple + git config user.name "Circle CI" + git config user.email "circleci@navit-project.org" + rsync -vrtza --exclude '.git' --delete /root/project/doc/html/ /root/navit-doc/ + echo "" > .nojekyll + echo "doxygen.navit-project.org" > CNAME + git add . + git commit -am "update:doc:Doxygen update for commit ${CIRCLE_SHA1} [ci skip]" || true + git push + - store_artifacts: + path: /root/project/doc build_android_arm: <<: *defaults steps: @@ -102,6 +134,12 @@ jobs: workflows: version: 2 + doxygen: + jobs: + - run_doxygen: + filters: + branches: + only: /^trunk$/ build_all: jobs: - build_linux diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..bd2cdf1c1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,110 @@ +# Change Log +All notable changes to this project will be documented in this file. + +Changes and documentation about Navit can be found in the wiki at: + http://wiki.navit-project.org +A timeline of opened and closed issue tickets can be found at our trac instance: + http://trac.navit-project.org + +Navit follows the semantic versioning: +* `x.y.Z` (patch): only bug fixes or refactoring, no changes in functionality +* `x.Y.z` (minor): added or changed functionality but can be used as a drop-in + replacement for the previous version (all data formats and interfaces are still + supported); minor UI changes (such as moving individual menu items) are also + allowed +* X.y.z (major): at least one of the following: + * Major new functionality (such as Augmented Reality, inertial navigation or + support for live traffic services): de-facto standard for end-user apps + * New user interface (such as moving from the old pulldown menu UI to the Internal + GUI): this is definitely the UI equivalent of a breaking API change + * Dropped support for a data format or interface: also a breaking change and + usually tends to occur along with larger changes which would warrant a new major + version anyway + +## [Unreleased] + +The list of changes that happened between the release 0.5.0 and the creation of +this changelog is too long to fit there so only a subset has been put here. + +For the full list of changes, see [Github full commit list](https://github.com/navit-gps/navit/compare/v0.5.0...HEAD) + + +### Added +- core: Allow zipcode or town seamless search (#211) +- core: Add feature poly_reservoir (#251) +- core: Add grass, grassland, wetland and sand (#247) +- core: Add poly_basin (#248) +- gui_internal: Add auto zoom toggle to gui_internal (#237) +- gui_internal: Add network info menu in gui/internal for Linux (#228) +- graphics: RaspberryPI hardware accelerated graphics support (#208) +- graphics: Add Qt5 support +- graphics: add multiple icons +- gtk: Add menu entry to toggle vehicle tracking (#362) +- espeak: Add speech module using espeak on QMultimedia. (#233) +- contrib/sailfish: Add rules to build sailfish package (#221) +- contrib/sailfish: Add autozoom switch to sailfosh config (#238) +- contrib/sailfish: Add desktop icons in sizes required by Sailfish OS. (#220) +- install: Allow unusual building (#215) +- doc: Improved follow vehicle toggle doc function for GTK (#363) +- doc: Added download links for PlayStore and F-Droid in the README +- ci: Added automatic publishing to Playstore Beta + +### Changed + +- core: Removed autotools lefotover (#204) +- core: sunrise near poles simplification (#206) +- core: keep active vehicle profile when deactivating vehicle (#217) +- core: Hide impossible keys at the internal keyboard instead of highlighting the possible ones (leftover from PR5) (#210) +- core: Reduce POST_SHIFT to avoid int overflow +- core: Remove dependency on OpenSSL +- port/android: ask permissions on sdk >= 23 +- i18n: Update of about all the translations available for the software +- ci: Updated the CI builds and tests +- ci: update zlib to 1.2.11 +- doc: Added some usage images to the README.md + +### Fixed +- port/android:moved Taiwan into its own map download entry #348 +- maptool:Remove option -5 (MD5 checksum) from maptool +- gtk: fixed missing imperial units in the GTK ui (#359) +- core: Remove binfile map encryption support +- core: Fix iPhone build broken by plugin refactoring +- core: Fix Car layout issues with wood and water (#240) +- core: TRAC-1246: Draw background color even if text label is empty. (#234) +- core: TRAC-981: Add Align-Attr to osd type Odometer (#230) +- core: navigation_analyze_roundabout : central_angle may lead to division by 0 (#218) +- core: Fix POI toggle bug with Car-dark layout (#223) +- core: TRAC-1347 Add 'Follow' and 'Active' to vehicle_demo to remove the corresponding error messages (Unsupported Attribute) (#229) +- gui_internal: Rename new option to hide_impossible_next_keys +- gui_internal: Don't crash if LANG environment not set (#232) +- xml:Change colors for wetland in Car and Car-dark (#257) +- port/android: Fix "invalid DT_NEEDED" warnings on API 23+, fixes #1348 (#205) +- port/android: Fix apk signing and bump sdk to 25 - nougat (#209) +- port/android: Fix #1345 crash on Android +- port/android: TRAC-1071 'Toggle POIs' button also toggle POI labels (#226) +- ci: Tomtom:Switching to mirrored toolchain + +### Removed + +## [0.5.0] - 2015-12-31 + +This release was done before the adoption of this changelog format. Click +[here](https://github.com/navit-gps/navit/compare/v0.5.0-rc.2...v0.5.0) +to view the corresponding changes. + +## [0.5.0-rc2] - 2015-09-02 + +This release was done before the adoption of this changelog format. Click +[here](https://github.com/navit-gps/navit/compare/v0.5.0-rc.1...v0.5.0-rc.2) +to view the corresponding changes. + +## [0.5.0-rc1] - 2015-08-08 + +This release was done before the adoption of this changelog format. Click +[here](https://github.com/navit-gps/navit/compare/v0.5.0-beta.1...v0.5.0-rc.1) +to view the corresponding changes. + +[Unreleased]: https://github.com/navit-gps/navit/compare/v0.5.0...HEAD +[0.5.0]: https://github.com/navit-gps/navit/compare/v0.5.0-rc.2...v0.5.0 +[0.5.0-rc.2]: https://github.com/navit-gps/navit/compare/v0.5.0-rc.1...v0.5.0-rc.2 +[0.5.0-rc.1]: https://github.com/navit-gps/navit/compare/v0.5.0-beta.1...v0.5.0-rc.1 diff --git a/CMakeLists.txt b/CMakeLists.txt index d3d764d36..763f75bed 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,7 +163,6 @@ find_package(Gettext) find_package(PNG) find_package(DBusGLib) find_package(PythonLibs) -find_package(OpenSSL) find_package(Threads) libfind_pkg_check_modules(FONTCONFIG fontconfig) #Qt detection @@ -276,11 +275,6 @@ else(ZLIB_FOUND) message(STATUS "using internal zlib") set_with_reason(support/zlib "native zlib missing" TRUE) endif(ZLIB_FOUND) -if(OPENSSL_CRYPTO_LIBRARIES) - set(HAVE_LIBCRYPTO 1) - include_directories(${OPENSSL_INCLUDE_DIR}) - list(APPEND NAVIT_LIBS ${OPENSSL_CRYPTO_LIBRARIES}) -endif() if(PNG_FOUND) set(HAVE_PNG 1) include_directories(${PNG_INCLUDE_DIR}) diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 411115f00..000000000 --- a/ChangeLog +++ /dev/null @@ -1,4 +0,0 @@ -Changes and documentation about Navit can be found in the wiki at: - http://wiki.navit-project.org -A timeline of opened and closed issue tickets can be found at our trac instance: - http://trac.navit-project.org diff --git a/ci/build_android.sh b/ci/build_android.sh index ad42c78c2..bf992fd2c 100644 --- a/ci/build_android.sh +++ b/ci/build_android.sh @@ -30,12 +30,5 @@ cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain/arm-eabi.cmake -DCACHE_SIZE='(20*1024* make -j $(nproc --all) -if [[ "${CIRCLE_BRANCH}" == "master" ]]; then - make -j $(nproc --all) apkg-release && mv navit/android/bin/Navit-release-unsigned.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 -else - make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 -fi - -echo -echo "Build leftovers :" -find . +make -j $(nproc --all) apkg-release && mv navit/android/bin/Navit-release-unsigned.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1 +make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1 diff --git a/ci/build_linux.sh b/ci/build_linux.sh index 14abb7597..4105cc1d7 100644 --- a/ci/build_linux.sh +++ b/ci/build_linux.sh @@ -1,12 +1,13 @@ +#!/bin/bash set -e COVERITY_VERSION="2017.07" - -apt-get install -y libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev libgtk2.0-dev curl +BUILD_PATH="linux" cmake_opts="-Dgraphics/qt_qpainter:BOOL=FALSE -Dgui/qml:BOOL=FALSE -DSVG2PNG:BOOL=FALSE -DSAMPLE_MAP=n -Dgraphics/gtk_drawing_area:BOOL=TRUE" -mkdir ${CIRCLE_WORKING_DIRECTORY}/linux-bin && cd ${CIRCLE_WORKING_DIRECTORY}/linux-bin +[ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH +pushd $BUILD_PATH if [[ "${CIRCLE_PROJECT_USERNAME}" == "navit-gps" && "${CIRCLE_BRANCH}" == "trunk" ]]; then # If we are building the official trunk code, push an update to coverity @@ -14,7 +15,7 @@ if [[ "${CIRCLE_PROJECT_USERNAME}" == "navit-gps" && "${CIRCLE_BRANCH}" == "trun tar xfz /tmp/cov-analysis-linux64-${COVERITY_VERSION}.tar.gz --no-same-owner -C /usr/local/share/ export PATH=/usr/local/share/cov-analysis-linux64-${COVERITY_VERSION}/bin:$PATH - cov-build --dir cov-int cmake ${CIRCLE_WORKING_DIRECTORY}/ ${cmake_opts} + cov-build --dir cov-int cmake ${cmake_opts} ../ cov-build --dir cov-int make -j $(nproc --all) || exit -1 tar czvf navit.tgz cov-int @@ -31,7 +32,7 @@ if [[ "${CIRCLE_PROJECT_USERNAME}" == "navit-gps" && "${CIRCLE_BRANCH}" == "trun curl "https://translations.launchpad.net/navit/${CIRCLE_BRANCH}/+translations-upload" -H "$lp_cookie" -H "Referer: https://translations.launchpad.net/navit/${CIRCLE_BRANCH}/+translations-upload" -F file=@po/navit.pot | grep title else - cmake ${CIRCLE_WORKING_DIRECTORY}/ ${cmake_opts} || exit -1 + cmake ${cmake_opts} ../ || exit -1 make -j $(nproc --all) || exit -1 fi diff --git a/ci/setup_android.sh b/ci/setup_android.sh index 64e250635..f3ae96900 100644 --- a/ci/setup_android.sh +++ b/ci/setup_android.sh @@ -13,6 +13,14 @@ cd /opt && rm -f android-sdk.tgz export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools echo y | android update sdk --no-ui --all --filter platform-tools | grep 'package installed' + +# This is only an workaround to make sure the platform tools are installed +if [ ! -d ${ANDROID_SDK_HOME}/platform-tools ] && [ -f ${ANDROID_SDK_HOME}/temp/platform-tools_r26.0.2-linux.zip ]; then + if [ "$(md5sum ${ANDROID_SDK_HOME}/temp/platform-tools_r26.0.2-linux.zip | cut -d" " -f1)" == "ef952bb31497f7535e061ad0e712bed8" ]; then + cd ${ANDROID_SDK_HOME} && unzip ${ANDROID_SDK_HOME}/temp/platform-tools_r26.0.2-linux.zip + fi +fi + #RUN echo y | android update sdk --no-ui --all --filter extra-android-support | grep 'package installed' echo y | android update sdk --no-ui --all --filter android-25 | grep 'package installed' diff --git a/cmake/copy_files.cmake b/cmake/copy_files.cmake index f9dca52f6..03ad8d14f 100644 --- a/cmake/copy_files.cmake +++ b/cmake/copy_files.cmake @@ -7,9 +7,10 @@ if ( SRC_FILES ) if ( LOWER ) get_filename_component(FILEN_NAME ${FILE} NAME) string(TOLOWER ${FILEN_NAME} FILEN_NAME_LOWER) - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FILE} ${DST}/${FILEN_NAME_LOWER}) + file(COPY ${FILE} DESTINATION ${DST}/) + file(RENAME ${DST}/${FILEN_NAME} ${DST}/${FILEN_NAME_LOWER}) else() - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FILE} ${DST}/) + file(COPY ${FILE} DESTINATION ${DST}) endif( LOWER ) endforeach() endif() diff --git a/config.h.cmake b/config.h.cmake index fa096b58c..dd27d1ee5 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -21,8 +21,6 @@ #cmakedefine PACKAGE "@PACKAGE@" #cmakedefine LOCALEDIR "@LOCALEDIR@" -#cmakedefine HAVE_LIBCRYPTO 1 - #cmakedefine HAVE_ZLIB 1 #cmakedefine USE_ROUTING 1 diff --git a/man/maptool.1 b/man/maptool.1 index 4112d0b15..8705f648e 100644 --- a/man/maptool.1 +++ b/man/maptool.1 @@ -4,13 +4,13 @@ maptool \- parse osm textfile and convert to Navit binfile format .SH SYNOPSIS .B For OSM XML data: .B bzcat planet.osm.bz2 | maptool mymap.bin -[\-h] [\-5 <file>] [\-6] [\-a <level>] [\-c] -[\-d <connect string] +[\-h] [\-6] [\-a <level>] [\-c] -[\-d <connect string] [\-e <phase>] [\-i <file>] [\-k] [\-M] [\-N] [\-o] [\-r <file>] [\-s <phase>] [\-S <size>] [\-w] [\-W] [\-U] [\-z <level>] .B For OSM Protobuf/PBF data: .B maptool \-\-protobuf \-i planet.osm.pbf planet.bin -[\-h] [\-5 <file>] [\-6] [\-a <level>] [\-c] [\-e <phase>] +[\-h] [\-6] [\-a <level>] [\-c] [\-e <phase>] [\-i <file>] [\-k] [\-M] [\-N] [\-o] [\-P] [\-r <file>] [\-s <phase>] [\-S <size>] [\-w] [\-W] [\-U] [\-z <level>] .SH DESCRIPTION @@ -20,9 +20,6 @@ maptool parses osm textfile and converts it to Navit binfile format \-h (\-\-help) display a short help message .TP -\-5 (\-\-md5) -set file where to write md5 sum -.TP \-6 (\-\-64bit) set zip 64 bit compression .TP diff --git a/navit/CMakeLists.txt b/navit/CMakeLists.txt index cac127531..2c1006b94 100644 --- a/navit/CMakeLists.txt +++ b/navit/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories( "${CMAKE_CURRENT_SOURCE_DIR}") include_directories( "${CMAKE_CURRENT_BINARY_DIR}") include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/support") -# navit cre +# navit core set(NAVIT_SRC announcement.c atom.c attr.c cache.c callback.c command.c config_.c coord.c country.c data_window.c debug.c event.c file.c geom.c graphics.c gui.c item.c layout.c log.c main.c map.c maps.c linguistics.c mapset.c maptype.c menu.c messages.c bookmarks.c navit.c navit_nls.c navigation.c osd.c param.c phrase.c plugin.c popup.c @@ -12,7 +12,7 @@ set(NAVIT_SRC announcement.c atom.c attr.c cache.c callback.c command.c config_. search_houseno_interpol.c util.c vehicle.c vehicleprofile.c xmlconfig.c ) if(NOT USE_PLUGINS) - list(APPEND NAVIT_SRC ${CMAKE_CURRENT_BINARY_DIR}/builtin.c) + list(APPEND NAVIT_SRC ${CMAKE_CURRENT_BINARY_DIR}/builtin.c) endif(NOT USE_PLUGINS) if (${HAVE_GLIB}) @@ -82,7 +82,7 @@ if(NOT ANDROID) add_executable(navit ${NAVIT_START_SRC}) target_link_libraries (navit ${NAVIT_LIBNAME}) if(DEFINED NAVIT_BINARY) - set_target_properties(navit PROPERTIES OUTPUT_NAME ${NAVIT_BINARY}) + set_target_properties(navit PROPERTIES OUTPUT_NAME ${NAVIT_BINARY}) endif(DEFINED NAVIT_BINARY) if (BUILD_BUNDLE) add_custom_command(OUTPUT resources/share COMMAND mkdir -p resources/share) @@ -96,12 +96,12 @@ if(NOT ANDROID) endif() if (SHARED_LIBNAVIT) - add_library (${NAVIT_LIBNAME} SHARED ${NAVIT_SRC} ) + add_library (${NAVIT_LIBNAME} SHARED ${NAVIT_SRC} ) else(SHARED_LIBNAVIT) - add_library (${NAVIT_LIBNAME} STATIC ${NAVIT_SRC} ) + add_library (${NAVIT_LIBNAME} STATIC ${NAVIT_SRC} ) endif(SHARED_LIBNAVIT) if(NOT MSVC) - SET(NAVIT_LIBS ${NAVIT_LIBS} m) + SET(NAVIT_LIBS ${NAVIT_LIBS} m) endif(NOT MSVC) target_link_libraries(${NAVIT_LIBNAME} ${MODULES_NAME} ${NAVIT_SUPPORT_LIBS} fib ${NAVIT_LIBS} ) set_target_properties(${NAVIT_LIBNAME} PROPERTIES COMPILE_DEFINITIONS "MODULE=navit;LIBDIR=\"${CMAKE_INSTALL_PREFIX}/${LIB_DIR}\";PREFIX=\"${CMAKE_INSTALL_PREFIX}\"") @@ -113,50 +113,59 @@ ADD_CUSTOM_TARGET( git_version ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/version.h.in -D DST=${CMAKE_CURRENT_BINARY_DIR}/version.h - -D NAME="GIT_VERSION" + -D NAME="GIT_VERSION" -P ${PROJECT_SOURCE_DIR}/cmake/version.cmake ) +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/navit.dtd" + COMMENT "Copy navit.dtd to ${CMAKE_CURRENT_BINARY_DIR}/navit.dtd" + COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/navit/navit.dtd" "${CMAKE_CURRENT_BINARY_DIR}/navit.dtd" +) + # additional parameter are passed to the stylesheet processor as parameter macro(process_xslt SRC_XML DEST_XML) - set(XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy ${SRC_XML} ${DEST_XML} - COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/navit/navit.dtd ${CMAKE_CURRENT_BINARY_DIR}/navit.dtd) - if(XSL_PROCESSING AND XSLTS) - string(REPLACE "," ";" XSLTS "${XSLTS}") - foreach(tmp ${XSLTS}) - set(XSLT_FILE "${PROJECT_SOURCE_DIR}/navit/xslt/${tmp}.xslt") - list(APPEND XSLT_FILES "${XSLT_FILE}") - list(APPEND XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E echo Applying ${tmp}.xslt) - compose_xslt_transform_command(CMD "${XSLT_FILE}" "${DEST_XML}" "${DEST_XML}.tmp" "${ARGN}") - list(APPEND XSLT_COMMANDS ${CMD}) - list(APPEND XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E rename ${DEST_XML}.tmp ${DEST_XML}) - endforeach() - endif() + set(XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml" "${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML}" ) + if(XSL_PROCESSING) + if(NOT XSLTS STREQUAL "") + string(REPLACE "," ";" XSLTS "${XSLTS}") + foreach(tmp ${XSLTS}) + set(XSLT_FILE "${PROJECT_SOURCE_DIR}/navit/xslt/${tmp}.xslt") + list(APPEND XSLT_FILES "${XSLT_FILE}") + list(APPEND XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E echo Applying ${tmp}.xslt) + compose_xslt_transform_command(CMD "${XSLT_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML}" "${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML}.tmp" "${ARGN}") + list(APPEND XSLT_COMMANDS ${CMD}) + list(APPEND XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML}.tmp" ${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML}) + endforeach() + endif() + endif(XSL_PROCESSING) # Depend on all XSLT files, because the main XSLT file may pull in other files. # Ideally we'd parse the main XSLT file for includes, but that is tricky to do reliably. # Note that this list of files is only updated when (re)running CMake, so if files are # added/deleted, CMake must be re-run manually. file(GLOB ALL_XSLT_FILES "${PROJECT_SOURCE_DIR}/navit/xslt/*.xslt") + #message(FATAL_ERROR ${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML}) ADD_CUSTOM_COMMAND( - OUTPUT ${DEST_XML} - DEPENDS ${SRC_XML} ${ALL_XSLT_FILES} + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DEST_XML} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/navit/xslt/ + DEPENDS ${SRC_XML} "${CMAKE_CURRENT_BINARY_DIR}/navit.dtd" ${ALL_XSLT_FILES} ${XSLT_COMMANDS} ) endmacro() if(ANDROID) - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navitxxxhdpi.xml OSD_SIZE=5.33 ICON_SMALL=128 ICON_MEDIUM=192 ICON_BIG=256) - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navitxxhdpi.xml OSD_SIZE=4 ICON_SMALL=96 ICON_MEDIUM=128 ICON_BIG=192) - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navitxhdpi.xml OSD_SIZE=2.67 ICON_SMALL=64 ICON_MEDIUM=96 ICON_BIG=128) - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navithdpi.xml OSD_SIZE=2 ICON_SMALL=48 ICON_MEDIUM=64 ICON_BIG=96) - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navitmdpi.xml OSD_SIZE=1.33 ICON_SMALL=32 ICON_MEDIUM=48 ICON_BIG=64) - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navitldpi.xml OSD_SIZE=1 ICON_SMALL=24 ICON_MEDIUM=32 ICON_BIG=48) + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navitxxxhdpi.xml OSD_SIZE=5.33 ICON_SMALL=128 ICON_MEDIUM=192 ICON_BIG=256) + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navitxxhdpi.xml OSD_SIZE=4 ICON_SMALL=96 ICON_MEDIUM=128 ICON_BIG=192) + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navitxhdpi.xml OSD_SIZE=2.67 ICON_SMALL=64 ICON_MEDIUM=96 ICON_BIG=128) + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navithdpi.xml OSD_SIZE=2 ICON_SMALL=48 ICON_MEDIUM=64 ICON_BIG=96) + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navitmdpi.xml OSD_SIZE=1.33 ICON_SMALL=32 ICON_MEDIUM=48 ICON_BIG=64) + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navitldpi.xml OSD_SIZE=1 ICON_SMALL=24 ICON_MEDIUM=32 ICON_BIG=48) add_custom_target( navit_config_xml ALL DEPENDS navitxxxhdpi.xml navitxxhdpi.xml navitxhdpi.xml navithdpi.xml navitmdpi.xml navitldpi.xml) else() - process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navit.xml "") + process_xslt(${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml navit.xml "") add_custom_target( navit_config_xml_resource DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/navit.xml COMMAND mkdir -p resources/share/navit COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/navit.xml resources/share/navit) add_custom_target( locale_resource DEPENDS locales COMMAND mkdir -p resources/share COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/../locale resources/share/locale) - add_custom_target( navit_config_xml ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/navit.xml) + add_custom_target( navit_config_xml ALL DEPENDS navit.xml) endif() ADD_DEPENDENCIES(${NAVIT_LIBNAME} git_version) @@ -182,17 +191,17 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/navit.xml get_directory_property(INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES) WRITE_FILE("cmake_plugin_settings.txt" - "set(APPLE ${APPLE} CACHE BOOL init)\n" - "set(ANDROID ${ANDROID} CACHE BOOL init)\n" - "set(USE_PLUGINS ${USE_PLUGINS} CACHE BOOL init)\n" - "set(MODULE_BUILD_TYPE \"${MODULE_BUILD_TYPE}\" CACHE STRING init)\n" - "set(NAVIT_COMPILE_FLAGS \"${NAVIT_COMPILE_FLAGS}\" CACHE STRING init)\n" - "set(navit_SOURCE_DIR \"${navit_SOURCE_DIR}\" CACHE STRING init)\n" - "set(NAVIT_LIBNAME \"${NAVIT_LIBNAME}\" CACHE STRING init)\n" - "set(ANDROID_API_VERSION \"${ANDROID_API_VERSION}\" CACHE STRING init)\n" - "set(ANDROID_NDK_API_VERSION \"${ANDROID_NDK_API_VERSION}\" CACHE STRING init)\n" - "set(CMAKE_TOOLCHAIN_FILE \"${CMAKE_TOOLCHAIN_FILE}\" CACHE STRING init)\n" - "set(INCLUDE_DIRECTORIES \"${INCLUDE_DIRECTORIES}\" CACHE STRING init)\n" - "set(LIB_DIR \"${LIB_DIR}\" CACHE STRING init)\n" - "set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\" CACHE STRING init)\n" - ) + "set(APPLE ${APPLE} CACHE BOOL init)\n" + "set(ANDROID ${ANDROID} CACHE BOOL init)\n" + "set(USE_PLUGINS ${USE_PLUGINS} CACHE BOOL init)\n" + "set(MODULE_BUILD_TYPE \"${MODULE_BUILD_TYPE}\" CACHE STRING init)\n" + "set(NAVIT_COMPILE_FLAGS \"${NAVIT_COMPILE_FLAGS}\" CACHE STRING init)\n" + "set(navit_SOURCE_DIR \"${navit_SOURCE_DIR}\" CACHE STRING init)\n" + "set(NAVIT_LIBNAME \"${NAVIT_LIBNAME}\" CACHE STRING init)\n" + "set(ANDROID_API_VERSION \"${ANDROID_API_VERSION}\" CACHE STRING init)\n" + "set(ANDROID_NDK_API_VERSION \"${ANDROID_NDK_API_VERSION}\" CACHE STRING init)\n" + "set(CMAKE_TOOLCHAIN_FILE \"${CMAKE_TOOLCHAIN_FILE}\" CACHE STRING init)\n" + "set(INCLUDE_DIRECTORIES \"${INCLUDE_DIRECTORIES}\" CACHE STRING init)\n" + "set(LIB_DIR \"${LIB_DIR}\" CACHE STRING init)\n" + "set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\" CACHE STRING init)\n" +) diff --git a/navit/Doxyfile b/navit/Doxyfile index b7e049301..6b3bc777a 100644 --- a/navit/Doxyfile +++ b/navit/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = navit # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.0 +PROJECT_NUMBER = 0.5.1-trunk # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -409,25 +409,25 @@ LOOKUP_CACHE_SIZE = 0 # normally produced when WARNINGS is set to YES. # The default value is: NO. -EXTRACT_ALL = NO +EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. -EXTRACT_PRIVATE = NO +EXTRACT_PRIVATE = YES # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. -EXTRACT_PACKAGE = NO +EXTRACT_PACKAGE = YES # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. -EXTRACT_STATIC = NO +EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, @@ -809,7 +809,7 @@ EXCLUDE_SYMLINKS = NO # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = */support/* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -1504,7 +1504,7 @@ MATHJAX_CODEFILE = # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. -SEARCHENGINE = NO +SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There diff --git a/navit/android/src/org/navitproject/navit/FileBrowserActivity.java b/navit/android/src/org/navitproject/navit/FileBrowserActivity.java index ab3c47376..f3dac4894 100644 --- a/navit/android/src/org/navitproject/navit/FileBrowserActivity.java +++ b/navit/android/src/org/navitproject/navit/FileBrowserActivity.java @@ -213,7 +213,6 @@ public class FileBrowserActivity extends Activity { private void initializeFileListView() {
ListView lView = (ListView) this.findViewById(R.id.fileListView);
- lView.setBackgroundColor(Color.LTGRAY);
LinearLayout.LayoutParams lParam = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
lParam.setMargins(15, 5, 15, 5);
@@ -357,7 +356,6 @@ public class FileBrowserActivity extends Activity { // TODO: change next line for empty directory, so text will be
// centered
textView.setCompoundDrawablePadding(dp3);
- textView.setBackgroundColor(Color.LTGRAY);
return view;
}// public View getView(int position, View convertView, ViewGroup
};// adapter = new ArrayAdapter<Item>(this,
diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java index 77a54bc30..7505e7ff7 100644 --- a/navit/android/src/org/navitproject/navit/Navit.java +++ b/navit/android/src/org/navitproject/navit/Navit.java @@ -80,6 +80,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
+import android.support.v4.app.NotificationCompat;
public class Navit extends Activity
@@ -119,6 +120,7 @@ public class Navit extends Activity public static final String NAVIT_PREFS = "NavitPrefs";
Boolean isFullscreen = false;
private static final int MY_PERMISSIONS_REQUEST_ALL = 101;
+ public static NotificationManager nm;
/**
@@ -174,7 +176,7 @@ public class Navit extends Activity }
- public static String _(String in)
+ public static String T(String in)
{
return NavitTextTranslations.get_text(in);
}
@@ -238,18 +240,8 @@ public class Navit extends Activity AlertDialog.Builder infobox = new AlertDialog.Builder(this);
infobox.setTitle(getString(R.string.initial_info_box_title)); // TRANS
infobox.setCancelable(false);
- final TextView message = new TextView(this);
- message.setFadingEdgeLength(20);
- message.setVerticalFadingEdgeEnabled(true);
- // message.setVerticalScrollBarEnabled(true);
- RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
-
- message.setLayoutParams(rlp);
- final SpannableString s = new SpannableString(getString(R.string.initial_info_box_message)); // TRANS
- Linkify.addLinks(s, Linkify.WEB_URLS);
- message.setText(s);
- message.setMovementMethod(LinkMovementMethod.getInstance());
- infobox.setView(message);
+
+ infobox.setMessage(R.string.initial_info_box_message);
// TRANS
infobox.setPositiveButton(getString(R.string.initial_info_box_OK), new DialogInterface.OnClickListener() {
@@ -302,13 +294,17 @@ public class Navit extends Activity // NOTIFICATION
// Setup the status bar notification
// This notification is removed in the exit() function
- NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); // Grab a handle to the NotificationManager
- Notification NavitNotification = new Notification(R.drawable.ic_notify, getString(R.string.notification_ticker), System.currentTimeMillis()); // Create a new notification, with the text string to show when the notification first appears
+ nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); // Grab a handle to the NotificationManager
PendingIntent appIntent = PendingIntent.getActivity(getApplicationContext(), 0, getIntent(), 0);
-// FIXME : needs a fix for sdk 23
-// NavitNotification.setLatestEventInfo(getApplicationContext(), "Navit", getString(R.string.notification_event_default), appIntent); // Set the text in the notification
-// NavitNotification.flags|=Notification.FLAG_ONGOING_EVENT; // Ensure that the notification appears in Ongoing
-// nm.notify(R.string.app_name, NavitNotification); // Set the notification
+
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+ builder.setContentIntent(appIntent);
+ builder.setAutoCancel(false).setOngoing(true);
+ builder.setContentTitle(getString(R.string.app_name));
+ builder.setContentText(getString(R.string.notification_event_default));
+ builder.setSmallIcon(R.drawable.ic_notify);
+ Notification NavitNotification = builder.build();
+ nm.notify(R.string.app_name, NavitNotification);// Show the notification
// Status and navigation bar sizes
// These are platform defaults and do not change with rotation, but we have to figure out which ones apply
@@ -583,6 +579,10 @@ public class Navit extends Activity ActivityResults[requestCode] = ActivityResult;
}
+ /*
+ * This is unused since we dont have the dropdown
+ * TODO: recheck if this is right and remove this!
+ */
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
@@ -824,7 +824,7 @@ public class Navit extends Activity SharedPreferences.Editor prefs_editor = prefs.edit();
prefs_editor.putString("filenamePath", newDir);
prefs_editor.commit();
- Toast.makeText(this, String.format(Navit._("New location set to %s\nRestart Navit to apply the changes."),newDir),Toast.LENGTH_LONG).show();
+ Toast.makeText(this, String.format(Navit.T("New location set to %s\nRestart Navit to apply the changes."),newDir),Toast.LENGTH_LONG).show();
}
else Log.w(TAG, "select path failed");
break;
@@ -912,8 +912,7 @@ public class Navit extends Activity public void exit()
{
-// NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
-// nm.cancel(R.string.app_name);
+ nm.cancelAll();
NavitVehicle.removeListener();
NavitDestroy();
}
diff --git a/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java b/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java index d3989cf48..80d285fa5 100644 --- a/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java +++ b/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java @@ -167,14 +167,14 @@ public class NavitAddressSearchActivity extends Activity { // address: label and text field
TextView addr_view = new TextView(this);
- addr_view.setText(Navit._("Enter Destination")); // TRANS
+ addr_view.setText(Navit.T("Enter Destination")); // TRANS
addr_view.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f);
addr_view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
addr_view.setPadding(4, 4, 4, 4);
// partial match checkbox
final CheckBox checkboxPartialMatch = new CheckBox(this);
- checkboxPartialMatch.setText(Navit._("partial match")); // TRANS
+ checkboxPartialMatch.setText(Navit.T("partial match")); // TRANS
checkboxPartialMatch.setChecked(last_address_partial_match);
checkboxPartialMatch.setGravity(Gravity.CENTER);
@@ -184,7 +184,7 @@ public class NavitAddressSearchActivity extends Activity { // search button
final Button btnSearch = new Button(this);
- btnSearch.setText(Navit._("Search")); // TRANS
+ btnSearch.setText(Navit.T("Search")); // TRANS
btnSearch.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
btnSearch.setGravity(Gravity.CENTER);
btnSearch.setOnClickListener(new OnClickListener() {
@@ -298,8 +298,8 @@ public class NavitAddressSearchActivity extends Activity { break;
}
- search_results_wait.setMessage(Navit._("Towns") + ":" + search_results_towns + " "
- + Navit._("Streets") + ":" + search_results_streets + "/"
+ search_results_wait.setMessage(Navit.T("Towns") + ":" + search_results_towns + " "
+ + Navit.T("Streets") + ":" + search_results_streets + "/"
+ search_results_streets_hn);
search_results_wait.setProgress(Addresses_found.size() % (ADDRESS_RESULT_PROGRESS_MAX + 1));
diff --git a/navit/android/src/org/navitproject/navit/NavitDialogs.java b/navit/android/src/org/navitproject/navit/NavitDialogs.java index f50672ebd..10f30d5b3 100644 --- a/navit/android/src/org/navitproject/navit/NavitDialogs.java +++ b/navit/android/src/org/navitproject/navit/NavitDialogs.java @@ -148,7 +148,7 @@ public class NavitDialogs extends Handler{ mapdownloader_dialog.setOnDismissListener(onDismissListener); // show license for OSM maps Toast.makeText(mActivity.getApplicationContext(), - Navit._("Map data (c) OpenStreetMap contributors, ODBL"), + Navit.T("Map data (c) OpenStreetMap contributors, ODBL"), Toast.LENGTH_LONG).show(); //TRANS return mapdownloader_dialog; diff --git a/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java b/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java index fd117a376..9cc056e31 100644 --- a/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java +++ b/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java @@ -64,7 +64,7 @@ public class NavitDownloadSelectMapActivity extends ExpandableListActivity { } catch (Exception e) {
Log.e("Navit","Exception "+e.getClass().getName()+" during getFreeSpace, reporting 'no sdcard present'");
NavitDialogs.sendDialogMessage(NavitDialogs.MSG_TOAST_LONG, null,
- String.format(Navit._("Current map location %s is not available\nPlease restart Navit after you attach an SD card or select a different map location."),Navit.map_filename_path),
+ String.format(Navit.T("Current map location %s is not available\nPlease restart Navit after you attach an SD card or select a different map location."),Navit.map_filename_path),
-1, 0, 0);
finish();
}
@@ -134,7 +134,7 @@ public class NavitDownloadSelectMapActivity extends ExpandableListActivity { // add already downloaded maps (group and empty child list
HashMap<String, String> downloaded_maps_hash = new HashMap<String, String>();
- downloaded_maps_hash.put("category_name", Navit._("Downloaded maps"));
+ downloaded_maps_hash.put("category_name", Navit.T("Downloaded maps"));
resultGroups.add(downloaded_maps_hash);
downloaded_maps_childs = new ArrayList<HashMap<String, String>>();
resultChilds.add(downloaded_maps_childs);
@@ -188,7 +188,7 @@ public class NavitDownloadSelectMapActivity extends ExpandableListActivity { int mi=Integer.parseInt(map_index);
if(NavitMapDownloader.osm_maps[mi].est_size_bytes/1024/1024/950>=4) {
NavitDialogs.sendDialogMessage(NavitDialogs.MSG_TOAST_LONG, null,
- Navit._("Sorry, we currently do not support maps above 3.8G on Android, please select a smaller one."),
+ Navit.T("Sorry, we currently do not support maps above 3.8G on Android, please select a smaller one."),
-1, 0, 0);
return true;
}
@@ -205,19 +205,12 @@ public class NavitDownloadSelectMapActivity extends ExpandableListActivity { private void askForMapDeletion(final String map_location) {
AlertDialog.Builder deleteMapBox = new AlertDialog.Builder(this);
- deleteMapBox.setTitle(getString(R.string.map_delete)); // TRANS
+ deleteMapBox.setTitle(R.string.map_delete); // Android also takes recource id
deleteMapBox.setCancelable(true);
- final TextView message = new TextView(this);
- message.setFadingEdgeLength(20);
- message.setVerticalFadingEdgeEnabled(true);
- RelativeLayout.LayoutParams layoutParams =
- new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,
- RelativeLayout.LayoutParams.FILL_PARENT);
-
- message.setLayoutParams(layoutParams);
+
NavitMap maptoDelete = new NavitMap(map_location);
- message.setText(maptoDelete.mapName + " " + String.valueOf(maptoDelete.size() / 1024 / 1024) + "MB");
- deleteMapBox.setView(message);
+ deleteMapBox.setMessage(maptoDelete.mapName + " " + String.valueOf(maptoDelete.size() / 1024 / 1024) + "MB");
+
// TRANS
deleteMapBox.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
diff --git a/navit/android/src/org/navitproject/navit/NavitGraphics.java b/navit/android/src/org/navitproject/navit/NavitGraphics.java index a41ab52be..a2d8e405f 100644 --- a/navit/android/src/org/navitproject/navit/NavitGraphics.java +++ b/navit/android/src/org/navitproject/navit/NavitGraphics.java @@ -156,9 +156,9 @@ public class NavitGraphics protected void onCreateContextMenu(ContextMenu menu) { super.onCreateContextMenu(menu); - menu.setHeaderTitle(Navit._("Position")+".."); - menu.add(1, 1, NONE, Navit._("Route to here")).setOnMenuItemClickListener(this); - menu.add(1, 2, NONE, Navit._("Cancel")).setOnMenuItemClickListener(this); + menu.setHeaderTitle(Navit.T("Position")+".."); + menu.add(1, 1, NONE, Navit.T("Route to here")).setOnMenuItemClickListener(this); + menu.add(1, 2, NONE, Navit.T("Cancel")).setOnMenuItemClickListener(this); } @Override diff --git a/navit/android/src/org/navitproject/navit/NavitMapDownloader.java b/navit/android/src/org/navitproject/navit/NavitMapDownloader.java index eb9cd6a4e..feda451b8 100644 --- a/navit/android/src/org/navitproject/navit/NavitMapDownloader.java +++ b/navit/android/src/org/navitproject/navit/NavitMapDownloader.java @@ -95,208 +95,209 @@ public class NavitMapDownloader extends Thread // size estimations updated 2017-06-22
//
public static final osm_map_values[] osm_maps = {
- new osm_map_values(Navit._("Whole Planet"), "-180", "-90", "180", "90", 23992258630L, 0),
- new osm_map_values(Navit._("Africa"), "-30.89", "-36.17", "61.68", "38.40", 2070076339L, 0),
- new osm_map_values(Navit._("Angola"), "11.4", "-18.1", "24.2", "-5.3", 127557789L, 1),
- new osm_map_values(Navit._("Burundi"), "28.9", "-4.5", "30.9", "-2.2", 124049667L, 1),
- new osm_map_values(Navit._("Canary Islands"), "-18.69", "26.52", "-12.79", "29.99", 133565815L, 1),
- new osm_map_values(Navit._("Congo, Democratic Republic of the"), "11.7", "-13.6", "31.5", "5.7", 244228485L, 1),
- new osm_map_values(Navit._("Ethiopia"), "32.89", "3.33", "48.07", "14.97", 153067406L, 1),
- new osm_map_values(Navit._("Guinea"), "-15.47", "7.12", "-7.58", "12.74", 188047126L, 1),
- new osm_map_values(Navit._("Cote d'Ivoire"), "-8.72", "4.09", "-2.43", "10.80", 132187496L, 1),
- new osm_map_values(Navit._("Kenya"), "33.8", "-5.2", "42.4", "4.9", 190073089L, 1),
- new osm_map_values(Navit._("Lesotho"), "26.9", "-30.7", "29.6", "-28.4", 196189429L, 1),
- new osm_map_values(Navit._("Liberia"), "-15.00", "-0.73", "-7.20", "8.65", 156257253L, 1),
- new osm_map_values(Navit._("Libya"), "9.32", "19.40", "25.54", "33.63", 126046917L, 1),
- new osm_map_values(Navit._("Madagascar"), "42.25", "-26.63", "51.20", "-11.31", 145210721L, 1),
- new osm_map_values(Navit._("Namibia")+"+"+Navit._("Botswana"), "11.4", "-29.1", "29.5", "-16.9", 248970987L, 1),
- new osm_map_values(Navit._("Reunion"), "55.2", "-21.4", "55.9", "-20.9", 126008774L, 1),
- new osm_map_values(Navit._("Rwanda"), "28.8", "-2.9", "30.9", "-1.0", 128267595L, 1),
- new osm_map_values(Navit._("South Africa")+"+"+Navit._("Lesotho"), "15.93", "-36.36", "33.65", "-22.08", 307280006L, 1),
- new osm_map_values(Navit._("Tanzania, United Republic of"), "29.19", "-11.87", "40.74", "-0.88", 253621029L, 1),
- new osm_map_values(Navit._("Uganda"), "29.3", "-1.6", "35.1", "4.3", 179134521L, 1),
- new osm_map_values(Navit._("Asia"), "23.8", "0.1", "195.0", "82.4", 5113673780L, 0),
- new osm_map_values(Navit._("Azerbaijan"), "44.74", "38.34", "51.69", "42.37", 138346406L, 1),
- new osm_map_values(Navit._("China"), "67.3", "5.3", "135.0", "54.5", 1718108758L, 1),
- new osm_map_values(Navit._("Cyprus"), "32.0", "34.5", "34.9", "35.8", 118472448L, 1),
- new osm_map_values(Navit._("India")+"+"+Navit._("Nepal"), "67.9", "5.5", "89.6", "36.0", 601877877L, 1),
- new osm_map_values(Navit._("Indonesia"), "93.7", "-17.3", "155.5", "7.6", 420741405L, 1),
- new osm_map_values(Navit._("Iran, Islamic Republic of"), "43.5", "24.4", "63.6", "40.4", 242016066L, 1),
- new osm_map_values(Navit._("Iraq"), "38.7", "28.5", "49.2", "37.4", 160751805L, 1),
- new osm_map_values(Navit._("Israel"), "33.99", "29.8", "35.95", "33.4", 155685778L, 1),
- new osm_map_values(Navit._("Japan")+"+"+Navit._("Korea")+"+"+Navit._("Taiwan"), "117.6", "20.5", "151.3", "47.1", 1029080156L, 1),
- new osm_map_values(Navit._("Kazakhstan"), "46.44", "40.89", "87.36", "55.45", 407633007L, 1),
- new osm_map_values(Navit._("Kyrgyzstan"), "69.23", "39.13", "80.33", "43.29", 147997835L, 1),
- new osm_map_values(Navit._("Malaysia")+"+"+Navit._("Singapore"), "94.3", "-5.9", "108.6", "6.8", 168816435L, 1),
- new osm_map_values(Navit._("Mongolia"), "87.5", "41.4", "120.3", "52.7", 153534851L, 1),
- new osm_map_values(Navit._("Pakistan"), "60.83", "23.28", "77.89", "37.15", 217644321L, 1),
- new osm_map_values(Navit._("Philippines"), "115.58", "4.47", "127.85", "21.60", 281428307L, 1),
- new osm_map_values(Navit._("Saudi Arabia"), "33.2", "16.1", "55.9", "33.5", 242648303L, 1),
- new osm_map_values(Navit._("Thailand"), "97.5", "5.7", "105.2", "19.7", 185135492L, 1),
- new osm_map_values(Navit._("Turkey"), "25.1", "35.8", "46.4", "42.8", 331087441L, 1),
- new osm_map_values(Navit._("Turkmenistan"), "51.78", "35.07", "66.76", "42.91", 131045087L, 1),
- new osm_map_values(Navit._("UAE+Other"), "51.5", "22.6", "56.7", "26.5", 128934674L, 1),
- new osm_map_values(Navit._("Australia")+"+"+Navit._("Oceania"), "89.84", "-57.39", "179.79", "7.26", 782722650L, 0),
- new osm_map_values(Navit._("Australia"), "110.5", "-44.2", "154.9", "-9.2", 348652900L, 0),
- new osm_map_values(Navit._("Tasmania"), "144.0", "-45.1", "155.3", "-24.8", 253231890L, 1),
- new osm_map_values(Navit._("Victoria")+"+"+Navit._("New South Wales"), "140.7", "-39.4", "153.7", "-26.9", 241500829L, 1),
- new osm_map_values(Navit._("New Caledonia"), "157.85", "-25.05", "174.15", "-16.85", 115512336L, 1),
- new osm_map_values(Navit._("New Zealand"), "165.2", "-47.6", "179.1", "-33.7", 239264192L, 1),
- new osm_map_values(Navit._("Europe"), "-12.97", "33.59", "34.15", "72.10", 11984126789L, 0),
- new osm_map_values(Navit._("Western Europe"), "-17.6", "34.5", "42.9", "70.9", 12648810717L, 1),
- new osm_map_values(Navit._("Austria"), "9.4", "46.32", "17.21", "49.1", 898273634L, 1),
- new osm_map_values(Navit._("Azores"), "-31.62", "36.63", "-24.67", "40.13", 112687225L, 1),
- new osm_map_values(Navit._("BeNeLux"), "2.08", "48.87", "7.78", "54.52", 1771971595L, 1),
- new osm_map_values(Navit._("Netherlands"), "3.07", "50.75", "7.23", "53.73", 1191828033L, 1),
- new osm_map_values(Navit._("Denmark"), "7.65", "54.32", "15.58", "58.07", 365606979L, 1),
- new osm_map_values(Navit._("Faroe Islands"), "-7.8", "61.3", "-6.1", "62.5", 109377568L, 1),
- new osm_map_values(Navit._("France"), "-5.45", "42.00", "8.44", "51.68", 3907969744L, 1),
- new osm_map_values(Navit._("Alsace"), "6.79", "47.27", "8.48", "49.17", 354249349L, 2),
- new osm_map_values(Navit._("Aquitaine"), "-2.27", "42.44", "1.50", "45.76", 443715019L, 2),
- new osm_map_values(Navit._("Auvergne"), "2.01", "44.57", "4.54", "46.85", 287663213L, 2),
- new osm_map_values(Navit._("Basse-Normandie"), "-2.09", "48.13", "1.03", "49.98", 262352354L, 2),
- new osm_map_values(Navit._("Bourgogne"), "2.80", "46.11", "5.58", "48.45", 298868796L, 2),
- new osm_map_values(Navit._("Bretagne"), "-5.58", "46.95", "-0.96", "48.99", 382770794L, 2),
- new osm_map_values(Navit._("Centre"), "0.01", "46.29", "3.18", "48.99", 474224721L, 2),
- new osm_map_values(Navit._("Champagne-Ardenne"), "3.34", "47.53", "5.94", "50.28", 269947824L, 2),
- new osm_map_values(Navit._("Corse"), "8.12", "41.32", "9.95", "43.28", 129902146L, 2),
- new osm_map_values(Navit._("Franche-Comte"), "5.20", "46.21", "7.83", "48.07", 324476070L, 2),
- new osm_map_values(Navit._("Haute-Normandie"), "-0.15", "48.62", "1.85", "50.18", 202782876L, 2),
- new osm_map_values(Navit._("Ile-de-France"), "1.40", "48.07", "3.61", "49.29", 311052699L, 2),
- new osm_map_values(Navit._("Languedoc-Roussillon"), "1.53", "42.25", "4.89", "45.02", 380145667L, 2),
- new osm_map_values(Navit._("Limousin"), "0.58", "44.87", "2.66", "46.50", 206696539L, 2),
- new osm_map_values(Navit._("Lorraine"), "4.84", "47.77", "7.72", "49.73", 330777318L, 2),
- new osm_map_values(Navit._("Midi-Pyrenees"), "-0.37", "42.18", "3.50", "45.10", 462618363L, 2),
- new osm_map_values(Navit._("Nord-pas-de-Calais"), "1.42", "49.92", "4.49", "51.31", 368467511L, 2),
- new osm_map_values(Navit._("Pays-de-la-Loire"), "-2.88", "46.20", "0.97", "48.62", 499471143L, 2),
- new osm_map_values(Navit._("Picardie"), "1.25", "48.79", "4.31", "50.43", 374308041L, 2),
- new osm_map_values(Navit._("Poitou-Charentes"), "-1.69", "45.04", "1.26", "47.23", 342125526L, 2),
- new osm_map_values(Navit._("Provence-Alpes-Cote-d-Azur"), "4.21", "42.91", "7.99", "45.18", 390306134L, 2),
- new osm_map_values(Navit._("Rhone-Alpes"), "3.65", "44.07", "7.88", "46.64", 510797942L, 2),
- new osm_map_values(Navit._("Germany"), "5.18", "46.84", "15.47", "55.64", 3521359466L, 1),
- new osm_map_values(Navit._("Baden-Wuerttemberg"), "7.32", "47.14", "10.57", "49.85", 674361124L, 2),
- new osm_map_values(Navit._("Bayern"), "8.92", "47.22", "13.90", "50.62", 860161150L, 2),
- new osm_map_values(Navit._("Mittelfranken"), "9.86", "48.78", "11.65", "49.84", 203055195L, 2),
- new osm_map_values(Navit._("Niederbayern"), "11.55", "47.75", "14.12", "49.42", 312924770L, 2),
- new osm_map_values(Navit._("Oberbayern"), "10.67", "47.05", "13.57", "49.14", 382734883L, 2),
- new osm_map_values(Navit._("Oberfranken"), "10.31", "49.54", "12.49", "50.95", 235258691L, 2),
- new osm_map_values(Navit._("Oberpfalz"), "11.14", "48.71", "13.47", "50.43", 264536012L, 2),
- new osm_map_values(Navit._("Schwaben"), "9.27", "47.10", "11.36", "49.09", 321141607L, 2),
- new osm_map_values(Navit._("Unterfranken"), "8.59", "49.16", "10.93", "50.67", 303720890L, 2),
- new osm_map_values(Navit._("Berlin"), "13.03", "52.28", "13.81", "52.73", 169019946L, 2),
- new osm_map_values(Navit._("Brandenburg"), "11.17", "51.30", "14.83", "53.63", 323497599L, 2),
- new osm_map_values(Navit._("Bremen"), "8.43", "52.96", "9.04", "53.66", 150963608L, 2),
- new osm_map_values(Navit._("Hamburg"), "9.56", "53.34", "10.39", "53.80", 156284421L, 2),
- new osm_map_values(Navit._("Hessen"), "7.72", "49.34", "10.29", "51.71", 432279328L, 2),
- new osm_map_values(Navit._("Mecklenburg-Vorpommern"), "10.54", "53.05", "14.48", "55.05", 213183908L, 2),
- new osm_map_values(Navit._("Niedersachsen"), "6.40", "51.24", "11.69", "54.22", 819766939L, 2),
- new osm_map_values(Navit._("Nordrhein-westfalen"), "5.46", "50.26", "9.52", "52.59", 967053517L, 2),
- new osm_map_values(Navit._("Rheinland-Pfalz"), "6.06", "48.91", "8.56", "51.00", 442868899L, 2),
- new osm_map_values(Navit._("Saarland"), "6.30", "49.06", "7.46", "49.69", 157721162L, 2),
- new osm_map_values(Navit._("Sachsen-Anhalt"), "10.50", "50.88", "13.26", "53.11", 287785088L, 2),
- new osm_map_values(Navit._("Sachsen"), "11.82", "50.11", "15.10", "51.73", 342620834L, 2),
- new osm_map_values(Navit._("Schleswig-Holstein"), "7.41", "53.30", "11.98", "55.20", 280293910L, 2),
- new osm_map_values(Navit._("Thueringen"), "9.81", "50.15", "12.72", "51.70", 269428239L, 2),
- new osm_map_values(Navit._("Germany")+"+"+Navit._("Austria")+"+"+Navit._("Switzerland"), "3.4", "44.5", "18.6", "55.1", 5746126429L, 1),
- new osm_map_values(Navit._("Iceland"), "-25.3", "62.8", "-11.4", "67.5", 124837162L, 1),
- new osm_map_values(Navit._("Ireland"), "-11.17", "51.25", "-5.23", "55.9", 234750271L, 1),
- new osm_map_values(Navit._("Italy"), "6.52", "36.38", "18.96", "47.19", 1610171395L, 1),
- new osm_map_values(Navit._("Spain")+"+"+Navit._("Portugal"), "-11.04", "34.87", "4.62", "44.41", 1039624918L, 1),
- new osm_map_values(Navit._("Mallorca"), "2.2", "38.8", "4.7", "40.2", 137200636L, 2),
- new osm_map_values(Navit._("Galicia"), "-10.0", "41.7", "-6.3", "44.1", 174549553L, 2),
- new osm_map_values(Navit._("Scandinavia"), "4.0", "54.4", "32.1", "71.5", 1398661090L, 1),
- new osm_map_values(Navit._("Finland"), "18.6", "59.2", "32.3", "70.3", 460997178L, 1),
- new osm_map_values(Navit._("Denmark"), "7.49", "54.33", "13.05", "57.88", 321870414L, 1),
- new osm_map_values(Navit._("Switzerland"), "5.79", "45.74", "10.59", "47.84", 552565332L, 1),
- new osm_map_values(Navit._("United Kingdom"), "-9.7", "49.6", "2.2", "61.2", 901724648L, 1),
- new osm_map_values(Navit._("England"), "-7.80", "48.93", "2.41", "56.14", 937728414L, 1),
- new osm_map_values(Navit._("Buckinghamshire"), "-1.19", "51.44", "-0.43", "52.25", 142256978L, 2),
- new osm_map_values(Navit._("Cambridgeshire"), "-0.55", "51.96", "0.56", "52.79", 142334001L, 2),
- new osm_map_values(Navit._("Cumbria"), "-3.96", "53.85", "-2.11", "55.24", 144422460L, 2),
- new osm_map_values(Navit._("East yorkshire with hull"), "-1.16", "53.50", "0.54", "54.26", 141518744L, 2),
- new osm_map_values(Navit._("Essex"), "-0.07", "51.40", "1.36", "52.14", 162542730L, 2),
- new osm_map_values(Navit._("Herefordshire"), "-3.19", "51.78", "-2.29", "52.45", 129368660L, 2),
- new osm_map_values(Navit._("Kent"), "-0.02", "50.81", "1.65", "51.53", 145482562L, 2),
- new osm_map_values(Navit._("Lancashire"), "-3.20", "53.43", "-2.00", "54.29", 148964975L, 2),
- new osm_map_values(Navit._("Leicestershire"), "-1.65", "52.34", "-0.61", "53.03", 154199956L, 2),
- new osm_map_values(Navit._("Norfolk"), "0.10", "52.30", "2.04", "53.41", 146017009L, 2),
- new osm_map_values(Navit._("Nottinghamshire"), "-1.39", "52.73", "-0.62", "53.55", 147986548L, 2),
- new osm_map_values(Navit._("Oxfordshire"), "-1.77", "51.41", "-0.82", "52.22", 142240992L, 2),
- new osm_map_values(Navit._("Shropshire"), "-3.29", "52.26", "-2.18", "53.05", 136909363L, 2),
- new osm_map_values(Navit._("Somerset"), "-3.89", "50.77", "-2.20", "51.40", 145186096L, 2),
- new osm_map_values(Navit._("South yorkshire"), "-1.88", "53.25", "-0.80", "53.71", 145902650L, 2),
- new osm_map_values(Navit._("Suffolk"), "0.29", "51.88", "1.81", "52.60", 143799697L, 2),
- new osm_map_values(Navit._("Surrey"), "-0.90", "51.02", "0.10", "51.52", 157987139L, 2),
- new osm_map_values(Navit._("Wiltshire"), "-2.41", "50.90", "-1.44", "51.76", 138652346L, 2),
- new osm_map_values(Navit._("Scotland"), "-8.13", "54.49", "-0.15", "61.40", 258853845L, 2),
- new osm_map_values(Navit._("Wales"), "-5.56", "51.28", "-2.60", "53.60", 193593409L, 2),
- new osm_map_values(Navit._("Albania"), "19.09", "39.55", "21.12", "42.72", 146199817L, 1),
- new osm_map_values(Navit._("Belarus"), "23.12", "51.21", "32.87", "56.23", 324470696L, 1),
- new osm_map_values(Navit._("Russian Federation"), "27.9", "41.5", "190.4", "77.6", 2148314279L, 1),
- new osm_map_values(Navit._("Bulgaria"), "24.7", "42.1", "24.8", "42.1", 109869373L, 1),
- new osm_map_values(Navit._("Bosnia and Herzegovina"), "15.69", "42.52", "19.67", "45.32", 187122485L, 1),
- new osm_map_values(Navit._("Czech Republic"), "11.91", "48.48", "19.02", "51.17", 904838442L, 1),
- new osm_map_values(Navit._("Croatia"), "13.4", "42.1", "19.4", "46.9", 460854751L, 1),
- new osm_map_values(Navit._("Estonia"), "21.5", "57.5", "28.2", "59.6", 173378927L, 1),
- new osm_map_values(Navit._("Greece"), "28.9", "37.8", "29.0", "37.8", 109435051L, 1),
- new osm_map_values(Navit._("Crete"), "23.3", "34.5", "26.8", "36.0", 115985063L, 1),
- new osm_map_values(Navit._("Hungary"), "16.08", "45.57", "23.03", "48.39", 350318541L, 1),
- new osm_map_values(Navit._("Latvia"), "20.7", "55.6", "28.3", "58.1", 188188140L, 1),
- new osm_map_values(Navit._("Lithuania"), "20.9", "53.8", "26.9", "56.5", 217852597L, 1),
- new osm_map_values(Navit._("Poland"), "13.6", "48.8", "24.5", "55.0", 1464968657L, 1),
- new osm_map_values(Navit._("Romania"), "20.3", "43.5", "29.9", "48.4", 347931565L, 1),
- new osm_map_values(Navit._("Ukraine"), "22.0", "44.3", "40.4", "52.4", 793611912L, 1),
- new osm_map_values(Navit._("North America"), "-178.1", "6.5", "-10.4", "84.0", 5601866516L, 0),
- new osm_map_values(Navit._("Alaska"), "-179.5", "49.5", "-129", "71.6", 207746039L, 1),
- new osm_map_values(Navit._("Canada"), "-141.3", "41.5", "-52.2", "70.2", 2635719651L, 1),
- new osm_map_values(Navit._("Hawaii"), "-161.07", "18.49", "-154.45", "22.85", 115016656L, 1),
- new osm_map_values(Navit._("USA")+Navit._(" (except Alaska and Hawaii)"), "-125.4", "24.3", "-66.5", "49.3", 4060487198L, 1),
- new osm_map_values(Navit._("Midwest"), "-104.11", "35.92", "-80.46", "49.46", 1145596450L, 2),
- new osm_map_values(Navit._("Michigan"), "-90.47", "41.64", "-79.00", "49.37", 538247019L, 2),
- new osm_map_values(Navit._("Ohio"), "-84.87", "38.05", "-79.85", "43.53", 277022336L, 2),
- new osm_map_values(Navit._("Northeast"), "-80.58", "38.72", "-66.83", "47.53", 1017160709L, 2),
- new osm_map_values(Navit._("Massachusetts"), "-73.56", "40.78", "-68.67", "42.94", 340055487L, 2),
- new osm_map_values(Navit._("Vermont"), "-73.49", "42.68", "-71.41", "45.07", 139626067L, 2),
- new osm_map_values(Navit._("Pacific"), "-180.05", "15.87", "-129.75", "73.04", 207090640L, 2),
- new osm_map_values(Navit._("South"), "-106.70", "23.98", "-71.46", "40.70", 1747935356L, 2),
- new osm_map_values(Navit._("Arkansas"), "-94.67", "32.95", "-89.59", "36.60", 155658661L, 2),
- new osm_map_values(Navit._("District of Columbia"), "-77.17", "38.74", "-76.86", "39.05", 129235755L, 2),
- new osm_map_values(Navit._("Florida"), "-88.75", "23.63", "-77.67", "31.05", 224022108L, 2),
- new osm_map_values(Navit._("Louisiana"), "-94.09", "28.09", "-88.62", "33.07", 210120605L, 2),
- new osm_map_values(Navit._("Maryland"), "-79.54", "37.83", "-74.99", "40.22", 276462622L, 2),
- new osm_map_values(Navit._("Mississippi"), "-91.71", "29.99", "-88.04", "35.05", 177858031L, 2),
- new osm_map_values(Navit._("Oklahoma"), "-103.41", "33.56", "-94.38", "37.38", 200061473L, 2),
- new osm_map_values(Navit._("Texas"), "-106.96", "25.62", "-92.97", "36.58", 430089141L, 2),
- new osm_map_values(Navit._("Virginia"), "-83.73", "36.49", "-74.25", "39.52", 384187569L, 2),
- new osm_map_values(Navit._("West Virginia"), "-82.70", "37.15", "-77.66", "40.97", 220552071L, 2),
- new osm_map_values(Navit._("West"), "-133.11", "31.28", "-101.99", "49.51", 1152909162L, 2),
- new osm_map_values(Navit._("Arizona"), "-114.88", "30.01", "-108.99", "37.06", 182826833L, 2),
- new osm_map_values(Navit._("California"), "-125.94", "32.43", "-114.08", "42.07", 586923326L, 2),
- new osm_map_values(Navit._("Colorado"), "-109.11", "36.52", "-100.41", "41.05", 228623724L, 2),
- new osm_map_values(Navit._("Idaho"), "-117.30", "41.93", "-110.99", "49.18", 170684507L, 2),
- new osm_map_values(Navit._("Montana"), "-116.10", "44.31", "-102.64", "49.74", 176229800L, 2),
- new osm_map_values(Navit._("New Mexico"), "-109.10", "26.98", "-96.07", "37.05", 361793070L, 2),
- new osm_map_values(Navit._("Nevada"), "-120.2", "35.0", "-113.8", "42.1", 200614482L, 2),
- new osm_map_values(Navit._("Oregon"), "-124.8", "41.8", "-116.3", "46.3", 211462685L, 2),
- new osm_map_values(Navit._("Utah"), "-114.11", "36.95", "-108.99", "42.05", 151590197L, 2),
- new osm_map_values(Navit._("Washington State"), "-125.0", "45.5", "-116.9", "49.0", 222553768L, 2),
- new osm_map_values(Navit._("South+Middle America"), "-83.5", "-56.3", "-30.8", "13.7", 958895383L, 0),
- new osm_map_values(Navit._("Argentina"), "-73.9", "-57.3", "-51.6", "-21.0", 376857648L, 1),
- new osm_map_values(Navit._("Argentina")+"+"+Navit._("Chile"), "-77.2", "-56.3", "-52.7", "-16.1", 420275812L, 1),
- new osm_map_values(Navit._("Bolivia"), "-70.5", "-23.1", "-57.3", "-9.3", 175937824L, 1),
- new osm_map_values(Navit._("Brazil"), "-71.4", "-34.7", "-32.8", "5.4", 664872975L, 1),
- new osm_map_values(Navit._("Chile"), "-81.77", "-58.50", "-65.46", "-17.41", 241657330L, 1),
- new osm_map_values(Navit._("Cuba"), "-85.3", "19.6", "-74.0", "23.6", 129043575L, 1),
- new osm_map_values(Navit._("Colombia"), "-79.1", "-4.0", "-66.7", "12.6", 212016580L, 1),
- new osm_map_values(Navit._("Ecuador"), "-82.6", "-5.4", "-74.4", "2.3", 158857591L, 1),
- new osm_map_values(Navit._("Guyana")+"+"+Navit._("Suriname")+"+"+Navit._("Guyane Francaise"), "-62.0", "1.0", "-51.2", "8.9", 123000072L, 1),
- new osm_map_values(Navit._("Haiti")+"+"+Navit._("Dominican Republic"), "-74.8", "17.3", "-68.2", "20.1", 149925689L, 1),
- new osm_map_values(Navit._("Jamaica"), "-78.6", "17.4", "-75.9", "18.9", 113961998L, 1),
- new osm_map_values(Navit._("Mexico"), "-117.6", "14.1", "-86.4", "32.8", 551307973L, 1),
- new osm_map_values(Navit._("Paraguay"), "-63.8", "-28.1", "-53.6", "-18.8", 159498397L, 1),
- new osm_map_values(Navit._("Peru"), "-82.4", "-18.1", "-67.5", "0.4", 212490557L, 1),
- new osm_map_values(Navit._("Uruguay"), "-59.2", "-36.5", "-51.7", "-29.7", 157482719L, 1),
- new osm_map_values(Navit._("Venezuela"), "-73.6", "0.4", "-59.7", "12.8", 167295729L, 1)
+ new osm_map_values(Navit.T("Whole Planet"), "-180", "-90", "180", "90", 23992258630L, 0),
+ new osm_map_values(Navit.T("Africa"), "-30.89", "-36.17", "61.68", "38.40", 2070076339L, 0),
+ new osm_map_values(Navit.T("Angola"), "11.4", "-18.1", "24.2", "-5.3", 127557789L, 1),
+ new osm_map_values(Navit.T("Burundi"), "28.9", "-4.5", "30.9", "-2.2", 124049667L, 1),
+ new osm_map_values(Navit.T("Canary Islands"), "-18.69", "26.52", "-12.79", "29.99", 133565815L, 1),
+ new osm_map_values(Navit.T("Congo, Democratic Republic of the"), "11.7", "-13.6", "31.5", "5.7", 244228485L, 1),
+ new osm_map_values(Navit.T("Ethiopia"), "32.89", "3.33", "48.07", "14.97", 153067406L, 1),
+ new osm_map_values(Navit.T("Guinea"), "-15.47", "7.12", "-7.58", "12.74", 188047126L, 1),
+ new osm_map_values(Navit.T("Cote d'Ivoire"), "-8.72", "4.09", "-2.43", "10.80", 132187496L, 1),
+ new osm_map_values(Navit.T("Kenya"), "33.8", "-5.2", "42.4", "4.9", 190073089L, 1),
+ new osm_map_values(Navit.T("Lesotho"), "26.9", "-30.7", "29.6", "-28.4", 196189429L, 1),
+ new osm_map_values(Navit.T("Liberia"), "-15.00", "-0.73", "-7.20", "8.65", 156257253L, 1),
+ new osm_map_values(Navit.T("Libya"), "9.32", "19.40", "25.54", "33.63", 126046917L, 1),
+ new osm_map_values(Navit.T("Madagascar"), "42.25", "-26.63", "51.20", "-11.31", 145210721L, 1),
+ new osm_map_values(Navit.T("Namibia")+"+"+Navit.T("Botswana"), "11.4", "-29.1", "29.5", "-16.9", 248970987L, 1),
+ new osm_map_values(Navit.T("Reunion"), "55.2", "-21.4", "55.9", "-20.9", 126008774L, 1),
+ new osm_map_values(Navit.T("Rwanda"), "28.8", "-2.9", "30.9", "-1.0", 128267595L, 1),
+ new osm_map_values(Navit.T("South Africa")+"+"+Navit.T("Lesotho"), "15.93", "-36.36", "33.65", "-22.08", 307280006L, 1),
+ new osm_map_values(Navit.T("Tanzania, United Republic of"), "29.19", "-11.87", "40.74", "-0.88", 253621029L, 1),
+ new osm_map_values(Navit.T("Uganda"), "29.3", "-1.6", "35.1", "4.3", 179134521L, 1),
+ new osm_map_values(Navit.T("Asia"), "23.8", "0.1", "195.0", "82.4", 5113673780L, 0),
+ new osm_map_values(Navit.T("Azerbaijan"), "44.74", "38.34", "51.69", "42.37", 138346406L, 1),
+ new osm_map_values(Navit.T("China"), "67.3", "5.3", "135.0", "54.5", 1718108758L, 1),
+ new osm_map_values(Navit.T("Cyprus"), "32.0", "34.5", "34.9", "35.8", 118472448L, 1),
+ new osm_map_values(Navit.T("India")+"+"+Navit.T("Nepal"), "67.9", "5.5", "89.6", "36.0", 601877877L, 1),
+ new osm_map_values(Navit.T("Indonesia"), "93.7", "-17.3", "155.5", "7.6", 420741405L, 1),
+ new osm_map_values(Navit.T("Iran, Islamic Republic of"), "43.5", "24.4", "63.6", "40.4", 242016066L, 1),
+ new osm_map_values(Navit.T("Iraq"), "38.7", "28.5", "49.2", "37.4", 160751805L, 1),
+ new osm_map_values(Navit.T("Israel"), "33.99", "29.8", "35.95", "33.4", 155685778L, 1),
+ new osm_map_values(Navit.T("Japan")+"+"+Navit.T("Korea"), "123.6", "25.2", "151.3", "47.1", 1029080156L, 1),
+ new osm_map_values(Navit.T("Kazakhstan"), "46.44", "40.89", "87.36", "55.45", 407633007L, 1),
+ new osm_map_values(Navit.T("Kyrgyzstan"), "69.23", "39.13", "80.33", "43.29", 147997835L, 1),
+ new osm_map_values(Navit.T("Malaysia")+"+"+Navit.T("Singapore"), "94.3", "-5.9", "108.6", "6.8", 168816435L, 1),
+ new osm_map_values(Navit.T("Mongolia"), "87.5", "41.4", "120.3", "52.7", 153534851L, 1),
+ new osm_map_values(Navit.T("Pakistan"), "60.83", "23.28", "77.89", "37.15", 217644321L, 1),
+ new osm_map_values(Navit.T("Philippines"), "115.58", "4.47", "127.85", "21.60", 281428307L, 1),
+ new osm_map_values(Navit.T("Saudi Arabia"), "33.2", "16.1", "55.9", "33.5", 242648303L, 1),
+ new osm_map_values(Navit.T("Taiwan"), "119.1", "21.5", "122.5", "25.2", 1029080156L, 1),
+ new osm_map_values(Navit.T("Thailand"), "97.5", "5.7", "105.2", "19.7", 185135492L, 1),
+ new osm_map_values(Navit.T("Turkey"), "25.1", "35.8", "46.4", "42.8", 331087441L, 1),
+ new osm_map_values(Navit.T("Turkmenistan"), "51.78", "35.07", "66.76", "42.91", 131045087L, 1),
+ new osm_map_values(Navit.T("UAE+Other"), "51.5", "22.6", "56.7", "26.5", 128934674L, 1),
+ new osm_map_values(Navit.T("Australia")+"+"+Navit.T("Oceania"), "89.84", "-57.39", "179.79", "7.26", 782722650L, 0),
+ new osm_map_values(Navit.T("Australia"), "110.5", "-44.2", "154.9", "-9.2", 348652900L, 0),
+ new osm_map_values(Navit.T("Tasmania"), "144.0", "-45.1", "155.3", "-24.8", 253231890L, 1),
+ new osm_map_values(Navit.T("Victoria")+"+"+Navit.T("New South Wales"), "140.7", "-39.4", "153.7", "-26.9", 241500829L, 1),
+ new osm_map_values(Navit.T("New Caledonia"), "157.85", "-25.05", "174.15", "-16.85", 115512336L, 1),
+ new osm_map_values(Navit.T("New Zealand"), "165.2", "-47.6", "179.1", "-33.7", 239264192L, 1),
+ new osm_map_values(Navit.T("Europe"), "-12.97", "33.59", "34.15", "72.10", 11984126789L, 0),
+ new osm_map_values(Navit.T("Western Europe"), "-17.6", "34.5", "42.9", "70.9", 12648810717L, 1),
+ new osm_map_values(Navit.T("Austria"), "9.4", "46.32", "17.21", "49.1", 898273634L, 1),
+ new osm_map_values(Navit.T("Azores"), "-31.62", "36.63", "-24.67", "40.13", 112687225L, 1),
+ new osm_map_values(Navit.T("BeNeLux"), "2.08", "48.87", "7.78", "54.52", 1771971595L, 1),
+ new osm_map_values(Navit.T("Netherlands"), "3.07", "50.75", "7.23", "53.73", 1191828033L, 1),
+ new osm_map_values(Navit.T("Denmark"), "7.65", "54.32", "15.58", "58.07", 365606979L, 1),
+ new osm_map_values(Navit.T("Faroe Islands"), "-7.8", "61.3", "-6.1", "62.5", 109377568L, 1),
+ new osm_map_values(Navit.T("France"), "-5.45", "42.00", "8.44", "51.68", 3907969744L, 1),
+ new osm_map_values(Navit.T("Alsace"), "6.79", "47.27", "8.48", "49.17", 354249349L, 2),
+ new osm_map_values(Navit.T("Aquitaine"), "-2.27", "42.44", "1.50", "45.76", 443715019L, 2),
+ new osm_map_values(Navit.T("Auvergne"), "2.01", "44.57", "4.54", "46.85", 287663213L, 2),
+ new osm_map_values(Navit.T("Basse-Normandie"), "-2.09", "48.13", "1.03", "49.98", 262352354L, 2),
+ new osm_map_values(Navit.T("Bourgogne"), "2.80", "46.11", "5.58", "48.45", 298868796L, 2),
+ new osm_map_values(Navit.T("Bretagne"), "-5.58", "46.95", "-0.96", "48.99", 382770794L, 2),
+ new osm_map_values(Navit.T("Centre"), "0.01", "46.29", "3.18", "48.99", 474224721L, 2),
+ new osm_map_values(Navit.T("Champagne-Ardenne"), "3.34", "47.53", "5.94", "50.28", 269947824L, 2),
+ new osm_map_values(Navit.T("Corse"), "8.12", "41.32", "9.95", "43.28", 129902146L, 2),
+ new osm_map_values(Navit.T("Franche-Comte"), "5.20", "46.21", "7.83", "48.07", 324476070L, 2),
+ new osm_map_values(Navit.T("Haute-Normandie"), "-0.15", "48.62", "1.85", "50.18", 202782876L, 2),
+ new osm_map_values(Navit.T("Ile-de-France"), "1.40", "48.07", "3.61", "49.29", 311052699L, 2),
+ new osm_map_values(Navit.T("Languedoc-Roussillon"), "1.53", "42.25", "4.89", "45.02", 380145667L, 2),
+ new osm_map_values(Navit.T("Limousin"), "0.58", "44.87", "2.66", "46.50", 206696539L, 2),
+ new osm_map_values(Navit.T("Lorraine"), "4.84", "47.77", "7.72", "49.73", 330777318L, 2),
+ new osm_map_values(Navit.T("Midi-Pyrenees"), "-0.37", "42.18", "3.50", "45.10", 462618363L, 2),
+ new osm_map_values(Navit.T("Nord-pas-de-Calais"), "1.42", "49.92", "4.49", "51.31", 368467511L, 2),
+ new osm_map_values(Navit.T("Pays-de-la-Loire"), "-2.88", "46.20", "0.97", "48.62", 499471143L, 2),
+ new osm_map_values(Navit.T("Picardie"), "1.25", "48.79", "4.31", "50.43", 374308041L, 2),
+ new osm_map_values(Navit.T("Poitou-Charentes"), "-1.69", "45.04", "1.26", "47.23", 342125526L, 2),
+ new osm_map_values(Navit.T("Provence-Alpes-Cote-d-Azur"), "4.21", "42.91", "7.99", "45.18", 390306134L, 2),
+ new osm_map_values(Navit.T("Rhone-Alpes"), "3.65", "44.07", "7.88", "46.64", 510797942L, 2),
+ new osm_map_values(Navit.T("Germany"), "5.18", "46.84", "15.47", "55.64", 3521359466L, 1),
+ new osm_map_values(Navit.T("Baden-Wuerttemberg"), "7.32", "47.14", "10.57", "49.85", 674361124L, 2),
+ new osm_map_values(Navit.T("Bayern"), "8.92", "47.22", "13.90", "50.62", 860161150L, 2),
+ new osm_map_values(Navit.T("Mittelfranken"), "9.86", "48.78", "11.65", "49.84", 203055195L, 2),
+ new osm_map_values(Navit.T("Niederbayern"), "11.55", "47.75", "14.12", "49.42", 312924770L, 2),
+ new osm_map_values(Navit.T("Oberbayern"), "10.67", "47.05", "13.57", "49.14", 382734883L, 2),
+ new osm_map_values(Navit.T("Oberfranken"), "10.31", "49.54", "12.49", "50.95", 235258691L, 2),
+ new osm_map_values(Navit.T("Oberpfalz"), "11.14", "48.71", "13.47", "50.43", 264536012L, 2),
+ new osm_map_values(Navit.T("Schwaben"), "9.27", "47.10", "11.36", "49.09", 321141607L, 2),
+ new osm_map_values(Navit.T("Unterfranken"), "8.59", "49.16", "10.93", "50.67", 303720890L, 2),
+ new osm_map_values(Navit.T("Berlin"), "13.03", "52.28", "13.81", "52.73", 169019946L, 2),
+ new osm_map_values(Navit.T("Brandenburg"), "11.17", "51.30", "14.83", "53.63", 323497599L, 2),
+ new osm_map_values(Navit.T("Bremen"), "8.43", "52.96", "9.04", "53.66", 150963608L, 2),
+ new osm_map_values(Navit.T("Hamburg"), "9.56", "53.34", "10.39", "53.80", 156284421L, 2),
+ new osm_map_values(Navit.T("Hessen"), "7.72", "49.34", "10.29", "51.71", 432279328L, 2),
+ new osm_map_values(Navit.T("Mecklenburg-Vorpommern"), "10.54", "53.05", "14.48", "55.05", 213183908L, 2),
+ new osm_map_values(Navit.T("Niedersachsen"), "6.40", "51.24", "11.69", "54.22", 819766939L, 2),
+ new osm_map_values(Navit.T("Nordrhein-westfalen"), "5.46", "50.26", "9.52", "52.59", 967053517L, 2),
+ new osm_map_values(Navit.T("Rheinland-Pfalz"), "6.06", "48.91", "8.56", "51.00", 442868899L, 2),
+ new osm_map_values(Navit.T("Saarland"), "6.30", "49.06", "7.46", "49.69", 157721162L, 2),
+ new osm_map_values(Navit.T("Sachsen-Anhalt"), "10.50", "50.88", "13.26", "53.11", 287785088L, 2),
+ new osm_map_values(Navit.T("Sachsen"), "11.82", "50.11", "15.10", "51.73", 342620834L, 2),
+ new osm_map_values(Navit.T("Schleswig-Holstein"), "7.41", "53.30", "11.98", "55.20", 280293910L, 2),
+ new osm_map_values(Navit.T("Thueringen"), "9.81", "50.15", "12.72", "51.70", 269428239L, 2),
+ new osm_map_values(Navit.T("Germany")+"+"+Navit.T("Austria")+"+"+Navit.T("Switzerland"), "3.4", "44.5", "18.6", "55.1", 5746126429L, 1),
+ new osm_map_values(Navit.T("Iceland"), "-25.3", "62.8", "-11.4", "67.5", 124837162L, 1),
+ new osm_map_values(Navit.T("Ireland"), "-11.17", "51.25", "-5.23", "55.9", 234750271L, 1),
+ new osm_map_values(Navit.T("Italy"), "6.52", "36.38", "18.96", "47.19", 1610171395L, 1),
+ new osm_map_values(Navit.T("Spain")+"+"+Navit.T("Portugal"), "-11.04", "34.87", "4.62", "44.41", 1039624918L, 1),
+ new osm_map_values(Navit.T("Mallorca"), "2.2", "38.8", "4.7", "40.2", 137200636L, 2),
+ new osm_map_values(Navit.T("Galicia"), "-10.0", "41.7", "-6.3", "44.1", 174549553L, 2),
+ new osm_map_values(Navit.T("Scandinavia"), "4.0", "54.4", "32.1", "71.5", 1398661090L, 1),
+ new osm_map_values(Navit.T("Finland"), "18.6", "59.2", "32.3", "70.3", 460997178L, 1),
+ new osm_map_values(Navit.T("Denmark"), "7.49", "54.33", "13.05", "57.88", 321870414L, 1),
+ new osm_map_values(Navit.T("Switzerland"), "5.79", "45.74", "10.59", "47.84", 552565332L, 1),
+ new osm_map_values(Navit.T("United Kingdom"), "-9.7", "49.6", "2.2", "61.2", 901724648L, 1),
+ new osm_map_values(Navit.T("England"), "-7.80", "48.93", "2.41", "56.14", 937728414L, 1),
+ new osm_map_values(Navit.T("Buckinghamshire"), "-1.19", "51.44", "-0.43", "52.25", 142256978L, 2),
+ new osm_map_values(Navit.T("Cambridgeshire"), "-0.55", "51.96", "0.56", "52.79", 142334001L, 2),
+ new osm_map_values(Navit.T("Cumbria"), "-3.96", "53.85", "-2.11", "55.24", 144422460L, 2),
+ new osm_map_values(Navit.T("East yorkshire with hull"), "-1.16", "53.50", "0.54", "54.26", 141518744L, 2),
+ new osm_map_values(Navit.T("Essex"), "-0.07", "51.40", "1.36", "52.14", 162542730L, 2),
+ new osm_map_values(Navit.T("Herefordshire"), "-3.19", "51.78", "-2.29", "52.45", 129368660L, 2),
+ new osm_map_values(Navit.T("Kent"), "-0.02", "50.81", "1.65", "51.53", 145482562L, 2),
+ new osm_map_values(Navit.T("Lancashire"), "-3.20", "53.43", "-2.00", "54.29", 148964975L, 2),
+ new osm_map_values(Navit.T("Leicestershire"), "-1.65", "52.34", "-0.61", "53.03", 154199956L, 2),
+ new osm_map_values(Navit.T("Norfolk"), "0.10", "52.30", "2.04", "53.41", 146017009L, 2),
+ new osm_map_values(Navit.T("Nottinghamshire"), "-1.39", "52.73", "-0.62", "53.55", 147986548L, 2),
+ new osm_map_values(Navit.T("Oxfordshire"), "-1.77", "51.41", "-0.82", "52.22", 142240992L, 2),
+ new osm_map_values(Navit.T("Shropshire"), "-3.29", "52.26", "-2.18", "53.05", 136909363L, 2),
+ new osm_map_values(Navit.T("Somerset"), "-3.89", "50.77", "-2.20", "51.40", 145186096L, 2),
+ new osm_map_values(Navit.T("South yorkshire"), "-1.88", "53.25", "-0.80", "53.71", 145902650L, 2),
+ new osm_map_values(Navit.T("Suffolk"), "0.29", "51.88", "1.81", "52.60", 143799697L, 2),
+ new osm_map_values(Navit.T("Surrey"), "-0.90", "51.02", "0.10", "51.52", 157987139L, 2),
+ new osm_map_values(Navit.T("Wiltshire"), "-2.41", "50.90", "-1.44", "51.76", 138652346L, 2),
+ new osm_map_values(Navit.T("Scotland"), "-8.13", "54.49", "-0.15", "61.40", 258853845L, 2),
+ new osm_map_values(Navit.T("Wales"), "-5.56", "51.28", "-2.60", "53.60", 193593409L, 2),
+ new osm_map_values(Navit.T("Albania"), "19.09", "39.55", "21.12", "42.72", 146199817L, 1),
+ new osm_map_values(Navit.T("Belarus"), "23.12", "51.21", "32.87", "56.23", 324470696L, 1),
+ new osm_map_values(Navit.T("Russian Federation"), "27.9", "41.5", "190.4", "77.6", 2148314279L, 1),
+ new osm_map_values(Navit.T("Bulgaria"), "24.7", "42.1", "24.8", "42.1", 109869373L, 1),
+ new osm_map_values(Navit.T("Bosnia and Herzegovina"), "15.69", "42.52", "19.67", "45.32", 187122485L, 1),
+ new osm_map_values(Navit.T("Czech Republic"), "11.91", "48.48", "19.02", "51.17", 904838442L, 1),
+ new osm_map_values(Navit.T("Croatia"), "13.4", "42.1", "19.4", "46.9", 460854751L, 1),
+ new osm_map_values(Navit.T("Estonia"), "21.5", "57.5", "28.2", "59.6", 173378927L, 1),
+ new osm_map_values(Navit.T("Greece"), "28.9", "37.8", "29.0", "37.8", 109435051L, 1),
+ new osm_map_values(Navit.T("Crete"), "23.3", "34.5", "26.8", "36.0", 115985063L, 1),
+ new osm_map_values(Navit.T("Hungary"), "16.08", "45.57", "23.03", "48.39", 350318541L, 1),
+ new osm_map_values(Navit.T("Latvia"), "20.7", "55.6", "28.3", "58.1", 188188140L, 1),
+ new osm_map_values(Navit.T("Lithuania"), "20.9", "53.8", "26.9", "56.5", 217852597L, 1),
+ new osm_map_values(Navit.T("Poland"), "13.6", "48.8", "24.5", "55.0", 1464968657L, 1),
+ new osm_map_values(Navit.T("Romania"), "20.3", "43.5", "29.9", "48.4", 347931565L, 1),
+ new osm_map_values(Navit.T("Ukraine"), "22.0", "44.3", "40.4", "52.4", 793611912L, 1),
+ new osm_map_values(Navit.T("North America"), "-178.1", "6.5", "-10.4", "84.0", 5601866516L, 0),
+ new osm_map_values(Navit.T("Alaska"), "-179.5", "49.5", "-129", "71.6", 207746039L, 1),
+ new osm_map_values(Navit.T("Canada"), "-141.3", "41.5", "-52.2", "70.2", 2635719651L, 1),
+ new osm_map_values(Navit.T("Hawaii"), "-161.07", "18.49", "-154.45", "22.85", 115016656L, 1),
+ new osm_map_values(Navit.T("USA")+Navit.T(" (except Alaska and Hawaii)"), "-125.4", "24.3", "-66.5", "49.3", 4060487198L, 1),
+ new osm_map_values(Navit.T("Midwest"), "-104.11", "35.92", "-80.46", "49.46", 1145596450L, 2),
+ new osm_map_values(Navit.T("Michigan"), "-90.47", "41.64", "-79.00", "49.37", 538247019L, 2),
+ new osm_map_values(Navit.T("Ohio"), "-84.87", "38.05", "-79.85", "43.53", 277022336L, 2),
+ new osm_map_values(Navit.T("Northeast"), "-80.58", "38.72", "-66.83", "47.53", 1017160709L, 2),
+ new osm_map_values(Navit.T("Massachusetts"), "-73.56", "40.78", "-68.67", "42.94", 340055487L, 2),
+ new osm_map_values(Navit.T("Vermont"), "-73.49", "42.68", "-71.41", "45.07", 139626067L, 2),
+ new osm_map_values(Navit.T("Pacific"), "-180.05", "15.87", "-129.75", "73.04", 207090640L, 2),
+ new osm_map_values(Navit.T("South"), "-106.70", "23.98", "-71.46", "40.70", 1747935356L, 2),
+ new osm_map_values(Navit.T("Arkansas"), "-94.67", "32.95", "-89.59", "36.60", 155658661L, 2),
+ new osm_map_values(Navit.T("District of Columbia"), "-77.17", "38.74", "-76.86", "39.05", 129235755L, 2),
+ new osm_map_values(Navit.T("Florida"), "-88.75", "23.63", "-77.67", "31.05", 224022108L, 2),
+ new osm_map_values(Navit.T("Louisiana"), "-94.09", "28.09", "-88.62", "33.07", 210120605L, 2),
+ new osm_map_values(Navit.T("Maryland"), "-79.54", "37.83", "-74.99", "40.22", 276462622L, 2),
+ new osm_map_values(Navit.T("Mississippi"), "-91.71", "29.99", "-88.04", "35.05", 177858031L, 2),
+ new osm_map_values(Navit.T("Oklahoma"), "-103.41", "33.56", "-94.38", "37.38", 200061473L, 2),
+ new osm_map_values(Navit.T("Texas"), "-106.96", "25.62", "-92.97", "36.58", 430089141L, 2),
+ new osm_map_values(Navit.T("Virginia"), "-83.73", "36.49", "-74.25", "39.52", 384187569L, 2),
+ new osm_map_values(Navit.T("West Virginia"), "-82.70", "37.15", "-77.66", "40.97", 220552071L, 2),
+ new osm_map_values(Navit.T("West"), "-133.11", "31.28", "-101.99", "49.51", 1152909162L, 2),
+ new osm_map_values(Navit.T("Arizona"), "-114.88", "30.01", "-108.99", "37.06", 182826833L, 2),
+ new osm_map_values(Navit.T("California"), "-125.94", "32.43", "-114.08", "42.07", 586923326L, 2),
+ new osm_map_values(Navit.T("Colorado"), "-109.11", "36.52", "-100.41", "41.05", 228623724L, 2),
+ new osm_map_values(Navit.T("Idaho"), "-117.30", "41.93", "-110.99", "49.18", 170684507L, 2),
+ new osm_map_values(Navit.T("Montana"), "-116.10", "44.31", "-102.64", "49.74", 176229800L, 2),
+ new osm_map_values(Navit.T("New Mexico"), "-109.10", "26.98", "-96.07", "37.05", 361793070L, 2),
+ new osm_map_values(Navit.T("Nevada"), "-120.2", "35.0", "-113.8", "42.1", 200614482L, 2),
+ new osm_map_values(Navit.T("Oregon"), "-124.8", "41.8", "-116.3", "46.3", 211462685L, 2),
+ new osm_map_values(Navit.T("Utah"), "-114.11", "36.95", "-108.99", "42.05", 151590197L, 2),
+ new osm_map_values(Navit.T("Washington State"), "-125.0", "45.5", "-116.9", "49.0", 222553768L, 2),
+ new osm_map_values(Navit.T("South+Middle America"), "-83.5", "-56.3", "-30.8", "13.7", 958895383L, 0),
+ new osm_map_values(Navit.T("Argentina"), "-73.9", "-57.3", "-51.6", "-21.0", 376857648L, 1),
+ new osm_map_values(Navit.T("Argentina")+"+"+Navit.T("Chile"), "-77.2", "-56.3", "-52.7", "-16.1", 420275812L, 1),
+ new osm_map_values(Navit.T("Bolivia"), "-70.5", "-23.1", "-57.3", "-9.3", 175937824L, 1),
+ new osm_map_values(Navit.T("Brazil"), "-71.4", "-34.7", "-32.8", "5.4", 664872975L, 1),
+ new osm_map_values(Navit.T("Chile"), "-81.77", "-58.50", "-65.46", "-17.41", 241657330L, 1),
+ new osm_map_values(Navit.T("Cuba"), "-85.3", "19.6", "-74.0", "23.6", 129043575L, 1),
+ new osm_map_values(Navit.T("Colombia"), "-79.1", "-4.0", "-66.7", "12.6", 212016580L, 1),
+ new osm_map_values(Navit.T("Ecuador"), "-82.6", "-5.4", "-74.4", "2.3", 158857591L, 1),
+ new osm_map_values(Navit.T("Guyana")+"+"+Navit.T("Suriname")+"+"+Navit.T("Guyane Francaise"), "-62.0", "1.0", "-51.2", "8.9", 123000072L, 1),
+ new osm_map_values(Navit.T("Haiti")+"+"+Navit.T("Dominican Republic"), "-74.8", "17.3", "-68.2", "20.1", 149925689L, 1),
+ new osm_map_values(Navit.T("Jamaica"), "-78.6", "17.4", "-75.9", "18.9", 113961998L, 1),
+ new osm_map_values(Navit.T("Mexico"), "-117.6", "14.1", "-86.4", "32.8", 551307973L, 1),
+ new osm_map_values(Navit.T("Paraguay"), "-63.8", "-28.1", "-53.6", "-18.8", 159498397L, 1),
+ new osm_map_values(Navit.T("Peru"), "-82.4", "-18.1", "-67.5", "0.4", 212490557L, 1),
+ new osm_map_values(Navit.T("Uruguay"), "-59.2", "-36.5", "-51.7", "-29.7", 157482719L, 1),
+ new osm_map_values(Navit.T("Venezuela"), "-73.6", "0.4", "-59.7", "12.8", 167295729L, 1)
};
private String map_filename_path;
@@ -349,7 +350,7 @@ public class NavitMapDownloader extends Thread retry_counter = 0;
Log.v(TAG, "start download " + map_values.map_name);
- updateProgress(0, map_values.est_size_bytes, Navit._("downloading") + ": " + map_values.map_name);
+ updateProgress(0, map_values.est_size_bytes, Navit.T("downloading") + ": " + map_values.map_name);
boolean success;
do {
@@ -364,7 +365,7 @@ public class NavitMapDownloader extends Thread && !stop_me);
if (success) {
- toast(map_values.map_name + " " + Navit._("ready"));
+ toast(map_values.map_name + " " + Navit.T("ready"));
getMapInfoFile().delete();
Log.d(TAG, "success");
}
@@ -390,10 +391,10 @@ public class NavitMapDownloader extends Thread String msg;
Log.e(TAG, "Not enough free space or media not available. Please free at least " + needed_bytes / 1024 /1024 + "Mb.");
if(free_space<0)
- msg=Navit._("Media selected for map storage is not available");
+ msg=Navit.T("Media selected for map storage is not available");
else
- msg=Navit._("Not enough free space");
- updateProgress(free_space, needed_bytes, Navit._("Error downloading map!") + "\n" + msg);
+ msg=Navit.T("Not enough free space");
+ updateProgress(free_space, needed_bytes, Navit.T("Error downloading map!") + "\n" + msg);
return false;
}
return true;
@@ -603,11 +604,11 @@ public class NavitMapDownloader extends Thread if (deleteMap()) {
enableRetry();
} else {
- updateProgress(already_read, real_size_bytes, Navit._("Error downloading map!") + "\n"
- + Navit._("Not enough free space"));
+ updateProgress(already_read, real_size_bytes, Navit.T("Error downloading map!") + "\n"
+ + Navit.T("Not enough free space"));
}
} else {
- updateProgress(already_read, real_size_bytes, Navit._("Error writing map!"));
+ updateProgress(already_read, real_size_bytes, Navit.T("Error writing map!"));
}
return false;
@@ -615,7 +616,7 @@ public class NavitMapDownloader extends Thread }
if (stop_me) {
- toast(Navit._("Map download aborted!"));
+ toast(Navit.T("Map download aborted!"));
} else if ( already_read < real_size_bytes ) {
Log.d(TAG, "Server send only " + already_read + " bytes of " + real_size_bytes);
enableRetry();
@@ -626,7 +627,7 @@ public class NavitMapDownloader extends Thread Log.d(TAG, "Error: " + e);
enableRetry();
- updateProgress(already_read, real_size_bytes, Navit._("Error downloading map!"));
+ updateProgress(already_read, real_size_bytes, Navit.T("Error downloading map!"));
}
return success;
@@ -668,9 +669,9 @@ public class NavitMapDownloader extends Thread eta_string = eta_seconds + " s";
}
String info =
- String.format("%s: %s\n %dMb / %dMb\n %.1f kb/s %s: %s", Navit._("downloading")
+ String.format("%s: %s\n %dMb / %dMb\n %.1f kb/s %s: %s", Navit.T("downloading")
, map_values.map_name, readBytes / 1024 / 1024, maxBytes / 1024 / 1024,
- per_second_overall / 1024f, Navit._("ETA"), eta_string);
+ per_second_overall / 1024f, Navit.T("ETA"), eta_string);
if (retry_counter > 0) {
info += "\n Retry " + retry_counter + "/" + MAX_RETRIES;
@@ -683,7 +684,7 @@ public class NavitMapDownloader extends Thread }
protected void updateProgress(long positionBytes, long maximumBytes, String infoText) {
- NavitDialogs.sendDialogMessage(NavitDialogs.MSG_PROGRESS_BAR, Navit._("Map download"), infoText
+ NavitDialogs.sendDialogMessage(NavitDialogs.MSG_PROGRESS_BAR, Navit.T("Map download"), infoText
, NavitDialogs.DIALOG_MAPDOWNLOAD, (int) (maximumBytes / 1024),
(int) (positionBytes / 1024));
}
diff --git a/navit/attr_def.h b/navit/attr_def.h index 7e66ac3d2..9276e4d60 100644 --- a/navit/attr_def.h +++ b/navit/attr_def.h @@ -348,7 +348,7 @@ ATTR_UNUSED ATTR_UNUSED ATTR(status_text) ATTR(log_gpx_desc) -ATTR(map_pass) +ATTR_UNUSED ATTR_UNUSED ATTR(socket) /* These attributes for house number interpolation are only written by diff --git a/navit/file.c b/navit/file.c index 6764eafe1..8363b6a8b 100644 --- a/navit/file.c +++ b/navit/file.c @@ -46,14 +46,6 @@ extern char *version; -#ifdef HAVE_LIBCRYPTO -#include <openssl/sha.h> -#include <openssl/hmac.h> -#include <openssl/aes.h> -#include <openssl/evp.h> -#include <openssl/rand.h> -#endif - #ifdef CACHE_SIZE static GHashTable *file_name_hash; #endif @@ -555,81 +547,6 @@ file_data_read_compressed(struct file *file, long long offset, int size, int siz return ret; } -unsigned char * -file_data_read_encrypted(struct file *file, long long offset, int size, int size_uncomp, int compressed, char *passwd) -{ -#ifdef HAVE_LIBCRYPTO - void *ret; - unsigned char *buffer = 0; - uLongf destLen=size_uncomp; - - if (file->cache) { - struct file_cache_id id={offset,size,file->name_id,1}; - ret=cache_lookup(file_cache,&id); - if (ret) - return ret; - ret=cache_insert_new(file_cache,&id,size_uncomp); - } else - ret=g_malloc(size_uncomp); - lseek(file->fd, offset, SEEK_SET); - - buffer = (unsigned char *)g_malloc(size); - if (read(file->fd, buffer, size) != size) { - g_free(ret); - ret=NULL; - } else { - unsigned char key[34], salt[8], verify[2], counter[16], xor[16], mac[10], *datap; - int overhead=sizeof(salt)+sizeof(verify)+sizeof(mac); - int esize=size-overhead; - PKCS5_PBKDF2_HMAC_SHA1(passwd, strlen(passwd), (unsigned char *)buffer, 8, 1000, 34, key); - if (key[32] == buffer[8] && key[33] == buffer[9] && esize >= 0) { - AES_KEY aeskey; - AES_set_encrypt_key(key, 128, &aeskey); - datap=buffer+sizeof(salt)+sizeof(verify); - memset(counter, 0, sizeof(counter)); - while (esize > 0) { - int i,curr_size,idx=0; - do { - counter[idx]++; - } while (!counter[idx++]); - AES_encrypt(counter, xor, &aeskey); - curr_size=esize; - if (curr_size > sizeof(xor)) - curr_size=sizeof(xor); - for (i = 0 ; i < curr_size ; i++) - *datap++^=xor[i]; - esize-=curr_size; - } - size-=overhead; - datap=buffer+sizeof(salt)+sizeof(verify); - if (compressed) { - if (uncompress_int(ret, &destLen, (Bytef *)datap, size) != Z_OK) { - dbg(lvl_error,"uncompress failed\n"); - g_free(ret); - ret=NULL; - } - } else { - if (size == destLen) - memcpy(ret, buffer, destLen); - else { - dbg(lvl_error,"memcpy failed\n"); - g_free(ret); - ret=NULL; - } - } - } else { - g_free(ret); - ret=NULL; - } - } - g_free(buffer); - - return ret; -#else - return NULL; -#endif -} - void file_data_free(struct file *file, unsigned char *data) { diff --git a/navit/file.h b/navit/file.h index bb8b8bdd8..46dbc4c99 100644 --- a/navit/file.h +++ b/navit/file.h @@ -76,7 +76,6 @@ void file_data_flush(struct file *file, long long offset, int size); int file_data_write(struct file *file, long long offset, int size, const void *data); int file_get_contents(char *name, unsigned char **buffer, int *size); unsigned char *file_data_read_compressed(struct file *file, long long offset, int size, int size_uncomp); -unsigned char *file_data_read_encrypted(struct file *file, long long offset, int size, int size_uncomp, int compressed, char *passwd); void file_data_free(struct file *file, unsigned char *data); int file_exists(char const *name); void file_remap_readonly(struct file *f); diff --git a/navit/gui/gtk/gui_gtk_action.c b/navit/gui/gtk/gui_gtk_action.c index 951f1138a..0d6acee48 100644 --- a/navit/gui/gtk/gui_gtk_action.c +++ b/navit/gui/gtk/gui_gtk_action.c @@ -126,6 +126,27 @@ tracking_action(GtkWidget *w, struct gui_priv *gui, void *dummy) } } +/** @brief Toggles the ability to follow the vehicle at the + * cursor. Suitable for use in the GTK menu as below. + * + * @param GtkWidget is the generic storage type for widgets. + * @param gui The gui. I think, I'm new here. + * @param dummy Ignore the pointer behind the curtain. + * @return void + */ + +static void +follow_vehicle_action(GtkWidget *w, struct gui_priv *gui, void *dummy) +{ + struct attr attr; + + attr.type=attr_follow_cursor; + attr.u.num=gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(w)); + if(!navit_set_attr(gui->nav, &attr)) { + dbg(lvl_error, "Failed to set attr_follow_gps\n"); + } +} + static void orient_north_action(GtkWidget *w, struct gui_priv *gui, void *dummy) { @@ -232,6 +253,7 @@ static GtkToggleActionEntry toggleentries[] = { { "CursorAction", "cursor_icon",_n("Show position _cursor"), NULL, NULL, G_CALLBACK(cursor_action),TRUE }, { "TrackingAction", NULL ,_n("_Lock on Road"), NULL, NULL, G_CALLBACK(tracking_action),TRUE }, + { "FollowVehicleAction", NULL ,_n("_Follow Vehicle"), NULL, NULL, G_CALLBACK(follow_vehicle_action),TRUE }, { "OrientationAction", "orientation_icon", _n("_Keep orientation to the North"), NULL, _n("Switches map orientation to the north or the vehicle"), G_CALLBACK(orient_north_action),FALSE }, { "RoadbookAction", GTK_STOCK_JUSTIFY_FILL, _n("_Roadbook"), "<control>B", _n("Show/hide route description"), G_CALLBACK(roadbook_action), FALSE }, { "AutozoomAction", GTK_STOCK_ZOOM_FIT, _n("_Autozoom"), "<control>A", _n("Enable/disable automatic zoom level changing"), G_CALLBACK(autozoom_action), FALSE }, @@ -383,6 +405,7 @@ static char layout[] = <menuitem name=\"Zoom out\" action=\"ZoomOutAction\" />\ <menuitem name=\"Cursor\" action=\"CursorAction\"/>\ <menuitem name=\"Tracking\" action=\"TrackingAction\"/>\ + <menuitem name=\"Follow Vehicle\" action=\"FollowVehicleAction\"/>\ <menuitem name=\"Orientation\" action=\"OrientationAction\"/>\ <menuitem name=\"Roadbook\" action=\"RoadbookAction\"/>\ <menuitem name=\"Autozoom\" action=\"AutozoomAction\"/>\ diff --git a/navit/gui/gtk/gui_gtk_statusbar.c b/navit/gui/gtk/gui_gtk_statusbar.c index 0f0dcc0e8..6e5c9980d 100644 --- a/navit/gui/gtk/gui_gtk_statusbar.c +++ b/navit/gui/gtk/gui_gtk_statusbar.c @@ -87,7 +87,7 @@ statusbar_route_update(struct statusbar_priv *this, struct navit *navit, struct struct map_rect *mr=NULL; struct item *item=NULL; struct attr attr; - double route_len=0; + double route_len=0; /* Distance to destination. We get it in kilometers. */ time_t eta; struct tm *eta_tm=NULL; char buffer[128]; @@ -98,6 +98,11 @@ statusbar_route_update(struct statusbar_priv *this, struct navit *navit, struct const char *dir; int dir_idx; + /* Respect the Imperial attribute as we enlighten the user. */ + int imperial = FALSE; /* default to using metric measures. */ + if (navit_get_attr(navit, attr_imperial, &attr, NULL)) + imperial=attr.u.num; + if (navit) nav=navit_get_navigation(navit); if (nav) @@ -116,7 +121,13 @@ statusbar_route_update(struct statusbar_priv *this, struct navit *navit, struct } if (mr) map_rect_destroy(mr); - sprintf(buffer,_("Route %4.0fkm %02d:%02d ETA" ),route_len/1000, eta_tm ? eta_tm->tm_hour : 0 , eta_tm ? eta_tm->tm_min : 0); + + sprintf(buffer,_("Route %4.1f%s %02d:%02d ETA" ), + imperial == TRUE ? route_len * (KILOMETERS_TO_MILES/1000.00) : route_len/1000, + imperial == TRUE ? "mi" : "km", + eta_tm ? eta_tm->tm_hour : 0 , + eta_tm ? eta_tm->tm_min : 0); + if (strcmp(buffer, this->route_text)) { strcpy(this->route_text, buffer); gtk_label_set_text(GTK_LABEL(this->route), this->route_text); @@ -145,10 +156,17 @@ statusbar_route_update(struct statusbar_priv *this, struct navit *navit, struct if (vehicle_get_attr(v, attr_position_qual, &attr, NULL)) qual=attr.u.num; coord_format(lat,lng,DEGREES_MINUTES_SECONDS,buffer,sizeof(buffer)); - sprintf(this->gps_text,"GPS:%s %02d/%02d HD:%02.2f %s %4.0fm %3.0f°%-2s %3.0fkm/h", - status_fix2str(status), - sats, qual, hdop, buffer, height, - direction, dir, speed); + + sprintf(this->gps_text,"GPS:%s %02d/%02d HD:%02.2f %s %4.0f%s %3.0f°%-2s %3.1f%s", + status_fix2str(status), + sats, qual, hdop, buffer, + imperial ? height * FEET_PER_METER : height, + imperial == TRUE ? "\'" : "m", + direction, dir, + imperial == TRUE ? speed * KILOMETERS_TO_MILES : speed, + imperial == TRUE ? " mph" : "km/h" + ); + gtk_label_set_text(GTK_LABEL(this->gps), this->gps_text); } diff --git a/navit/icons/CMakeLists.txt b/navit/icons/CMakeLists.txt index 6d40f2a92..040f0ee5e 100644 --- a/navit/icons/CMakeLists.txt +++ b/navit/icons/CMakeLists.txt @@ -20,7 +20,8 @@ macro(convert_to_png IMAGE_INPUT IMAGE_OUTPUT SCALE) set (NEW_SCALE ${SCALE}) if (${SCALE} EQUAL 0) file(STRINGS ${IMAGE_INPUT} NEW_SCALE_LINE REGEX "[^-]width=\"[0-9pxt.]*\"") - string(REGEX REPLACE ".*width=\"([0-9]*).*" "\\1" NEW_SCALE ${NEW_SCALE_LINE}) + string(REGEX MATCH "width=\"([0-9]*)[pxt]*\"" NEW_SCALE_LINE ${NEW_SCALE_LINE}) + set(NEW_SCALE ${CMAKE_MATCH_1}) endif() set(COMMAND_ARGS ${NEW_SCALE} ${NEW_SCALE} ${IMAGE_INPUT} ${IMAGE_OUTPUT}) elseif(${IMAGE_CONVERTER_${FILE_TYPE}} MATCHES "inkscape") diff --git a/navit/icons/bowling.svg b/navit/icons/bowling.svg index 5399c594b..ebc02d520 100644 --- a/navit/icons/bowling.svg +++ b/navit/icons/bowling.svg @@ -9,14 +9,14 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="22" + height="200" id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="bowling.svg" sodipodi:version="0.32" version="1.0" - width="22"> + width="200"> <defs id="defs22"> <inkscape:perspective @@ -49,15 +49,15 @@ guidetolerance="10.0" id="base" inkscape:current-layer="svg2" - inkscape:cx="12.823529" - inkscape:cy="9.1530784" + inkscape:cx="88.343465" + inkscape:cy="3.213385" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="725" inkscape:window-width="1024" inkscape:window-x="0" inkscape:window-y="20" - inkscape:zoom="21.018182" + inkscape:zoom="1" objecttolerance="10.0" pagecolor="#ffffff" showgrid="false" @@ -66,16 +66,16 @@ inkscape:measure-end="0,0" /> <g id="g1327" - transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,-1.0602338)"> + transform="matrix(0.33403911,0,0,0.33403911,3.8232233,2.6463362)"> <path - d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.894,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.316 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" id="path1329" style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" inkscape:connector-curvature="0" /> </g> <g id="g2319" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2323" @@ -84,7 +84,7 @@ </g> <g id="g2325" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2329" @@ -92,30 +92,30 @@ inkscape:connector-curvature="0" /> </g> <circle - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:11.72280502;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path4536" - cx="10.847751" - cy="10.771626" - r="8.3433704" /> + cx="101.80831" + cy="100.42613" + r="91.153503" /> <ellipse - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.27539206;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:13.93399143;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path4538" - cx="13.571632" - cy="5.7164307" - rx="0.86230391" - ry="0.86230397" /> + cx="131.56744" + cy="45.196854" + rx="9.4208956" + ry="9.4208965" /> <ellipse - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.27539206;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:13.93399143;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path4538-4" - cx="16.271626" - cy="8.6306229" - rx="0.86230391" - ry="0.86230397" /> + cx="161.06557" + cy="77.03508" + rx="9.4208956" + ry="9.4208965" /> <ellipse - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.27539206;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:13.93399143;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path4538-4-4" - cx="12.655709" - cy="9.0588236" - rx="0.86230391" - ry="0.86230397" /> + cx="121.56072" + cy="81.713364" + rx="9.4208956" + ry="9.4208965" /> </svg> diff --git a/navit/icons/bridge.svg b/navit/icons/bridge.svg index 992f03e7d..0cce35558 100644 --- a/navit/icons/bridge.svg +++ b/navit/icons/bridge.svg @@ -9,14 +9,17 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="22" + height="200" id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="bridge.svg" sodipodi:version="0.32" version="1.0" - width="22"> + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\bridge.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> <defs id="defs22"> <inkscape:perspective @@ -49,7 +52,7 @@ guidetolerance="10.0" id="base" inkscape:current-layer="svg2" - inkscape:cx="11.711456" + inkscape:cx="9.0803371" inkscape:cy="11.667262" inkscape:pageopacity="0.0" inkscape:pageshadow="2" @@ -57,7 +60,7 @@ inkscape:window-width="1366" inkscape:window-x="-8" inkscape:window-y="-8" - inkscape:zoom="31.82205" + inkscape:zoom="1" objecttolerance="10.0" pagecolor="#ffffff" showgrid="false" @@ -66,16 +69,16 @@ inkscape:measure-end="0,0" /> <g id="g1327" - transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,-1.0602338)"> + transform="matrix(0.34319043,0,0,0.34319043,0.8232233,2.3111151)"> <path - d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.894,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.316 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" id="path1329" style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" inkscape:connector-curvature="0" /> </g> <g id="g2319" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2323" @@ -84,7 +87,7 @@ </g> <g id="g2325" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2329" @@ -92,66 +95,67 @@ inkscape:connector-curvature="0" /> </g> <ellipse - style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:8.83749676;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5130" - cx="11.490052" - cy="16.147924" - rx="8.3499136" - ry="3.948962" /> + cx="96.940178" + cy="147.61621" + rx="68.77198" + ry="32.524643" /> <path - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 0.47725717,11.030944 20.93572883,0.0059 v 6.476088 c 0,0 -1.702822,-0.0306 -2.144525,-0.03142 -0.01596,-4.621507 -5.724722,-5.218489 -8.030421,-5.205035 -2.1116789,0.01232 -7.9665318,0.09086 -8.0304209,5.236456 -0.4724108,-0.0081 -2.73036193,0 -2.73036193,0 z" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:8.85758495px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 6.5467015,96.228144 185.4400085,0.05311 v 57.362526 c 0,0 -15.08288,-0.27104 -18.99532,-0.27813 -0.14136,-40.93542 -50.70721,-46.22322 -71.13014,-46.104 -18.704369,0.10895 -70.56423,0.80515 -71.130133,46.38231 -4.18442,-0.0708 -24.1844155,0 -24.1844155,0 z" id="path5142" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccsccc" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.50418949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5144" - width="0.251398" - height="2.671104" - x="1.9797593" - y="7.7534037" /> + width="2.2267792" + height="23.659534" + x="19.855244" + y="67.197083" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.50418949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5144-7" - width="0.251398" - height="2.671104" - x="5.4804759" - y="7.7534037" /> + width="2.2267792" + height="23.659534" + x="50.86314" + y="67.197083" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.50418949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5144-1" - width="0.251398" - height="2.671104" - x="8.9811935" - y="7.7534037" /> + width="2.2267792" + height="23.659534" + x="81.871048" + y="67.197083" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.50418949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5144-8" - width="0.251398" - height="2.671104" - x="12.481911" - y="7.7534037" /> + width="2.2267792" + height="23.659534" + x="112.87896" + y="67.197083" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.50418949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5144-11" - width="0.251398" - height="2.671104" - x="15.982629" - y="7.7534037" /> + width="2.2267792" + height="23.659534" + x="143.88687" + y="67.197083" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.07299995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.50418949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5144-74" - width="0.251398" - height="2.671104" - x="19.483345" - y="7.7534037" - inkscape:transform-center-x="0.062849458" /> + width="2.2267792" + height="23.659534" + x="174.89474" + y="67.197083" + inkscape:transform-center-x="0.55670278" + inkscape:transform-center-y="6.2928732e-006" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:1.05754387;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:9.36728573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5185" - width="20.91246" - height="0.063668601" - x="0.55105257" - y="7.1559234" /> + width="185.23392" + height="0.56395012" + x="7.2003508" + y="61.904907" /> </svg> diff --git a/navit/icons/communication.svg b/navit/icons/communication.svg index bad45d89a..35596b3c7 100644 --- a/navit/icons/communication.svg +++ b/navit/icons/communication.svg @@ -9,14 +9,17 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="22" + height="200" id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="communication.svg" sodipodi:version="0.32" version="1.0" - width="22"> + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\communication.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> <defs id="defs22"> <inkscape:perspective @@ -49,7 +52,7 @@ guidetolerance="10.0" id="base" inkscape:current-layer="svg2" - inkscape:cx="14.450743" + inkscape:cx="9.6858801" inkscape:cy="12.141264" inkscape:pageopacity="0.0" inkscape:pageshadow="2" @@ -57,7 +60,7 @@ inkscape:window-width="1366" inkscape:window-x="-8" inkscape:window-y="-8" - inkscape:zoom="17.57188" + inkscape:zoom="1" objecttolerance="10.0" pagecolor="#ffffff" showgrid="false" @@ -66,16 +69,16 @@ inkscape:measure-end="0,0" /> <g id="g1327" - transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,-1.0602338)"> + transform="matrix(0.34431731,0,0,0.34431731,-0.1767767,0.6565548)"> <path - d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.894,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.316 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" id="path1329" style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" inkscape:connector-curvature="0" /> </g> <g id="g2319" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2323" @@ -84,7 +87,7 @@ </g> <g id="g2325" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2329" @@ -92,39 +95,39 @@ inkscape:connector-curvature="0" /> </g> <circle - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:2.10489988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:19.34242439;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path898" - cx="7.4564438" - cy="6.1999226" - r="2.5702684" /> + cx="70.480728" + cy="55.175976" + r="23.618807" /> <path - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.2851342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 1.7888865,21.595802 C 1.7472225,18.024565 2.7605344,9.5386167 5.2788818,9.3760639 c 1.9139241,-0.076555 2.6380187,-0.132203 4.1544689,0 2.1751583,0.1782276 3.9757453,7.8313611 3.9921953,12.2197371 h -1.607697 c -0.229376,-3.388486 -0.611612,-5.480113 -1.301468,-7.693975 -0.153114,1.071798 -0.229671,7.693976 -0.229671,7.693976 H 4.9277222 L 4.6214943,13.901826 c -1.1217852,2.785041 -1.3214048,5.746992 -1.3014684,7.770533 z" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:11.80940342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 18.400196,196.65238 C 18.017335,163.8354 27.328899,85.85608 50.470592,84.362277 c 17.587504,-0.702977 24.241381,-1.214817 38.176402,0 19.988056,1.637799 36.534076,71.964233 36.685236,112.290103 h -14.77352 c -2.10778,-31.13765 -5.62024,-50.35805 -11.959493,-70.70173 -1.407001,9.84894 -2.110502,70.70173 -2.110502,70.70173 H 47.243703 l -2.814001,-70.70173 c -10.308351,25.5924 -12.142703,52.81047 -11.959503,71.40525 z" id="path900" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccc" /> <path - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.2851342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 10.036017,7.7333484 c 0.706308,0.4985691 2.617492,-1.4126154 3.406895,-1.3710679 0.789403,0.041547 4.071655,0.9971401 5.027247,-0.1661899 C 19.425753,5.0327605 19.010277,1.2103904 17.680758,0.91955782 16.351238,0.62872539 10.243755,-0.32686724 9.4959004,1.7920554 8.7480459,3.910978 11.240895,5.3651405 11.656369,5.5313305 11.781013,6.320733 10.036017,7.7333484 10.036017,7.7333484 Z" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:11.80940342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 94.185039,69.267024 c 6.490431,4.581479 24.052751,-12.9809 31.306761,-12.599087 7.25402,0.382272 37.41541,9.162956 46.19657,-1.527159 8.78119,-10.690116 4.96328,-45.8147836 -7.254,-48.4872889 -12.21726,-2.6725063 -68.340379,-11.453742 -75.212592,8.0176089 -6.872212,19.47126 16.035162,32.833882 19.853062,34.361041 1.14538,7.253985 -14.889801,20.234885 -14.889801,20.234885 z" id="path902" inkscape:connector-curvature="0" sodipodi:nodetypes="csssscc" /> <circle - style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:0.50433594;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:4.63446236;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path904" - cx="12.427114" - cy="3.3160748" - r="0.24783203" /> + cx="116.1574" + cy="28.675596" + r="2.2773874" /> <circle - style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:0.50433594;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:4.63446236;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path904-5" - cx="14.454914" - cy="3.3160748" - r="0.24783203" /> + cx="134.79134" + cy="28.675596" + r="2.2773874" /> <circle - style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:0.50433594;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:4.63446236;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path904-5-5" - cx="16.446732" - cy="3.3160748" - r="0.24783203" /> + cx="153.09462" + cy="28.675596" + r="2.2773874" /> </svg> diff --git a/navit/icons/concert.svg b/navit/icons/concert.svg index d226e4c2d..c908b056f 100644 --- a/navit/icons/concert.svg +++ b/navit/icons/concert.svg @@ -9,14 +9,17 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="22" + height="200" id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="concert.svg" sodipodi:version="0.32" version="1.0" - width="22"> + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\concert.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> <defs id="defs22"> <inkscape:perspective @@ -49,7 +52,7 @@ guidetolerance="10.0" id="base" inkscape:current-layer="svg2" - inkscape:cx="20.75586" + inkscape:cx="14.153144" inkscape:cy="4.6274553" inkscape:pageopacity="0.0" inkscape:pageshadow="2" @@ -57,7 +60,7 @@ inkscape:window-width="1366" inkscape:window-x="-8" inkscape:window-y="-8" - inkscape:zoom="12.680782" + inkscape:zoom="1" objecttolerance="10.0" pagecolor="#ffffff" showgrid="false" @@ -67,16 +70,16 @@ inkscape:lockguides="true" /> <g id="g1327" - transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,-1.0602338)"> + transform="matrix(0.34431731,0,0,0.34431731,-0.1767767,0.6565548)"> <path - d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.894,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.316 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" id="path1329" style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" inkscape:connector-curvature="0" /> </g> <g id="g2319" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2323" @@ -85,62 +88,42 @@ </g> <g id="g2325" - transform="matrix(0.04083073,0,0,0.04083073,35.725326,0.442546)"> + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> <path d="" id="path2329" style="fill:#0089cd;stroke:none" inkscape:connector-curvature="0" /> </g> - <path - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.16406763px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 11.89298,0.29824419 C 6.7920335,0.36448969 3.0245422,3.9744881 3.0160085,9.208339 c -0.00777,4.764226 8.8769715,12.089905 8.8769715,12.089905 0,0 8.399996,-7.12183 8.41325,-12.089905 C 20.3186,4.5706582 16.993926,0.29824419 11.89298,0.29824419 Z" - id="path1492" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cscsc" /> - <path - style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 11.875679,1.0590326 C 7.1553836,1.1203346 3.669036,4.4609421 3.6611391,9.3042242 3.6539491,13.712926 11.875679,20.491937 11.875679,20.491937 c 0,0 7.773159,-6.590374 7.785423,-11.1877128 0.01145,-4.2916004 -3.065128,-8.2451916 -7.785423,-8.2451916 z" - id="path1492-2" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cscsc" - inkscape:transform-center-x="-1.3165584" - inkscape:transform-center-y="3.1070785" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.25710332;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path1494" - cx="11.661134" - cy="8.7982445" - r="7" /> <circle - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:0.50632137;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:9.95306969;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path1511" - cx="8.9422398" - cy="12.313624" - r="1.313432" /> + cx="54.465088" + cy="171.69257" + r="25.818937" /> <circle - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:0.50632137;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:9.95306969;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path1511-2" - cx="13.315376" - cy="10.128977" - r="1.313432" /> + cx="140.43051" + cy="128.74763" + r="25.818937" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:0.47141925;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:9.26697731;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect1530" - width="1.1041681" - height="5.7941589" - x="9.1515036" - y="6.3877821" /> + width="21.705309" + height="113.89934" + x="58.578712" + y="55.204674" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:0.47141925;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:9.26697731;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect1530-1" - width="1.1041681" - height="5.7941589" - x="13.52464" - y="4.2824731" /> + width="21.705309" + height="113.89934" + x="144.54413" + y="13.819176" /> <path - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.75124252px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 9.1557652,6.3877811 14.628808,3.7072399 V 5.1514704 L 9.1557652,7.8504332 Z" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:34.42524719px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 58.662477,55.204534 166.24943,2.511515 V 30.901629 L 58.662477,83.956741 Z" id="path1547" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" /> diff --git a/navit/icons/diving.svg b/navit/icons/diving.svg index 6d152305d..66f16c2dc 100644 --- a/navit/icons/diving.svg +++ b/navit/icons/diving.svg @@ -41,7 +41,7 @@ <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain" /> <dc:language>en</dc:language> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -52,7 +52,7 @@ guidetolerance="10.0" id="base" inkscape:current-layer="svg2" - inkscape:cx="8.2895468" + inkscape:cx="-75.438052" inkscape:cy="15.403137" inkscape:pageopacity="0.0" inkscape:pageshadow="2" @@ -96,161 +96,141 @@ inkscape:connector-curvature="0" /> </g> <path - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:10.5320406px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 105.71659,7.77381 C 59.565172,8.3727616 25.478346,41.035119 25.401136,88.388999 c -0.0703,43.104841 80.315454,109.384811 80.315454,109.384811 0,0 75.99996,-64.43561 76.11988,-109.384811 C 181.94839,46.429038 151.868,7.77381 105.71659,7.77381 Z" - id="path1492" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cscsc" /> - <path - style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:2.71428585;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 105.56006,14.657148 C 62.852625,15.211767 31.309481,45.436333 31.238033,89.256485 31.172981,129.14482 105.56006,190.47871 105.56006,190.47871 c 0,0 70.32858,-59.62725 70.43954,-101.222225 0.10359,-38.828761 -27.73211,-74.599337 -70.43954,-74.599337 z" - id="path1492-2" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cscsc" - inkscape:transform-center-x="-11.911719" - inkscape:transform-center-y="28.111661" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:11.37379265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path1494" - cx="103.61893" - cy="84.678642" - r="63.333332" /> - <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830" sodipodi:type="arc" - sodipodi:cx="51.743343" - sodipodi:cy="106.26794" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="18.007557" + sodipodi:cy="143.67285" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="0" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 59.064117,106.26794 a 7.3207736,7.4351912 0 0 1 -3.660387,6.43906 7.3207736,7.4351912 0 0 1 -7.320774,0 7.3207736,7.4351912 0 0 1 -3.660386,-6.43906" /> + d="m 29.792122,143.67285 a 11.784565,11.968748 0 0 1 -5.892283,10.36524 11.784565,11.968748 0 0 1 -11.784565,0 11.784565,11.968748 0 0 1 -5.8922821,-10.36524" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-0" sodipodi:type="arc" - sodipodi:cx="66.556892" - sodipodi:cy="106.26794" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="41.853569" + sodipodi:cy="143.67285" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="0" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 73.877666,106.26794 a 7.3207736,7.4351912 0 0 1 -3.660387,6.43906 7.3207736,7.4351912 0 0 1 -7.320774,0 7.3207736,7.4351912 0 0 1 -3.660386,-6.43906" /> + d="m 53.638134,143.67285 a 11.784565,11.968748 0 0 1 -5.892283,10.36524 11.784565,11.968748 0 0 1 -11.784565,0 11.784565,11.968748 0 0 1 -5.892282,-10.36524" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-0-3" sodipodi:type="arc" - sodipodi:cx="81.295563" - sodipodi:cy="106.26794" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="65.579041" + sodipodi:cy="143.67285" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="6.2639059" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 88.614976,106.1246 a 7.3207736,7.4351912 0 0 1 -3.577844,6.53409 7.3207736,7.4351912 0 0 1 -7.361137,0.0721 7.3207736,7.4351912 0 0 1 -3.701206,-6.46282" /> + d="m 77.361415,143.44212 a 11.784565,11.968748 0 0 1 -5.759409,10.5182 11.784565,11.968748 0 0 1 -11.84954,0.11602 11.784565,11.968748 0 0 1 -5.95799,-10.40349" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-8" sodipodi:type="arc" - sodipodi:cx="96.486855" - sodipodi:cy="106.26794" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="90.033112" + sodipodi:cy="143.67285" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="0" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 103.80763,106.26794 a 7.3207736,7.4351912 0 0 1 -3.66039,6.43906 7.3207736,7.4351912 0 0 1 -7.320772,0 7.3207736,7.4351912 0 0 1 -3.660387,-6.43906" /> + d="m 101.81768,143.67285 a 11.784565,11.968748 0 0 1 -5.892286,10.36524 11.784565,11.968748 0 0 1 -11.784565,0 11.784565,11.968748 0 0 1 -5.892282,-10.36524" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-0-7" sodipodi:type="arc" - sodipodi:cx="111.30039" - sodipodi:cy="106.26794" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="113.8791" + sodipodi:cy="143.67285" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="0" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 118.62117,106.26794 a 7.3207736,7.4351912 0 0 1 -3.66039,6.43906 7.3207736,7.4351912 0 0 1 -7.32077,0 7.3207736,7.4351912 0 0 1 -3.66039,-6.43906" /> + d="m 125.66366,143.67285 a 11.784565,11.968748 0 0 1 -5.89228,10.36524 11.784565,11.968748 0 0 1 -11.78457,0 11.784565,11.968748 0 0 1 -5.89228,-10.36524" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-0-3-0" sodipodi:type="arc" - sodipodi:cx="126.03909" - sodipodi:cy="106.26794" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="137.60463" + sodipodi:cy="143.67285" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="6.2639059" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 133.35851,106.1246 a 7.3207736,7.4351912 0 0 1 -3.57785,6.53409 7.3207736,7.4351912 0 0 1 -7.36114,0.0721 7.3207736,7.4351912 0 0 1 -3.7012,-6.46282" /> + d="m 149.387,143.44212 a 11.784565,11.968748 0 0 1 -5.7594,10.5182 11.784565,11.968748 0 0 1 -11.84955,0.11602 11.784565,11.968748 0 0 1 -5.95799,-10.40349" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-9" sodipodi:type="arc" - sodipodi:cx="140.80014" - sodipodi:cy="106.69812" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="161.36612" + sodipodi:cy="144.36534" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="0" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 148.12091,106.69812 a 7.3207736,7.4351912 0 0 1 -3.66038,6.43906 7.3207736,7.4351912 0 0 1 -7.32078,0 7.3207736,7.4351912 0 0 1 -3.66038,-6.43906" /> + d="m 173.15068,144.36534 a 11.784565,11.968748 0 0 1 -5.89228,10.36524 11.784565,11.968748 0 0 1 -11.78456,0 11.784565,11.968748 0 0 1 -5.89229,-10.36524" /> <path - style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:2.62517977;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.22586489;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path830-0-31" sodipodi:type="arc" - sodipodi:cx="155.61369" - sodipodi:cy="106.69812" - sodipodi:rx="7.3207736" - sodipodi:ry="7.4351912" + sodipodi:cx="185.21214" + sodipodi:cy="144.36534" + sodipodi:rx="11.784565" + sodipodi:ry="11.968748" sodipodi:start="0" sodipodi:end="3.1415927" sodipodi:open="true" - d="m 162.93447,106.69812 a 7.3207736,7.4351912 0 0 1 -3.66039,6.43906 7.3207736,7.4351912 0 0 1 -7.32077,0 7.3207736,7.4351912 0 0 1 -3.66039,-6.43906" /> + d="m 196.99671,144.36534 a 11.784565,11.968748 0 0 1 -5.89228,10.36524 11.784565,11.968748 0 0 1 -11.78457,0 11.784565,11.968748 0 0 1 -5.89228,-10.36524" /> <circle - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:2.54270792;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:4.09310675;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path1643" - cx="129.37593" - cy="70.390434" - r="6.7857141" /> + cx="142.97609" + cy="85.919296" + r="10.923257" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.05734622;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.70205581;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect1645" - width="32.729244" - height="6.0114937" - x="120.18913" - y="-64.555145" - ry="2.748287" - rx="2.6472816" + width="52.685677" + height="9.6769609" + x="135.44214" + y="-63.360096" + ry="4.424036" + rx="4.2614436" transform="rotate(57.709826)" - inkscape:transform-center-y="0.64987615" - inkscape:transform-center-x="0.15432644" /> + inkscape:transform-center-y="1.0461464" + inkscape:transform-center-x="0.24843131" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.05734622;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.70205581;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect1645-8" - width="32.729244" - height="6.0114937" - x="77.826042" - y="-36.33596" - ry="2.748287" - rx="2.6472816" + width="52.685677" + height="9.6769609" + x="64.138474" + y="-22.794872" + ry="4.424036" + rx="4.2614436" transform="rotate(53.038857)" - inkscape:transform-center-y="0.66027451" - inkscape:transform-center-x="0.10088982" /> + inkscape:transform-center-y="1.0628748" + inkscape:transform-center-x="0.16240914" /> <rect - style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.19884491;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:1.92983234;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect1645-8-8" - width="33.038124" - height="7.6558709" - x="97.159592" - y="40.117359" - ry="3.5000503" - rx="2.6722651" + width="53.182892" + height="12.323986" + x="87.769211" + y="52.05463" + ry="5.634182" + rx="4.3016605" transform="matrix(0.9758835,0.21829199,-0.135073,0.99083565,0,0)" - inkscape:transform-center-y="0.70558839" - inkscape:transform-center-x="-0.37780337" /> + inkscape:transform-center-y="1.135816" + inkscape:transform-center-x="-0.60816508" /> </svg> diff --git a/navit/icons/emergency.svg b/navit/icons/emergency.svg index c88c6aaa0..acffcc96b 100644 --- a/navit/icons/emergency.svg +++ b/navit/icons/emergency.svg @@ -9,16 +9,29 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="22" + height="200" id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" - inkscape:version="0.91 r13725" + inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="emergency.svg" sodipodi:version="0.32" version="1.0" - width="22"> + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\emergency.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <defs + id="defs22"> + <inkscape:perspective + id="perspective24" + inkscape:persp3d-origin="290 : 193.33333 : 1" + inkscape:vp_x="0 : 290 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="580 : 290 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> <metadata - id="metadata2975"> + id="metadata10"> <rdf:RDF> <cc:Work rdf:about=""> @@ -26,20 +39,10 @@ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <cc:license - rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /> + rdf:resource="http://web.resource.org/cc/PublicDomain" /> <dc:language>en</dc:language> <dc:title /> - <dc:description>jfitie@gmail.com</dc:description> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> - </cc:License> </rdf:RDF> </metadata> <sodipodi:namedview @@ -49,456 +52,68 @@ guidetolerance="10.0" id="base" inkscape:current-layer="svg2" - inkscape:cx="78.817949" - inkscape:cy="44.555593" - inkscape:pageopacity="0" + inkscape:cx="63.25448" + inkscape:cy="100.6273" + inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:window-height="874" - inkscape:window-width="1440" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:zoom="3.6867085" + inkscape:window-height="705" + inkscape:window-width="1366" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:zoom="2.1796875" objecttolerance="10.0" - pagecolor="#ff1dff" + pagecolor="#ffffff" showgrid="false" - inkscape:snap-global="true" - inkscape:snap-nodes="false" - inkscape:snap-grids="false" - inkscape:snap-to-guides="false" - inkscape:window-maximized="1" /> - <defs - id="defs4"> - <inkscape:perspective - id="perspective2441" - inkscape:persp3d-origin="290 : 193.33333 : 1" - inkscape:vp_x="0 : 290 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="580 : 290 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - id="perspective3452" - inkscape:persp3d-origin="30 : 20 : 1" - inkscape:vp_x="0 : 30 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="60 : 30 : 1" - sodipodi:type="inkscape:persp3d" /> - <symbol - id="symbol-university" - viewBox="244.5 110 489 219.9"> - <path - d="m 79,43 57,119 c 0,0 21,-96 104,-96 83,0 124,106 124,106 L 407,39 489,22 0,17 79,43 Z" - id="path4460" - inkscape:connector-curvature="0" /> - <path - d="M 94,176 73,215" - id="path4462" - inkscape:connector-curvature="0" - style="fill:none;stroke:#000000;stroke-width:20" /> - <path - d="M 300,19 C 300,29.5 277.4,38 249.5,38 221.6,38 199,29.5 199,19 199,8.5 221.6,0 249.5,0 277.4,0 300,8.5 300,19 Z" - id="path4464" - inkscape:connector-curvature="0" /> - <path - d="M 112,216 96,178 64,88 C 64,88 55,80 60,53 65,26 76,29 76,29" - id="path4466" - ill="none" - inkscape:connector-curvature="0" - style="stroke:#000000;stroke-width:20" /> - </symbol> - <inkscape:perspective - id="perspective4471" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - id="perspective4668" - inkscape:persp3d-origin="6 : 4 : 1" - inkscape:vp_x="0 : 6 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="12 : 6 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - id="perspective4904" - inkscape:persp3d-origin="16 : 10.666667 : 1" - inkscape:vp_x="0 : 16 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="32 : 16 : 1" - sodipodi:type="inkscape:persp3d" /> - <marker - id="Arrow2Lend" - inkscape:stockid="Arrow2Lend" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - id="path4137" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="Arrow1Mend" - inkscape:stockid="Arrow1Mend" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" - id="path4125" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="TriangleOutL" - inkscape:stockid="TriangleOutL" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - id="path4214" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="scale(0.8,0.8)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="Arrow1Lend" - inkscape:stockid="Arrow1Lend" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" - id="path4119" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="Tail" - inkscape:stockid="Tail" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <g - id="g4152" - transform="scale(-1.2,-1.2)"> - <path - d="M -3.8048674,-3.9585227 0.54352094,0" - id="path4154" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" - inkscape:connector-curvature="0" /> - <path - d="M -1.2866832,-3.9585227 3.0617053,0" - id="path4156" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" - inkscape:connector-curvature="0" /> - <path - d="M 1.3053582,-3.9585227 5.6537466,0" - id="path4158" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" - inkscape:connector-curvature="0" /> - <path - d="M -3.8048674,4.1775838 0.54352094,0.21974226" - id="path4160" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" - inkscape:connector-curvature="0" /> - <path - d="M -1.2866832,4.1775838 3.0617053,0.21974226" - id="path4162" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" - inkscape:connector-curvature="0" /> - <path - d="M 1.3053582,4.1775838 5.6537466,0.21974226" - id="path4164" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;marker-start:none;marker-end:none" - inkscape:connector-curvature="0" /> - </g> - </marker> - <marker - id="Arrow1Sstart" - inkscape:stockid="Arrow1Sstart" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" - id="path4128" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="matrix(0.2,0,0,0.2,1.2,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="Arrow1Send" - inkscape:stockid="Arrow1Send" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" - id="path4131" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="matrix(-0.2,0,0,-0.2,-1.2,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="SemiCircleOut" - inkscape:stockid="SemiCircleOut" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="m -2.5,-0.80913858 c 0,2.75999998 -2.24,4.99999998 -5,4.99999998 l 0,-10 c 2.76,0 5,2.24 5,5.00000002 z" - id="path4235" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" - transform="matrix(0.6,0,0,0.6,4.2752958,0.4580676)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="Arrow2Send" - inkscape:stockid="Arrow2Send" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - id="path4149" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" - transform="matrix(-0.3,0,0,-0.3,0.69,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="TriangleOutS" - inkscape:stockid="TriangleOutS" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - id="path4220" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="scale(0.2,0.2)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="CurveIn" - inkscape:stockid="CurveIn" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="m 4.625493,-5.0456926 c -2.76,0 -5.00000002,2.24 -5.00000002,5.00000002 0,2.75999998 2.24000002,4.99999998 5.00000002,4.99999998" - id="path4238" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" - transform="scale(0.6,0.6)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="InfiniteLineStart" - inkscape:stockid="InfiniteLineStart" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <g - id="g4298" - transform="translate(-13,0)"> - <circle - cx="3" - cy="0" - id="circle4300" - r="0.80000001" /> - <circle - cx="6.5" - cy="0" - id="circle4302" - r="0.80000001" /> - <circle - cx="10" - cy="0" - id="circle4304" - r="0.80000001" /> - </g> - </marker> - <marker - id="StopS" - inkscape:stockid="StopS" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 0,5.65 0,-5.65" - id="path4229" - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="scale(0.2,0.2)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="Arrow2Sstart" - inkscape:stockid="Arrow2Sstart" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - id="path4146" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" - transform="matrix(0.3,0,0,0.3,-0.69,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="DiamondS" - inkscape:stockid="DiamondS" - orient="auto" - refX="0" - refY="0" - style="overflow:visible"> - <path - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 Z" - id="path4202" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - transform="scale(0.2,0.2)" - inkscape:connector-curvature="0" /> - </marker> - <marker - id="RazorWire" - inkscape:stockid="RazorWire" - orient="auto" - refX="0" - refY="0"> - style="overflow:visible"> - <path - d="m 0.02272727,-0.74009011 0,1.4375 -7.78124997,2.31250001 18.4374997,0 -7.1874997,-2.31250001 0,-1.4375 7.2499997,-2.15624999 -18.4687497,0 7.74999997,2.15624999 z" - id="path4286" - style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.1pt" - transform="scale(0.8,0.8)" - inkscape:connector-curvature="0" /> -</marker> - <inkscape:perspective - id="perspective5233" - inkscape:persp3d-origin="16 : 10.666667 : 1" - inkscape:vp_x="0 : 16 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="32 : 16 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - id="perspective5412" - inkscape:persp3d-origin="250 : 166.66667 : 1" - inkscape:vp_x="0 : 250 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="500 : 250 : 1" - sodipodi:type="inkscape:persp3d" /> - </defs> + inkscape:window-maximized="1" + inkscape:measure-start="0,0" + inkscape:measure-end="0,0" + inkscape:lockguides="true" /> + <g + id="g1327" + transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,176.93977)"> + <path + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + id="path1329" + style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" + inkscape:connector-curvature="0" /> + </g> <g - id="layer3" - inkscape:label="Layout" - style="display:none;stroke:#757575;stroke-opacity:1" - transform="matrix(48.14969,0,0,48.14969,-536.27327,44.693248)"> - <rect - height="10" - id="rect4134" - style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - width="10" - x="1" - y="1" /> - <rect - height="8" - id="rect4136" - style="display:inline;fill:none;stroke:#757575;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - width="8" - x="2" - y="2" /> + id="g2319" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2323" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> </g> <g - id="g3448" - transform="matrix(0.21007753,0,0,0.21007654,0.15074743,0.8225434)"> - <g - transform="translate(-119.6189,31.193137)" - id="g3440"> - <g - id="g1327-3" - transform="matrix(0.18023212,0,0,0.18023212,118.90132,-35.074477)" - style="fill:#ffffff;stroke:#ffffff"> - <path - d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z" - id="path1329-6" - style="fill:#ffffff;fill-opacity:0;stroke:#ffffff;stroke-width:3.40799999;stroke-opacity:0" - inkscape:connector-curvature="0" /> - </g> - <path - style="fill:#ffffff;stroke:#ffffff;stroke-width:3.47710228;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 168.77539,-26.714844 c -24.90882,0.65124 -45.67473,25.94229543 -41.17383,50.535156 3.15319,24.278992 29.43702,42.421637 53.26172,36.228516 C 205.34548,55.121653 221.58756,26.483972 212.6543,3.0039062 206.68201,-15.179354 187.88727,-27.91809 168.77539,-26.714844 Z" - id="path2207-7" - inkscape:connector-curvature="0" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.74868536;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 135.40625,8.0332031 c 0,6.7701819 0,13.5403649 0,20.3105469 23.78385,0 47.56771,0 71.35156,0 -1.21558,-6.573853 1.68803,-13.539405 -0.66992,-19.890625 -3.17978,-5.0668552 -10.53922,-1.2344481 -15.33008,-2.4199219 -18.45052,0 -36.90104,0 -55.35156,0 l 0,1 0,1 z" - id="rect3180-5" - inkscape:connector-curvature="0" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.74868536;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 159.92773,-16.488281 c 0,23.1171873 0,46.234375 0,69.351562 6.6053,-1.239496 13.63591,1.748711 19.99805,-0.724609 5.07576,-3.54689 1.01531,-11.203263 2.31055,-16.275391 0,-18.117187 0,-36.23437475 0,-54.351562 -7.4362,0 -14.8724,0 -22.3086,0 l 0,1 0,1 z" - id="rect3182-3" - inkscape:connector-curvature="0" /> - <path - style="fill:#ffffff;stroke:#ffffff;stroke-width:3.47710252;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 168.58789,-33.037109 c -26.875,0.732101 -50.02432,26.3501216 -47.70508,53.222656 1.03022,26.672013 26.49775,49.507971 53.19727,47.201172 27.06213,-1.027335 50.08523,-27.229656 47.11701,-54.273425 -1.67559,-26.180886 -26.35425,-48.021089 -52.6092,-46.150403 z" - id="path2438-5" - inkscape:connector-curvature="0" /> - </g> - <g - transform="matrix(0.18023212,0,0,0.18023212,-0.6781117,-3.9155248)" - id="g1327"> - <path - inkscape:connector-curvature="0" - style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" - id="path1329" - d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 l 0,450.123 c 0,40.844 20.895,62.229 62.192,62.229 l 452.024,0 c 41.307,0 62.229,-20.315 62.229,-62.229 l 0,-450.123 c 0,-42.601 -20.922,-65.036 -63.521,-65.036 -0.004,0 -448.495,-0.143 -448.353,0 z" /> - </g> - <circle - r="39.915974" - cy="48.346523" - cx="51.502563" - style="fill:none;stroke:#da0092;stroke-width:3.47710228;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path2207" /> - <rect - y="-55.501747" - x="-83.177666" - width="63.350189" - transform="scale(-1,-1)" - style="fill:#da0092;fill-opacity:1;stroke:#da0092;stroke-width:1.74868536;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3180" - height="14.310408" /> - <rect - y="44.34737" - x="-80.021637" - width="63.350189" - transform="matrix(0,-1,1,0,0,0)" - style="fill:#da0092;fill-opacity:1;stroke:#da0092;stroke-width:1.74868536;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3182" - height="14.310408" /> - <circle - r="46.242443" - cy="48.346523" - cx="51.502567" - style="fill:none;stroke:#da0092;stroke-width:3.47710252;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path2438" /> + id="g2325" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2329" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> </g> + <circle + style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:17.50965309;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path1494" + cx="101.07435" + cy="100.33749" + r="97.5" /> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:14.25435543;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect1712" + width="125.35715" + height="41.785713" + x="38.395782" + y="79.444618" /> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:14.25435543;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect1712-5" + width="125.35715" + height="41.785713" + x="37.658913" + y="-121.9672" + transform="rotate(90)" /> </svg> diff --git a/navit/icons/fish.svg b/navit/icons/fish.svg new file mode 100644 index 000000000..d0abd3a4c --- /dev/null +++ b/navit/icons/fish.svg @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="200" + id="svg2" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + sodipodi:docname="fish.svg" + sodipodi:version="0.32" + version="1.0" + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\fish.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <defs + id="defs22"> + <inkscape:perspective + id="perspective24" + inkscape:persp3d-origin="290 : 193.33333 : 1" + inkscape:vp_x="0 : 290 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="580 : 290 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <metadata + id="metadata10"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <cc:license + rdf:resource="http://web.resource.org/cc/PublicDomain" /> + <dc:language>en</dc:language> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10.0" + guidetolerance="10.0" + id="base" + inkscape:current-layer="svg2" + inkscape:cx="173.26216" + inkscape:cy="73.026273" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:window-height="705" + inkscape:window-width="1366" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:zoom="2.1796875" + objecttolerance="10.0" + pagecolor="#ffffff" + showgrid="false" + inkscape:window-maximized="1" + inkscape:measure-start="0,0" + inkscape:measure-end="0,0" + inkscape:lockguides="true" /> + <g + id="g1327" + transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,176.93977)"> + <path + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + id="path1329" + style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g2319" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2323" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> + </g> + <g + id="g2325" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2329" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> + </g> + <path + style="fill:#0089cd;fill-opacity:1;stroke:#0089cd;stroke-width:6.33289146;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.2249053,49.048542 C 30.777046,82.994317 71.553818,142.06288 121.68921,142.06288 c 50.13538,0 73.88372,-42.219274 73.88372,-42.219274 0,0 -26.26574,-51.881787 -80.48049,-50.795064 C 65.142738,50.049139 30.022314,103.05523 6.9055533,142.06288 11.156769,112.34642 9.3916793,75.312309 8.2249053,49.048542 Z" + id="path1729" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cscscc" /> + <ellipse + style="fill:#0089cd;fill-opacity:1;stroke:#ffffff;stroke-width:5.6151638;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path1731" + cx="172.80457" + cy="87.727531" + rx="4.5818696" + ry="4.5818691" + inkscape:transform-center-x="-0.30408871" + inkscape:transform-center-y="1.001269e-006" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.11096382;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 193.21381,112.55034 c 0,0 -14.29218,0.91194 -24.93527,-3.64901" + id="path1733" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.11096382;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 145.16779,58.499749 c -20.98211,23.718999 -21.89437,55.648381 0.3042,76.630301" + id="path1735" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> +</svg> diff --git a/navit/icons/ghost_town.svg b/navit/icons/ghost_town.svg new file mode 100644 index 000000000..864193db3 --- /dev/null +++ b/navit/icons/ghost_town.svg @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="200" + id="svg2" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + sodipodi:docname="ghost_town.svg" + sodipodi:version="0.32" + version="1.0" + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\ghost_town.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <defs + id="defs22"> + <inkscape:perspective + id="perspective24" + inkscape:persp3d-origin="290 : 193.33333 : 1" + inkscape:vp_x="0 : 290 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="580 : 290 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <metadata + id="metadata10"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <cc:license + rdf:resource="http://web.resource.org/cc/PublicDomain" /> + <dc:language>en</dc:language> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10.0" + guidetolerance="10.0" + id="base" + inkscape:current-layer="svg2" + inkscape:cx="108.52408" + inkscape:cy="89.612292" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:window-height="705" + inkscape:window-width="1366" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:zoom="2.1796875" + objecttolerance="10.0" + pagecolor="#ffffff" + showgrid="false" + inkscape:window-maximized="1" + inkscape:measure-start="0,0" + inkscape:measure-end="0,0" + inkscape:lockguides="true" /> + <g + id="g2319" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2323" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> + </g> + <g + id="g2325" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2329" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> + </g> + <circle + style="fill:#323232;fill-opacity:1;stroke:none;stroke-width:17.50965309;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path1494" + cx="98.991913" + cy="99.878708" + r="97.5" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.92267895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 123.36122,18.558431 -48.152432,33.289147 -29.688226,36.87088 1.015127,74.757012 c 0,0 1.700314,11.31404 7.680633,15.36125 6.905494,-2.8917 3.74148,-24.1956 6.665489,-26.62376 4.311778,-1.27167 7.165717,14.85941 11.262377,16.39561 4.09666,1.53632 -0.3322,-18.21148 5.11404,-21.50962 3.67801,-2.22732 -0.49641,28.67642 11.28153,34.82143 11.777912,6.14501 10.51393,-10.84451 10.51393,-10.84451 l -1.81204,-15.22769 c -1.37767,-6.38709 3.099792,-10.78977 6.142232,-7.73411 6.90551,2.49474 -2.05004,13.82842 5.63118,21.50961 7.68125,7.68133 6.6497,-9.40304 6.78105,-14.95317 0.59392,-4.62497 -0.46451,-13.00551 7.04794,-14.23708 7.25195,-1.1895 2.52321,21.47675 15.36127,18.94313 10.80322,-2.13219 11.77953,-19.46016 11.77953,-19.46016 V 61.577661 Z" + id="path851" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccsscccscssccc" /> + <rect + style="fill:#323232;fill-opacity:1;stroke:none;stroke-width:4.42024088;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect858" + width="13.928572" + height="13.928572" + x="55.059704" + y="99.090843" /> + <rect + style="fill:#323232;fill-opacity:1;stroke:none;stroke-width:4.42024088;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect858-0" + width="13.928572" + height="13.928572" + x="80.097389" + y="99.090843" + inkscape:transform-center-x="14.064738" + inkscape:transform-center-y="-5.625892" /> + <rect + style="fill:#323232;fill-opacity:1;stroke:none;stroke-width:4.49845934;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect858-4" + width="9.411725" + height="21.349106" + x="69.626968" + y="122.25526" /> +</svg> diff --git a/navit/icons/hotspring.svg b/navit/icons/hotspring.svg new file mode 100644 index 000000000..b599a2124 --- /dev/null +++ b/navit/icons/hotspring.svg @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="200" + id="svg2" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + sodipodi:docname="hotspring.svg" + sodipodi:version="0.32" + version="1.0" + width="200" + inkscape:export-filename="C:\Users\jeremy\Pictures\svg\hotspring.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <defs + id="defs22"> + <inkscape:perspective + id="perspective24" + inkscape:persp3d-origin="290 : 193.33333 : 1" + inkscape:vp_x="0 : 290 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="580 : 290 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <metadata + id="metadata10"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <cc:license + rdf:resource="http://web.resource.org/cc/PublicDomain" /> + <dc:language>en</dc:language> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10.0" + guidetolerance="10.0" + id="base" + inkscape:current-layer="svg2" + inkscape:cx="111.45288" + inkscape:cy="153.74159" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:window-height="705" + inkscape:window-width="1366" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:zoom="1.4142136" + objecttolerance="10.0" + pagecolor="#ffffff" + showgrid="false" + inkscape:window-maximized="1" + inkscape:measure-start="0,0" + inkscape:measure-end="0,0" + inkscape:lockguides="true" /> + <g + id="g1327" + transform="matrix(0.04083073,0,0,0.04083073,-0.1767767,176.93977)"> + <path + d="M 66.275,1.768 C 24.94,1.768 1.704,23.139 1.704,66.804 v 450.123 c 0,40.844 20.894,62.229 62.192,62.229 H 515.92 c 41.307,0 62.229,-20.316 62.229,-62.229 V 66.804 c 0,-42.601 -20.922,-65.036 -63.522,-65.036 -0.003,0 -448.494,-0.143 -448.352,0 z" + id="path1329" + style="fill:#111111;fill-opacity:0;stroke:#eeeeee;stroke-width:3.40799999;stroke-opacity:0" + inkscape:connector-curvature="0" /> + </g> + <g + id="g2319" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2323" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> + </g> + <g + id="g2325" + transform="matrix(0.04083073,0,0,0.04083073,35.725326,178.44255)"> + <path + d="" + id="path2329" + style="fill:#0089cd;stroke:none" + inkscape:connector-curvature="0" /> + </g> + <path + style="fill:#0089cd;fill-opacity:1;stroke:none;stroke-width:11.36141205;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 34.810274,85.967742 a 97.499586,42.536584 0 0 0 -31.1265883,31.110308 97.499586,42.536584 0 0 0 97.4979743,42.53709 97.499586,42.536584 0 0 0 97.50202,-42.53709 97.499586,42.536584 0 0 0 -30.89871,-30.992296 83.340637,36.359397 0 0 1 16.73732,21.795526 83.340637,36.359397 0 0 1 -83.34063,36.3598 83.340637,36.359397 0 0 1 -83.340646,-36.3598 83.340637,36.359397 0 0 1 16.96926,-21.913538 z" + id="path839" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.16703176;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 64.414602,41.752013 c -10.78766,10.430467 -14.38354,13.559606 -14.38354,21.556298 0,7.996677 17.97942,10.082769 17.46572,16.341046 -0.5137,6.258278 -17.46572,22.599343 -16.95203,25.033113" + id="path858" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssc" /> + <path + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.16703176;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 93.527762,25.866212 c -10.78766,10.430463 -14.38354,13.559599 -14.38354,21.556297 0,7.996673 17.97942,10.082764 17.46572,16.341041 -0.5137,6.258278 -17.46572,22.59934 -16.95202,25.033109" + id="path858-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssc" /> + <path + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.16703176;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 122.64091,40.204384 c -10.78765,10.430462 -14.38353,13.559601 -14.38353,21.556293 0,7.996678 17.97941,10.082769 17.46572,16.341046 -0.51369,6.258278 -17.46572,22.599337 -16.95203,25.033107" + id="path858-9-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssc" + inkscape:transform-center-x="17.205763" + inkscape:transform-center-y="-14.340942" /> + <path + style="fill:none;fill-opacity:1;stroke:#0089cd;stroke-width:4.16703176;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 151.75406,27.777961 c -10.78765,10.430463 -14.38353,13.559609 -14.38353,21.556298 0,7.996678 17.97941,10.08277 17.46572,16.341046 -0.51369,6.258278 -17.46572,22.59934 -16.95202,25.033109" + id="path858-9-4-0" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssc" + inkscape:transform-center-x="17.205768" + inkscape:transform-center-y="-14.340945" /> +</svg> diff --git a/navit/icons/navit_svg2png b/navit/icons/navit_svg2png index 675207561..668613a61 100755 --- a/navit/icons/navit_svg2png +++ b/navit/icons/navit_svg2png @@ -1,5 +1,14 @@ #!/bin/sh +exitwithhelp() +{ + echo "Usage: navit_svg2png <conversion_tool> <output_png_filename> [<width_px> <height_px>]" + echo "The input filename is the same than the output png one with svg or svgz extension" + echo "Possible conversion tools: ksvgtopng, ksvgtopng4, rsvg-convert, inkscape and convert" + echo "width_px and height_px arguments can be omitted if output png size is specified in the filename, like this: imagename_WIDTH_HEIGHT.png (ex. myPng_100_100.png)" + exit +} + svgtopng() { case $svgtopng in @@ -15,6 +24,10 @@ svgtopng() *convert) $svgtopng -alpha on -background none $3 -resize $1x$2 $4 ;; + *) + echo "Error: unknown conversion tool" + exitwithhelp # unknown conversion tool + ;; esac } @@ -26,8 +39,27 @@ svgtopng=$1 png=$2 w=$3 h=$4 + +# if -h or --help arg is passed, print help and exit +case "$1" in + '-h'|'--help'|'') + exitwithhelp + ;; +esac + +# args num must be == 2 or == 4 +if [ "$#" -ne 2 ] && [ "$#" -ne 4 ]; +then + echo "Error: wrong number of arguments" + exitwithhelp +fi + case "$png" in *_[1-9]*_[1-9]*.png) + if [ "$#" -ne 2 ]; then + echo "Error: output png size is specified by filename and by arguments, plese use only one" + exitwithhelp # png size musn't be specifed, only in filename + fi svg=${png%_*_*.png}; h=${png##*_} w=${png%_$h} @@ -35,6 +67,10 @@ case "$png" in w=${w##*_} ;; *) + if [ "$#" -ne 4 ]; then + echo "Error: please, specify output png size" + exitwithhelp # filename doesn't specify png size, must be done with args 3 and 4 + fi svg=${png%.png} ;; esac diff --git a/navit/map.h b/navit/map.h index 305c26b96..4ffe0d401 100644 --- a/navit/map.h +++ b/navit/map.h @@ -79,13 +79,13 @@ struct map_methods { struct map_rect_priv * (*map_rect_new)(struct map_priv *map, struct map_selection *sel); /**< Function to create a new map rect on the map. */ void (*map_rect_destroy)(struct map_rect_priv *mr); /**< Function to destroy a map rect */ struct item * (*map_rect_get_item)(struct map_rect_priv *mr); /**< Function to return the next item from a map rect */ - struct item * (*map_rect_get_item_byid)(struct map_rect_priv *mr, int id_hi, int id_lo); /**< Function to get an item with a specific ID from a map rect */ - struct map_search_priv *(*map_search_new)(struct map_priv *map, struct item *item, struct attr *search, int partial); /**< Function to start a new search on the map */ - void (*map_search_destroy)(struct map_search_priv *ms); /**< Function to destroy a map search struct */ - struct item * (*map_search_get_item)(struct map_search_priv *ms); /**< Function to get the next item of a search on the map */ + struct item * (*map_rect_get_item_byid)(struct map_rect_priv *mr, int id_hi, int id_lo); /**< Function to get an item with a specific ID from a map rect, can be NULL */ + struct map_search_priv *(*map_search_new)(struct map_priv *map, struct item *item, struct attr *search, int partial); /**< Function to start a new search on the map, can be NULL */ + void (*map_search_destroy)(struct map_search_priv *ms); /**< Function to destroy a map search struct, ignored if `map_search_new` is NULL */ + struct item * (*map_search_get_item)(struct map_search_priv *ms); /**< Function to get the next item of a search on the map, ignored if `map_search_new` is NULL */ struct item * (*map_rect_create_item)(struct map_rect_priv *mr, enum item_type type); /**< Function to create a new item in the map */ - int (*map_get_attr)(struct map_priv *priv, enum attr_type type, struct attr *attr); - int (*map_set_attr)(struct map_priv *priv, struct attr *attr); + int (*map_get_attr)(struct map_priv *priv, enum attr_type type, struct attr *attr); /**< Function to get a map attribute, can be NULL */ + int (*map_set_attr)(struct map_priv *priv, struct attr *attr); /**< Function to set a map attribute, can be NULL */ }; diff --git a/navit/map/binfile/binfile.c b/navit/map/binfile/binfile.c index 9c6d9a2ef..93cbbd466 100644 --- a/navit/map/binfile/binfile.c +++ b/navit/map/binfile/binfile.c @@ -121,7 +121,6 @@ struct map_priv { int check_version; int map_version; GHashTable *changes; - char *passwd; char *map_release; int flags; char *url; @@ -363,7 +362,6 @@ binfile_read_lfh(struct file *fi, long long offset) static unsigned char * binfile_read_content(struct map_priv *m, struct file *fi, long long offset, struct zip_lfh *lfh) { - struct zip_enc *enc; unsigned char *ret=NULL; offset+=sizeof(struct zip_lfh)+lfh->zipfnln; @@ -376,23 +374,6 @@ binfile_read_content(struct map_priv *m, struct file *fi, long long offset, stru offset+=lfh->zipxtraln; ret=file_data_read_compressed(fi,offset, lfh->zipsize, lfh->zipuncmp); break; - case 99: - if (!m->passwd) - break; - enc=(struct zip_enc *)file_data_read(fi, offset, sizeof(*enc)); - offset+=lfh->zipxtraln; - switch (enc->compress_method) { - case 0: - ret=file_data_read_encrypted(fi, offset, lfh->zipsize, lfh->zipuncmp, 0, m->passwd); - break; - case 8: - ret=file_data_read_encrypted(fi, offset, lfh->zipsize, lfh->zipuncmp, 1, m->passwd); - break; - default: - dbg(lvl_error,"map file %s: unknown encrypted compression method %d\n", fi->name, enc->compress_method); - } - file_data_free(fi, (unsigned char *)enc); - break; default: dbg(lvl_error,"map file %s: unknown compression method %d\n", fi->name, lfh->zipmthd); } @@ -2822,7 +2803,7 @@ map_new_binfile(struct map_methods *meth, struct attr **attrs, struct callback_l { struct map_priv *m; struct attr *data=attr_search(attrs, NULL, attr_data); - struct attr *check_version,*map_pass,*flags,*url,*download_enabled; + struct attr *check_version,*flags,*url,*download_enabled; struct file_wordexp *wexp; char **wexp_data; if (! data) @@ -2841,9 +2822,6 @@ map_new_binfile(struct map_methods *meth, struct attr **attrs, struct callback_l check_version=attr_search(attrs, NULL, attr_check_version); if (check_version) m->check_version=check_version->u.num; - map_pass=attr_search(attrs, NULL, attr_map_pass); - if (map_pass) - m->passwd=g_strdup(map_pass->u.str); flags=attr_search(attrs, NULL, attr_flags); if (flags) m->flags=flags->u.num; diff --git a/navit/maptool/maptool.c b/navit/maptool/maptool.c index 2d35fe516..b1db65eeb 100644 --- a/navit/maptool/maptool.c +++ b/navit/maptool/maptool.c @@ -279,7 +279,6 @@ usage(void) fprintf(f,"maptool --protobuf -i planet.osm.pbf planet.bin\n"); fprintf(f,"Available switches:\n"); fprintf(f,"-h (--help) : this screen\n"); - fprintf(f,"-5 (--md5) <file> : set file where to write md5 sum\n"); fprintf(f,"-6 (--64bit) : set zip 64 bit compression\n"); fprintf(f,"-a (--attr-debug-level) <level> : control which data is included in the debug attribute\n"); fprintf(f,"-c (--dump-coordinates) : dump coordinates after phase 1\n"); @@ -324,7 +323,6 @@ struct maptool_params { int process_relations; char *protobufdb; char *protobufdb_operation; - char *md5file; int start; int end; int dump; @@ -357,7 +355,6 @@ parse_option(struct maptool_params *p, char **argv, int argc, int *option_index) int pos,c,i; static struct option long_options[] = { - {"md5", 1, 0, '5'}, {"64bit", 0, 0, '6'}, {"attr-debug-level", 1, 0, 'a'}, {"binfile", 0, 0, 'b'}, @@ -389,7 +386,7 @@ parse_option(struct maptool_params *p, char **argv, int argc, int *option_index) {"index-size", 0, 0, 'x'}, {0, 0, 0, 0} }; - c = getopt_long (argc, argv, "5:6B:DEMNO:PS:Wa:bc" + c = getopt_long (argc, argv, "6B:DEMNO:PS:Wa:bc" #ifdef HAVE_POSTGRESQL "d:" #endif @@ -397,9 +394,6 @@ parse_option(struct maptool_params *p, char **argv, int argc, int *option_index) if (c == -1) return 1; switch (c) { - case '5': - p->md5file=optarg; - break; case '6': p->zip64=1; break; @@ -812,8 +806,6 @@ maptool_assemble_map(struct maptool_params *p, char *suffix, char **filenames, c zip_set_timestamp(zip_info, p->timestamp); zip_set_maxnamelen(zip_info, 14+strlen(suffix0)); zip_set_compression_level(zip_info, p->compression_level); - if (p->md5file) - zip_set_md5(zip_info, 1); if(!zip_open(zip_info, p->result, zipdir, zipindex)) { fprintf(stderr,"Fatal: Could not write output file.\n"); exit(1); @@ -860,7 +852,6 @@ maptool_assemble_map(struct maptool_params *p, char *suffix, char **filenames, c unlink("coords.tmp"); } if (last) { - unsigned char md5_data[16]; zipnum=zip_get_zipnum(zip_info); add_aux_tiles("auxtiles.txt", zip_info); write_countrydir(zip_info,p->max_index_size); @@ -869,14 +860,6 @@ maptool_assemble_map(struct maptool_params *p, char *suffix, char **filenames, c zip_write_index(zip_info); zip_write_directory(zip_info); zip_close(zip_info); - if (p->md5file && zip_get_md5(zip_info, md5_data)) { - FILE *md5=fopen(p->md5file,"w"); - int i; - for (i = 0 ; i < 16 ; i++) - fprintf(md5,"%02x",md5_data[i]); - fprintf(md5,"\n"); - fclose(md5); - } if (!p->keep_tmpfiles) { remove_countryfiles(); tempfile_unlink("index",""); diff --git a/navit/maptool/maptool.h b/navit/maptool/maptool.h index f1f45fff7..ce147b1a4 100644 --- a/navit/maptool/maptool.h +++ b/navit/maptool/maptool.h @@ -23,9 +23,6 @@ #include "attr.h" #include "geom.h" #include "types.h" -#ifdef HAVE_LIBCRYPTO -#include <openssl/md5.h> -#endif #define sq(x) ((double)(x)*(x)) @@ -404,8 +401,6 @@ void write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *d void zip_write_index(struct zip_info *info); int zip_write_directory(struct zip_info *info); struct zip_info *zip_new(void); -void zip_set_md5(struct zip_info *info, int on); -int zip_get_md5(struct zip_info *info, unsigned char *out); void zip_set_zip64(struct zip_info *info, int on); void zip_set_compression_level(struct zip_info *info, int level); void zip_set_maxnamelen(struct zip_info *info, int max); diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c index f352e6353..a4e040974 100644 --- a/navit/maptool/zip.c +++ b/navit/maptool/zip.c @@ -25,15 +25,6 @@ #include "config.h" #include "zipfile.h" -#ifdef HAVE_LIBCRYPTO -#include <openssl/sha.h> -#include <openssl/hmac.h> -#include <openssl/aes.h> -#include <openssl/evp.h> -#include <openssl/rand.h> -#include <openssl/md5.h> -#endif - struct zip_info { int zipnum; int dir_size; @@ -43,14 +34,9 @@ struct zip_info { int zip64; short date; short time; - char *passwd; FILE *res2; FILE *index; FILE *dir; -#ifdef HAVE_LIBCRYPTO - MD5_CTX md5_ctx; -#endif - int md5; }; static int @@ -58,10 +44,6 @@ zip_write(struct zip_info *info, void *data, int len) { if (fwrite(data, len, 1, info->res2) != 1) return 0; -#ifdef HAVE_LIBCRYPTO - if (info->md5) - MD5_Update(&info->md5_ctx, data, len); -#endif return 1; } @@ -139,17 +121,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, 0x8, zip_info->offset, }; -#ifdef HAVE_LIBCRYPTO - struct zip_enc enc = { - 0x9901, - 0x7, - 0x2, - 'A','E', - 0x1, - 0x0, - }; - unsigned char salt[8], key[34], verify[2], mac[10]; -#endif char *filename; int crc=0,len,comp_size=data_size; uLongf destlen=data_size+data_size/500+12; @@ -160,19 +131,8 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, fprintf(stderr, "No more memory.\n"); exit (1); } -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - RAND_bytes(salt, sizeof(salt)); - PKCS5_PBKDF2_HMAC_SHA1(zip_info->passwd, strlen(zip_info->passwd), salt, sizeof(salt), 1000, sizeof(key), key); - verify[0]=key[32]; - verify[1]=key[33]; - } else { -#endif - crc=crc32(0, NULL, 0); - crc=crc32(crc, (unsigned char *)data, data_size); -#ifdef HAVE_LIBCRYPTO - } -#endif + crc=crc32(0, NULL, 0); + crc=crc32(crc, (unsigned char *)data, data_size); lfh.zipmthd=zip_info->compression_level ? 8:0; #ifdef HAVE_ZLIB if (zip_info->compression_level) { @@ -191,15 +151,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, lfh.zipcrc=crc; lfh.zipsize=comp_size; lfh.zipuncmp=data_size; -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - enc.compress_method=lfh.zipmthd; - lfh.zipmthd=99; - lfh.zipxtraln+=sizeof(enc); - lfh.zipgenfld|=1; - lfh.zipsize+=sizeof(salt)+sizeof(verify)+sizeof(mac); - } -#endif cd.zipccrc=crc; cd.zipcsiz=lfh.zipsize; cd.zipcunc=data_size; @@ -208,13 +159,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, cd.zipofst=0xffffffff; cd.zipcxtl+=sizeof(cd_ext); } -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - cd.zipcmthd=99; - cd.zipcxtl+=sizeof(enc); - cd.zipcflg|=1; - } -#endif filename=g_alloca(filelen+1); strcpy(filename, name); len=strlen(filename); @@ -225,43 +169,8 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, zip_write(zip_info, &lfh, sizeof(lfh)); zip_write(zip_info, filename, filelen); zip_info->offset+=sizeof(lfh)+filelen; -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - unsigned char counter[16], xor[16], *datap=(unsigned char *)data; - int size=comp_size; - AES_KEY aeskey; - zip_write(zip_info, &enc, sizeof(enc)); - zip_write(zip_info, salt, sizeof(salt)); - zip_write(zip_info, verify, sizeof(verify)); - zip_info->offset+=sizeof(enc)+sizeof(salt)+sizeof(verify); - AES_set_encrypt_key(key, 128, &aeskey); - memset(counter, 0, sizeof(counter)); - while (size > 0) { - int i,curr_size,idx=0; - do { - counter[idx]++; - } while (!counter[idx++]); - AES_encrypt(counter, xor, &aeskey); - curr_size=size; - if (curr_size > sizeof(xor)) - curr_size=sizeof(xor); - for (i = 0 ; i < curr_size ; i++) - *datap++^=xor[i]; - size-=curr_size; - } - } -#endif zip_write(zip_info, data, comp_size); zip_info->offset+=comp_size; -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - unsigned int maclen=sizeof(mac); - unsigned char mactmp[maclen*2]; - HMAC(EVP_sha1(), key+16, 16, (unsigned char *)data, comp_size, mactmp, &maclen); - zip_write(zip_info, mactmp, sizeof(mac)); - zip_info->offset+=sizeof(mac); - } -#endif dbg_assert(fwrite(&cd, sizeof(cd), 1, zip_info->dir)==1); dbg_assert(fwrite(filename, filelen, 1, zip_info->dir)==1); zip_info->dir_size+=sizeof(cd)+filelen; @@ -269,12 +178,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, dbg_assert(fwrite(&cd_ext, sizeof(cd_ext), 1, zip_info->dir)==1); zip_info->dir_size+=sizeof(cd_ext); } -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - dbg_assert(fwrite(&enc, sizeof(enc), 1, zip_info->dir)==1); - zip_info->dir_size+=sizeof(enc); - } -#endif free(compbuffer); } @@ -364,28 +267,6 @@ zip_new(void) } void -zip_set_md5(struct zip_info *info, int on) -{ -#ifdef HAVE_LIBCRYPTO - info->md5=on; - if (on) - MD5_Init(&info->md5_ctx); -#endif -} - -int -zip_get_md5(struct zip_info *info, unsigned char *out) -{ - if (!info->md5) - return 0; -#ifdef HAVE_LIBCRYPTO - MD5_Final(out, &info->md5_ctx); - return 1; -#endif - return 0; -} - -void zip_set_zip64(struct zip_info *info, int on) { info->zip64=on; diff --git a/navit/navigation.c b/navit/navigation.c index 0812093d1..cc1b47bc2 100644 --- a/navit/navigation.c +++ b/navit/navigation.c @@ -1014,11 +1014,11 @@ round_distance_reduced( int dist ) * 'imperial' if set distinguishes the distance statement between miles and feet. Maximum distance in feet is 500. * 'vocabulary_distances' if set constrains the distance values to a set of simple pronounceable numbers. * -* @param nav The navigation object. -* @param dist Distance in meters. -* @param type The type of announcement precision. -* @param is_length 1 for length statement, 0 for distance statement. -* @return String with length/distance statement. +* @param nav The navigation object. +* @param dist_meters Distance in meters. +* @param type The type of announcement precision. +* @param is_length 1 for length statement, 0 for distance statement. +* @return String with length/distance statement. */ static char * get_distance_str(struct navigation *nav, int dist_meters, enum attr_type type, int is_length) @@ -1058,7 +1058,7 @@ get_distance_str(struct navigation *nav, int dist_meters, enum attr_type type, i return g_strdup_printf(_("in %d feet"), dist_feet); } - int dist_miles = (double) dist_meters / (double)METERS_PER_MILE + 0.5; + int dist_miles = (double) dist_meters * (double)METERS_TO_MILES + 0.5; if (vocabulary == 0) { @@ -1066,10 +1066,10 @@ get_distance_str(struct navigation *nav, int dist_meters, enum attr_type type, i dist_miles = round_distance_reduced(dist_miles); } - if ((dist_meters < METERS_PER_MILE) && (vocabulary > 0)) + if ((dist_meters < METERS_TO_MILES) && (vocabulary > 0)) { /* values smaller than one need extra treatment for one decimal place. For reduced vocabulary it shall remain 'one'. */ - int rem = (((double)dist_meters / (double)METERS_PER_MILE) + 0.05) * 10.0; + int rem = (((double)dist_meters * (double)METERS_TO_MILES) + 0.05) * 10.0; dist_miles= 0; if (is_length) return g_strdup_printf(_("%d.%d miles"), dist_miles, rem); diff --git a/navit/navigation.h b/navit/navigation.h index 28faa015c..0651dbc79 100644 --- a/navit/navigation.h +++ b/navit/navigation.h @@ -22,7 +22,17 @@ #define FEET_PER_METER 3.2808399 #define FEET_PER_MILE 5280 -#define METERS_PER_MILE 1609 +#define KILOMETERS_TO_MILES 0.62137119 /* Kilometers to miles */ + +/* It appears that distances to be displayed, such as distances to + * maneuvers, are in meters. Multiply that by METERS_PER_MILE and you + * have miles. */ +#define METERS_TO_MILES (KILOMETERS_TO_MILES/1000.0) /* Meters to miles */ +/* #define METERS_PER_MILE (1000.0/KILOMETERS_TO_MILES) */ + +/* Meters per second to kilometers per hour. GPSD delivers speeds in + * meters per second. */ +#define MPS_TO_KPH 3.6 #ifdef __cplusplus extern "C" { diff --git a/navit/navit.c b/navit/navit.c index fa2db9926..a32de161e 100644 --- a/navit/navit.c +++ b/navit/navit.c @@ -1947,6 +1947,11 @@ navit_window_roadbook_update(struct navit *this_) struct param_list param[5]; int secs; + /* Respect the Imperial attribute as we enlighten the user. */ + int imperial = FALSE; /* default to using metric measures. */ + if (navit_get_attr(this_, attr_imperial, &attr, NULL)) + imperial=attr.u.num; + dbg(lvl_debug,"enter\n"); datawindow_mode(this_->roadbook_window, 1); if (nav) @@ -1970,44 +1975,60 @@ navit_window_roadbook_update(struct navit *this_) param[0].value=_("Position"); param[0].name=_("Command"); + /* Distance to the next maneuver. */ item_attr_get(item, attr_length, &attr); - dbg(lvl_info, "Length=%ld\n", attr.u.num); + dbg(lvl_info, "Length=%ld in meters\n", attr.u.num); param[1].name=_("Length"); if ( attr.u.num >= 2000 ) { - param[1].value=g_strdup_printf("%5.1f %s",(float)attr.u.num / 1000, _("km") ); + param[1].value=g_strdup_printf("%5.1f %s", + imperial == TRUE ? (float)attr.u.num * METERS_TO_MILES : (float)attr.u.num / 1000, + imperial == TRUE ? _("mi") : _("km") + ); } else { - param[1].value=g_strdup_printf("%7ld %s",attr.u.num, _("m")); + param[1].value=g_strdup_printf("%7.0f %s", + imperial == TRUE ? (attr.u.num * FEET_PER_METER) : attr.u.num, + imperial == TRUE ? _("feet") : _("m") + ); } + /* Time to next maneuver. */ item_attr_get(item, attr_time, &attr); dbg(lvl_info, "Time=%ld\n", attr.u.num); secs=attr.u.num/10; param[2].name=_("Time"); if ( secs >= 3600 ) { - param[2].value=g_strdup_printf("%d:%02d:%02d",secs / 60, ( secs / 60 ) % 60 , secs % 60); + param[2].value=g_strdup_printf("%d:%02d:%02d",secs / 60, ( secs / 60 ) % 60 , secs % 60); } else { - param[2].value=g_strdup_printf("%d:%02d",secs / 60, secs % 60); + param[2].value=g_strdup_printf("%d:%02d",secs / 60, secs % 60); } + /* Distance from next maneuver to destination. */ item_attr_get(item, attr_destination_length, &attr); - dbg(lvl_info, "Destlength=%ld\n", attr.u.num); + dbg(lvl_info, "Destlength=%ld in meters.\n", attr.u.num); param[3].name=_("Destination Length"); if ( attr.u.num >= 2000 ) { - param[3].value=g_strdup_printf("%5.1f %s",(float)attr.u.num / 1000, _("km") ); + param[3].value=g_strdup_printf("%5.1f %s", + imperial == TRUE ? (float)attr.u.num * METERS_TO_MILES : (float)attr.u.num / 1000, + imperial == TRUE ? _("mi") : _("km") + ); } else { - param[3].value=g_strdup_printf("%ld %s",attr.u.num, _("m")); + param[3].value=g_strdup_printf("%7.0f %s", + imperial == TRUE ? (attr.u.num * FEET_PER_METER) : attr.u.num, + imperial == TRUE ? _("feet") : _("m") + ); } + /* Time from next maneuver to destination. */ item_attr_get(item, attr_destination_time, &attr); dbg(lvl_info, "Desttime=%ld\n", attr.u.num); secs=attr.u.num/10; diff --git a/navit/plugin.c b/navit/plugin.c index 8c61bc9b7..aae09c470 100644 --- a/navit/plugin.c +++ b/navit/plugin.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -38,6 +38,13 @@ #include "item.h" #include "debug.h" +/** + * @defgroup plugins + * @brief A interface to handle all plugins inside navit + * + * @{ + */ + #ifdef USE_PLUGINS #ifndef HAVE_GMODULE typedef void * GModule; diff --git a/navit/route.c b/navit/route.c index e367c3855..c67455902 100644 --- a/navit/route.c +++ b/navit/route.c @@ -94,7 +94,9 @@ struct route_graph_point { * least costs */ struct fibheap_el *el; /**< When this point is put on a Fibonacci heap, this is a pointer * to this point's heap-element */ - int value; /**< The cost at which one can reach the destination from this point on */ + int value; /**< The cost at which one can reach the destination from this point on. + * {@code INT_MAX} indicates that the destination is unreachable from this + * point, or that this point has not yet been examined. */ struct coord c; /**< Coordinates of this point */ int flags; /**< Flags for this point (eg traffic distortion) */ }; @@ -112,7 +114,7 @@ struct route_graph_point { struct route_segment_data { struct item item; /**< The item (e.g. street) that this segment represents. */ int flags; - int len; /**< Length of this segment */ + int len; /**< Length of this segment, in meters */ /*NOTE: After a segment, various fields may follow, depending on what flags are set. Order of fields: 1.) maxspeed Maximum allowed speed on this segment. Present if AF_SPEED_LIMIT is set. 2.) offset If the item is segmented (i.e. represented by more than one segment), this @@ -215,7 +217,8 @@ struct route_info { /** * @brief A complete route path * - * This structure describes a whole routing path + * A route path is an ordered set of segments describing the route from the current position (or previous + * destination) to the next destination. */ struct route_path { int in_use; /**< The path is in use and can not be updated */ @@ -247,8 +250,8 @@ struct route { struct route_graph *graph; /**< Pointer to the route graph */ struct route_path *path2; /**< Pointer to the route path */ - struct map *map; - struct map *graph_map; + struct map *map; /**< The map containing the route path */ + struct map *graph_map; /**< The map containing the route graph */ struct callback * route_graph_done_cb ; /**< Callback when route graph is done */ struct callback * route_graph_flood_done_cb ; /**< Callback when route graph flooding is done */ struct callback_list *cbl2; /**< Callback list to call when route changes */ @@ -263,7 +266,8 @@ struct route { /** * @brief A complete route graph * - * This structure describes a whole routing graph + * The route graph holds all routable segments along with the connections between them and the cost of + * each segment. */ struct route_graph { int busy; /**< The graph is being built */ @@ -1165,8 +1169,9 @@ route_clear_destinations(struct route *this_) * and updates the route. * * @param this The route to set the destination for - * @param dst Coordinates to set as destination - * @param count Number of destinations (last one is final) + * @param dst Points to an array of coordinates to set as destinations, which will be visited in the + * order in which they appear in the array (the last one is the final destination) + * @param count Number of items in {@code dst}, 0 to clear all destinations * @param async If set, do routing asynchronously */ @@ -2150,6 +2155,15 @@ route_value_seg(struct vehicleprofile *profile, struct route_graph_point *from, return ret; } +/** + * @brief Whether two route graph segments match. + * + * Two segments match if both start and end at the exact same points. Other points are not considered. + * + * @param s1 The first segment + * @param s2 The second segment + * @return true if both segments match, false if not + */ static int route_graph_segment_match(struct route_graph_segment *s1, struct route_graph_segment *s2) { @@ -2162,11 +2176,13 @@ route_graph_segment_match(struct route_graph_segment *s1, struct route_graph_seg /** * @brief Sets or clears a traffic distortion for a segment. * - * This sets or clears a delay. It cannot be used to set speed. + * This sets a delay (setting speed is not supported) or clears an existing traffic distortion. + * Note that, although setting a speed is not supported, calling this function with a delay of 0 + * will also clear an existing speed constraint. * * @param this The route graph * @param seg The segment to which the traffic distortion applies - * @param delay Delay in tenths of a second + * @param delay Delay in tenths of a second, or 0 to clear an existing traffic distortion */ static void route_graph_set_traffic_distortion(struct route_graph *this, struct route_graph_segment *seg, int delay) @@ -2199,10 +2215,10 @@ route_graph_set_traffic_distortion(struct route_graph *this, struct route_graph_ } /** - * @brief Adds a route distortion item to the route graph + * @brief Adds a traffic distortion item to the route graph * * @param this The route graph to add to - * @param item The item to add + * @param item The item to add, must be of {@code type_traffic_distortion} */ static void route_process_traffic_distortion(struct route_graph *this, struct item *item) @@ -2932,6 +2948,15 @@ route_graph_process_restrictions(struct route_graph *this) } } +/** + * @brief Releases all resources needed to build the route graph. + * + * If {@code cancel} is false, this function will start processing restrictions and ultimately call + * the route graph's {@code done_cb} callback. + * + * @param rg Points to the route graph + * @param cancel True if the process was aborted before completing, false if it completed normally + */ static void route_graph_build_done(struct route_graph *rg, int cancel) { diff --git a/navit/transform.c b/navit/transform.c index 1c6eeae67..8a6713ab6 100644 --- a/navit/transform.c +++ b/navit/transform.c @@ -1187,6 +1187,14 @@ transform_overflow_possible_if_squared(int count, ...) { return result; } +/** + * @brief Determines the squared Mercator distance between two points. + * + * @param c0 The first coordinate + * @param c1 The second coordinate + * + * @return The squared distance between `c1` and `c2`, or `INT_MAX` if an overflow occurs. + */ int transform_distance_sq(struct coord *c1, struct coord *c2) { @@ -1216,6 +1224,17 @@ transform_distance_sq_pc(struct pcoord *c1, struct pcoord *c2) return transform_distance_sq(&p1, &p2); } +/** + * @brief Determines the point on a line segment that is closest to a reference point, and its distance + * from the reference point. + * + * @param l0 The first coordinate of the line segment + * @param l1 The second coordinate of the line segment + * @param ref The reference point + * @param lpnt Receives the coordinates of the point on the line segment that is closest to `ref`, can be `NULL` + * + * @return The square of the Mercator distance between `ref` and `lpnt`, or `INT_MAX` if an overflow occurred + */ int transform_distance_line_sq(struct coord *l0, struct coord *l1, struct coord *ref, struct coord *lpnt) { @@ -1287,6 +1306,18 @@ transform_distance_line_sq_float(struct coord *l0, struct coord *l1, struct coor return transform_distance_sq_float(&l, ref); } +/** + * @brief Determines the point on a polyline that is closest to a reference point, and its distance + * from the reference point. + * + * @param c An array containing the coordinates of the polyline + * @param count Number of elements in `c` + * @param ref The reference point + * @param lpnt Receives the coordinates of the point on the polyline that is closest to `ref`, can be `NULL` + * @param pos Receives the index of the line segment containing `lpnt`, can be NULL + * + * @return The square of the Mercator distance between `ref` and `lpnt`, or `INT_MAX` if an overflow occurred + */ int transform_distance_polyline_sq(struct coord *c, int count, struct coord *ref, struct coord *lpnt, int *pos) { diff --git a/navit/util.c b/navit/util.c index 2cceae460..79c92379e 100644 --- a/navit/util.c +++ b/navit/util.c @@ -709,7 +709,22 @@ void spawn_process_init() return; } -/** Get printable compass direction from an angle. */ +/** + * @brief Get printable compass direction from an angle. + * + * This function supports three different modes: + * + * In mode 0, the angle in degrees is output as a string. + * + * In mode 1, the angle is output as a cardinal direction (N, SE etc.). + * + * In mode 2, the angle is output in analog clock notation (6 o'clock). + * + * @param buffer Buffer to hold the result string (up to 5 characters, including the terminating null + * character, may be required) + * @param angle The angle to convert + * @param mode The conversion mode, see description + */ void get_compass_direction(char *buffer, int angle, int mode) { diff --git a/navit/vehicle.c b/navit/vehicle.c index 33cecb0e9..26dc457cb 100644 --- a/navit/vehicle.c +++ b/navit/vehicle.c @@ -18,6 +18,8 @@ */ /** @file vehicle.c + * @defgroup vehicle-plugins vehicle plugins + * @ingroup plugins * @brief Generic components of the vehicle object. * * This file implements the generic vehicle interface, i.e. everything which is @@ -52,6 +54,7 @@ #include "vehicle.h" #include "navit_nls.h" + struct vehicle { NAVIT_OBJECT struct vehicle_methods meth; diff --git a/navit/vehicle/android/vehicle_android.c b/navit/vehicle/android/vehicle_android.c index 89882d048..4165b9b31 100644 --- a/navit/vehicle/android/vehicle_android.c +++ b/navit/vehicle/android/vehicle_android.c @@ -1,6 +1,4 @@ -/** @file vehicle_android.c - * @brief android uses dbus signals - * +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -18,8 +16,6 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * - * @Author Tim Niemeyer <reddog@mastersword.de> - * @date 2008-2009 */ #include <config.h> @@ -35,6 +31,15 @@ #include "android.h" #include "vehicle.h" +/** + * @defgroup vehicle-android Vehicle Android + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from android. Android uses dbus signals + * @author Tim Niemeyer <reddog@mastersword.de> + * @date 2008-2009 + * + */ + struct vehicle_priv { struct callback_list *cbl; struct coord_geo geo; /**< The last known position of the vehicle **/ @@ -294,3 +299,5 @@ plugin_init(void) dbg(lvl_debug, "enter\n"); plugin_register_category_vehicle("android", vehicle_android_new_android); } + +/** @} */ diff --git a/navit/vehicle/demo/vehicle_demo.c b/navit/vehicle/demo/vehicle_demo.c index 4a47c1476..1e2991300 100644 --- a/navit/vehicle/demo/vehicle_demo.c +++ b/navit/vehicle/demo/vehicle_demo.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -34,6 +34,13 @@ #include "event.h" #include "util.h" +/** + * @defgroup vehicle-demo Vehicle Demo + * @ingroup vehicle-plugins + * @brief The Vehicle for a demo. It followes the route automatically + * + */ + struct vehicle_priv { int interval; int position_set; @@ -302,3 +309,6 @@ plugin_init(void) dbg(lvl_debug, "enter\n"); plugin_register_category_vehicle("demo", vehicle_demo_new); } + + +/** @} */ diff --git a/navit/vehicle/file/vehicle_file.c b/navit/vehicle/file/vehicle_file.c index 10bce942b..81b99f829 100644 --- a/navit/vehicle/file/vehicle_file.c +++ b/navit/vehicle/file/vehicle_file.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -59,6 +59,14 @@ int inet_aton(const char *cp, struct in_addr *inp) } #endif +/** + * @defgroup vehicle-file Vehicle File + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from a file, pipe, serial interface or a socket + * + * @{ + */ + static void vehicle_file_disable_watch(struct vehicle_priv *priv); static void vehicle_file_enable_watch(struct vehicle_priv *priv); static int vehicle_file_parse(struct vehicle_priv *priv, char *buffer); @@ -84,7 +92,7 @@ struct vehicle_priv { char *source; struct callback_list *cbl; int fd; - struct callback *cb,*cbt; + struct callback *cb,*cbt,*cb_fix_timeout; char *buffer; int buffer_pos; char *nmea_data; @@ -114,6 +122,7 @@ struct vehicle_priv { enum file_type file_type; FILE *file; struct event_watch *watch; + struct event_timeout *ev_fix_timeout; speed_t baudrate; struct attr ** attrs; char fixiso8601[128]; @@ -129,16 +138,13 @@ struct vehicle_priv { int process_statefile; }; -//*************************************************************************** -/** @fn static int vehicle_win32_serial_track(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: Callback of the plugin -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -* @return always 1 -***************************************************************************** -**/ +/** +* @brief Callback of the plugin +* +* @param priv Pointer on the private data of the plugin +* +* @return Always 1 +*/ #ifdef _WIN32 static int vehicle_win32_serial_track(struct vehicle_priv *priv) { @@ -207,17 +213,13 @@ static int vehicle_win32_serial_track(struct vehicle_priv *priv) } #endif -//*************************************************************************** -/** @fn static int vehicle_file_open(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: open dialogue with the GPS -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -* @return 1 if ok -* 0 if error -***************************************************************************** -**/ +/** +* @brief Open dialogue with the GPS +* +* @param priv Pointer on the private data of the plugin +* +* @return 1 if ok, 0 if error +*/ static int vehicle_file_open(struct vehicle_priv *priv) { @@ -318,14 +320,11 @@ vehicle_file_open(struct vehicle_priv *priv) return(priv->fd != -1); } -//*************************************************************************** -/** @fn static void vehicle_file_close(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: close dialogue with the GPS -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -**/ +/** +* @brief Close dialogue with the GPS +* +* @param priv Pointer on the private data of the plugin +*/ static void vehicle_file_close(struct vehicle_priv *priv) { @@ -356,16 +355,13 @@ vehicle_file_close(struct vehicle_priv *priv) } } -//*************************************************************************** -/** @fn static int vehicle_file_enable_watch_timer(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: Enable watch timer to get GPS data -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -* @return always 0 -***************************************************************************** -**/ +/** +* @brief Enable watch timer to get GPS data +* +* @param priv Pointer on the private data of the plugin +* +* @return Always 0 +*/ static int vehicle_file_enable_watch_timer(struct vehicle_priv *priv) { @@ -376,19 +372,44 @@ vehicle_file_enable_watch_timer(struct vehicle_priv *priv) } -//*************************************************************************** -/** @fn static int vehicle_file_parse( struct vehicle_priv *priv, -* char *buffer) -***************************************************************************** -* @b Description: Parse the buffer -***************************************************************************** -* @param priv : pointer on the private data of the plugin -* @param buffer : data buffer (null terminated) -***************************************************************************** -* @return 1 if The GPRMC Sentence is found -* 0 if not found -***************************************************************************** -**/ +/** +* @brief This is a callback function, called when the fix timeout +* is done. Set the position to invalid. +* +* @param priv Pointer on the private data of the plugin +*/ +static void +vehicle_file_fix_timeout_cb(struct vehicle_priv *priv) +{ + priv->valid = attr_position_valid_invalid; + priv->ev_fix_timeout = NULL; + callback_list_call_attr_0(priv->cbl, attr_position_coord_geo); +} + + +/** +* @brief Cancel previous fix timeout event and add a new one +* +* @param priv Pointer on the private data of the plugin +*/ +static void +vehicle_file_restart_fix_timeout(struct vehicle_priv *priv) +{ + if (priv->ev_fix_timeout != NULL) + event_remove_timeout(priv->ev_fix_timeout); + priv->ev_fix_timeout = event_add_timeout(10000, 0, priv->cb_fix_timeout); +} + + +/** +* @brief Parse the buffer +* +* @param priv Pointer on the private data of the plugin +* @param buffer Data buffer (null terminated) +* +* @return 1 if new coords were received (fixtime changed) or changed to invalid, +* 0 if not found +*/ static int vehicle_file_parse(struct vehicle_priv *priv, char *buffer) { @@ -458,7 +479,7 @@ vehicle_file_parse(struct vehicle_priv *priv, char *buffer) UTC of Fix[1],Latitude[2],N/S[3],Longitude[4],E/W[5],Quality(0=inv,1=gps,2=dgps)[6],Satelites used[7], HDOP[8],Altitude[9],"M"[10],height of geoid[11], "M"[12], time since dgps update[13], dgps ref station [14] */ - if (*item[2] && *item[3] && *item[4] && *item[5]) { + if (*item[2] && *item[3] && *item[4] && *item[5] && *item[6] > 0) { lat = g_ascii_strtod(item[2], NULL); priv->geo.lat = floor(lat / 100); lat -= priv->geo.lat * 100; @@ -474,20 +495,31 @@ vehicle_file_parse(struct vehicle_priv *priv, char *buffer) if (!g_ascii_strcasecmp(item[5],"W")) priv->geo.lng=-priv->geo.lng; - priv->valid=attr_position_valid_valid; + + if (priv->valid == attr_position_valid_invalid) + ret = 1; + priv->valid = attr_position_valid_valid; + vehicle_file_restart_fix_timeout(priv); + + if (*item[1] && strncmp(priv->fixtime, item[1], sizeof(priv->fixtime))) { + ret = 1; + strncpy(priv->fixtime, item[1], sizeof(priv->fixtime)); + } dbg(lvl_info, "latitude '%2.4f' longitude %2.4f\n", priv->geo.lat, priv->geo.lng); - } else + } else { + if (priv->valid == attr_position_valid_valid) + ret = 1; priv->valid=attr_position_valid_invalid; + } + if (*item[6]) sscanf(item[6], "%d", &priv->status); if (*item[7]) sscanf(item[7], "%d", &priv->sats_used); if (*item[8]) sscanf(item[8], "%lf", &priv->hdop); - if (*item[1]) - strncpy(priv->fixtime, item[1], sizeof(priv->fixtime)); if (*item[9]) sscanf(item[9], "%lf", &priv->height); @@ -537,8 +569,40 @@ vehicle_file_parse(struct vehicle_priv *priv, char *buffer) &priv->fixmonth, &priv->fixyear); priv->fixyear += 2000; + + lat = g_ascii_strtod(item[3], NULL); + priv->geo.lat = floor(lat / 100); + lat -= priv->geo.lat * 100; + priv->geo.lat += lat / 60; + + if (!g_ascii_strcasecmp(item[4],"S")) + priv->geo.lat=-priv->geo.lat; + + lng = g_ascii_strtod(item[5], NULL); + priv->geo.lng = floor(lng / 100); + lng -= priv->geo.lng * 100; + priv->geo.lng += lng / 60; + + if (!g_ascii_strcasecmp(item[6],"W")) + priv->geo.lng=-priv->geo.lng; + + if (priv->valid == attr_position_valid_invalid) + ret = 1; + priv->valid=attr_position_valid_valid; + vehicle_file_restart_fix_timeout(priv); + + if (*item[1] && strncmp(priv->fixtime, item[1], sizeof(priv->fixtime))) { + ret = 1; + strncpy(priv->fixtime, item[1], sizeof(priv->fixtime)); + } + + dbg(lvl_info, "latitude '%2.4f' longitude %2.4f\n", priv->geo.lat, priv->geo.lng); + + } else { + if (priv->valid == attr_position_valid_valid) + ret = 1; + priv->valid=attr_position_valid_invalid; } - ret = 1; } if (!strncmp(buffer, "$GPGSV", 6) && i >= 4) { /* @@ -610,16 +674,11 @@ vehicle_file_parse(struct vehicle_priv *priv, char *buffer) return ret; } -//*************************************************************************** -/** @fn static void vehicle_file_io(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: function to get data from GPS -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -* @remarks -***************************************************************************** -**/ +/** +* @brief Function to get data from GPS +* +* @param priv Pointer on the private data of the plugin +*/ static void vehicle_file_io(struct vehicle_priv *priv) { @@ -685,14 +744,11 @@ vehicle_file_io(struct vehicle_priv *priv) callback_list_call_attr_0(priv->cbl, attr_position_coord_geo); } -//*************************************************************************** -/** @fn static void vehicle_file_enable_watch(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: Enable watch -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -**/ +/** +* @brief Enable watch +* +* @param priv Pointer on the private data of the plugin +*/ static void vehicle_file_enable_watch(struct vehicle_priv *priv) { @@ -713,14 +769,11 @@ vehicle_file_enable_watch(struct vehicle_priv *priv) } } -//*************************************************************************** -/** @fn static void vehicle_file_disable_watch(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: Disable watch -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** -**/ +/** +* @brief Disable watch +* +* @param priv Pointer on the private data of the plugin +*/ static void vehicle_file_disable_watch(struct vehicle_priv *priv) { @@ -742,16 +795,13 @@ vehicle_file_disable_watch(struct vehicle_priv *priv) } } -//*************************************************************************** -/** @fn static void vehicle_priv vehicle_file_destroy(struct vehicle_priv *priv) -***************************************************************************** -* @b Description: Function called to uninitialize the plugin -***************************************************************************** -* @param priv : pointer on the private data of the plugin -***************************************************************************** +/** +* @brief Function called to uninitialize the plugin +* +* @param priv Pointer on the private data of the plugin +* * @remarks private data is freed by this function (g_free) -***************************************************************************** -**/ +*/ static void vehicle_file_destroy(struct vehicle_priv *priv) { @@ -781,21 +831,15 @@ vehicle_file_destroy(struct vehicle_priv *priv) g_free(priv); } -//*************************************************************************** -/** @fn static int vehicle_file_position_attr_get(struct vehicle_priv *priv, -* enum attr_type type, -* struct attr *attr) -***************************************************************************** -* @b Description: Function called to get attribute -***************************************************************************** -* @param priv : pointer on the private data of the plugin -* @param type : attribute type called -* @param attr : structure to return the attribute value -***************************************************************************** -* @return 1 if ok -* 0 for unkown or invalid attribute -***************************************************************************** -**/ +/** +* @brief Function called to get attribute +* +* @param priv Pointer on the private data of the plugin +* @param type Attribute type called +* @param attr Structure to return the attribute value +* +* @return 1 if ok, 0 for unkown or invalid attribute +*/ static int vehicle_file_position_attr_get(struct vehicle_priv *priv, enum attr_type type, struct attr *attr) @@ -865,21 +909,15 @@ vehicle_file_position_attr_get(struct vehicle_priv *priv, return 1; } -//*************************************************************************** -/** @fn static int vehicle_file_sat_attr_get(struct vehicle_priv *priv, -* enum attr_type type, -* struct attr *attr) -***************************************************************************** -* @b Description: Function called to get satellite attribute -***************************************************************************** -* @param priv : pointer on the private data of the plugin -* @param type : attribute type called -* @param attr : structure to return the attribute value -***************************************************************************** -* @return 1 if ok -* 0 for unkown attribute -***************************************************************************** -**/ +/** +* @brief Function called to get satellite attribute +* +* @param priv Pointer on the private data of the plugin +* @param type Attribute type called +* @param attr Structure to return the attribute value +* +* @return 1 if ok, 0 for unkown attribute +*/ static int vehicle_file_sat_attr_get(void *priv_data, enum attr_type type, struct attr *attr) { @@ -922,23 +960,17 @@ static struct vehicle_methods vehicle_file_methods = { vehicle_file_position_attr_get, }; -//*************************************************************************** -/** @fn static struct vehicle_priv * vehicle_file_new_file( -* struct vehicle_methods *meth, -* struct callback_list *cbl, -* struct attr **attrs) -***************************************************************************** -* @b Description: Function called to initialize the plugin -***************************************************************************** -* @param meth : ? -* @param cbl : ? -* @param attrs : ? -***************************************************************************** -* @return pointer on the private data of the plugin -***************************************************************************** -* @remarks private data is allocated by this function (g_new0) -***************************************************************************** -**/ +/** +* @brief Function called to initialize the plugin +* +* @param meth ? +* @param cbl ? +* @param attrs ? +* +* @return Pointer on the private data of the plugin +* +* @remarks Private data is allocated by this function (g_new0) +*/ static struct vehicle_priv * vehicle_file_new_file(struct vehicle_methods *meth, struct callback_list @@ -958,7 +990,7 @@ vehicle_file_new_file(struct vehicle_methods if(source == NULL){ dbg(lvl_error,"Missing source attribute"); return NULL; - } + } ret = g_new0(struct vehicle_priv, 1); // allocate and initialize to 0 ret->fd = -1; ret->cbl = cbl; @@ -966,6 +998,8 @@ vehicle_file_new_file(struct vehicle_methods ret->buffer = g_malloc(buffer_size); ret->time=1000; ret->baudrate=B4800; + ret->fixtime[0] = '\0'; + ret->ev_fix_timeout = NULL; state_file=attr_search(attrs, NULL, attr_state_file); if (state_file) ret->statefile=g_strdup(state_file->u.str); @@ -1014,6 +1048,7 @@ vehicle_file_new_file(struct vehicle_methods *meth = vehicle_file_methods; ret->cb=callback_new_1(callback_cast(vehicle_file_io), ret); ret->cbt=callback_new_1(callback_cast(vehicle_file_enable_watch_timer), ret); + ret->cb_fix_timeout=callback_new_1(callback_cast(vehicle_file_fix_timeout_cb), ret); if (ret->statefile && file_exists(ret->statefile)) { ret->process_statefile=1; event_add_timeout(1000, 0, ret->cb); @@ -1038,12 +1073,9 @@ vehicle_file_new_file(struct vehicle_methods return ret; } -//*************************************************************************** -/** @fn void plugin_init(void) -***************************************************************************** -* @b Description: Initialisation of vehicle_file plugin -***************************************************************************** -**/ +/** +* @brief Initialisation of vehicle_file plugin +*/ void plugin_init(void) { dbg(lvl_debug, "vehicle_file:plugin_init:enter\n"); diff --git a/navit/vehicle/gpsd/vehicle_gpsd.c b/navit/vehicle/gpsd/vehicle_gpsd.c index a8c29cd97..975d9c68a 100644 --- a/navit/vehicle/gpsd/vehicle_gpsd.c +++ b/navit/vehicle/gpsd/vehicle_gpsd.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -35,6 +35,14 @@ #include "event.h" #include "types.h" +/** + * @defgroup vehicle-gpsd Vehicle Gpsd + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from the gpsd service + * + * @{ + */ + static struct vehicle_priv { char *source; char *gpsd_query; @@ -101,13 +109,15 @@ vehicle_gpsd_callback(struct gps_data_t *data, const char *buf, size_t len, } } } + dbg(lvl_debug,"data->set="LONGLONG_HEX_FMT"\n", (unsigned long long)data->set); if (data->set & SPEED_SET) { - priv->speed = data->fix.speed * 3.6; + priv->speed = data->fix.speed * MPS_TO_KPH; if(!isnan(data->fix.speed)) callback_list_call_attr_0(priv->cbl, attr_position_speed); data->set &= ~SPEED_SET; } + if (data->set & TRACK_SET) { priv->direction = data->fix.track; data->set &= ~TRACK_SET; diff --git a/navit/vehicle/gpsd_dbus/vehicle_gpsd_dbus.c b/navit/vehicle/gpsd_dbus/vehicle_gpsd_dbus.c index fa5eb8780..ebdf08707 100644 --- a/navit/vehicle/gpsd_dbus/vehicle_gpsd_dbus.c +++ b/navit/vehicle/gpsd_dbus/vehicle_gpsd_dbus.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -34,6 +34,14 @@ #include "vehicle.h" #include "event.h" +/** + * @defgroup vehicle-gpsd-dbus Vehicle Gpsd DBus + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from Gpsd over DBus + * + * @{ + */ + static char *vehicle_gpsd_dbus_prefix="gpsd_dbus:"; struct vehicle_priv { diff --git a/navit/vehicle/gypsy/vehicle_gypsy.c b/navit/vehicle/gypsy/vehicle_gypsy.c index 589e53a3f..16175f2e8 100644 --- a/navit/vehicle/gypsy/vehicle_gypsy.c +++ b/navit/vehicle/gypsy/vehicle_gypsy.c @@ -1,6 +1,4 @@ -/** @file vehicle_gypsy.c - * @brief gypsy uses dbus signals - * +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -18,8 +16,6 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * - * @Author Tim Niemeyer <reddog@mastersword.de> - * @date 2008-2009 */ #include <config.h> @@ -47,6 +43,16 @@ #include "item.h" #include "vehicle.h" +/** + * @defgroup vehicle-gypsy Vehicle gypsy + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from gypsy. gypsy uses dbus signals + * @Author Tim Niemeyer <reddog@mastersword.de> + * @date 2008-2009 + * + * @{ + */ + static struct vehicle_priv { char *source; GypsyControl *control; diff --git a/navit/vehicle/iphone/vehicle_iphone.c b/navit/vehicle/iphone/vehicle_iphone.c index 94fec114a..f8ce5b644 100644 --- a/navit/vehicle/iphone/vehicle_iphone.c +++ b/navit/vehicle/iphone/vehicle_iphone.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -33,6 +33,14 @@ #include "event.h" #include "corelocation.h" +/** + * @defgroup vehicle-iphone Vehicle iPhone + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from iPhone. + * + * @{ + */ + struct vehicle_priv { int interval; int position_set; diff --git a/navit/vehicle/maemo/vehicle_maemo.c b/navit/vehicle/maemo/vehicle_maemo.c index d686a6a03..015f1c8e3 100644 --- a/navit/vehicle/maemo/vehicle_maemo.c +++ b/navit/vehicle/maemo/vehicle_maemo.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -18,14 +18,6 @@ */ -/* - Plugin for new Maemo's liblocation API. - - <vehicle source="maemo://any" retry_interval="1"/> - source cound be on of "any","cwp","acwp","gnss","agnss" - retry_interval could be one of "1","2","5","10","20","30","60","120" measured in seconds -*/ - #include <config.h> #include <string.h> #include <glib.h> @@ -40,6 +32,19 @@ #include "vehicle.h" #include "event.h" +/** + * @defgroup vehicle-iphone Vehicle Maemo + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from Maemo. + * + * Plugin for new Maemo's liblocation API. + * <vehicle source="maemo://any" retry_interval="1"/> + * source cound be on of "any","cwp","acwp","gnss","agnss" + * retry_interval could be one of "1","2","5","10","20","30","60","120" measured in seconds + * + * @{ + */ + static struct vehicle_priv { LocationGPSDControl *control; LocationGPSDevice *device; diff --git a/navit/vehicle/null/vehicle_null.c b/navit/vehicle/null/vehicle_null.c index 643945c71..6b723f9ff 100644 --- a/navit/vehicle/null/vehicle_null.c +++ b/navit/vehicle/null/vehicle_null.c @@ -1,4 +1,4 @@ -/** @file vehicle_null.c +/* * @brief null uses dbus signals * * Navit, a modular navigation system. @@ -34,6 +34,14 @@ #include "item.h" #include "vehicle.h" +/** + * @defgroup vehicle-null Vehicle Null + * @ingroup vehicle-plugins + * @brief A dummy Vehicle to have a null movement. + * + * @{ + */ + struct vehicle_priv { struct callback_list *cbl; struct coord_geo geo; diff --git a/navit/vehicle/qt5/vehicle_qt5.cpp b/navit/vehicle/qt5/vehicle_qt5.cpp index 2a2b6f5cf..fc8a6635a 100644 --- a/navit/vehicle/qt5/vehicle_qt5.cpp +++ b/navit/vehicle/qt5/vehicle_qt5.cpp @@ -1,5 +1,4 @@ -/** @file vehicle_null.c - * @brief null uses dbus signals +/* * * Navit, a modular navigation system. * Copyright (C) 2005-2017 Navit Team @@ -41,6 +40,15 @@ extern "C" { #include "vehicle_qt5.h" #include "vehicle_qt5.moc" #include <QDateTime> + +/** + * @defgroup vehicle-qt5 Vehicle QT5 + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from qt5 + * + * @{ + */ + QNavitGeoReceiver::QNavitGeoReceiver(QObject* parent, struct vehicle_priv* c) : QObject(parent) { diff --git a/navit/vehicle/webos/vehicle_webos.c b/navit/vehicle/webos/vehicle_webos.c index a5bba4bce..c4bdcbaf2 100644 --- a/navit/vehicle/webos/vehicle_webos.c +++ b/navit/vehicle/webos/vehicle_webos.c @@ -1,4 +1,4 @@ -/** +/* * vim: sw=3 ts=3 * * Navit, a modular navigation system. @@ -37,6 +37,14 @@ #include "vehicle_webos.h" #include "bluetooth.h" +/** + * @defgroup vehicle-webos Vehicle WebOS + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from WebOS + * + * @{ + */ + static char *vehicle_webos_prefix="webos:"; /*******************************************************************/ diff --git a/navit/vehicle/wince/vehicle_wince.c b/navit/vehicle/wince/vehicle_wince.c index d43c516f7..49f90b1f5 100644 --- a/navit/vehicle/wince/vehicle_wince.c +++ b/navit/vehicle/wince/vehicle_wince.c @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -44,6 +44,14 @@ #include <wchar.h> #include "support/win32/ConvertUTF.h" +/** + * @defgroup vehicle-wince Vehicle WinCE + * @ingroup vehicle-plugins + * @brief The Vehicle to gain position data from WinCE + * + * @{ + */ + #define SwitchToThread() Sleep(0) typedef int (WINAPI *PFN_BthSetMode)(DWORD pBthMode); @@ -83,6 +91,8 @@ struct vehicle_priv { char *source; struct callback_list *cbl; struct callback_list *priv_cbl; + struct callback *cb_fix_timeout; + struct event_timeout *ev_fix_timeout; int is_running; int thread_up; int fd; @@ -365,6 +375,36 @@ vehicle_wince_available_ports(void) } +/** +* @brief This is a callback function, called when the fix timeout +* is done. Set the position to invalid. +* +* @param priv Pointer on the private data of the plugin +*/ +static void +vehicle_wince_fix_timeout_cb(struct vehicle_priv *priv) +{ + priv->valid = attr_position_valid_invalid; + priv->ev_fix_timeout = NULL; + callback_list_call_attr_0(priv->cbl, attr_position_coord_geo); +} + + +/** +* @brief Cancel previous fix timeout event and add a new one +* +* @param priv Pointer on the private data of the plugin +*/ +static void +vehicle_wince_restart_fix_timeout(struct vehicle_priv *priv) +{ + if (priv->ev_fix_timeout != NULL) + event_remove_timeout(priv->ev_fix_timeout); + priv->ev_fix_timeout = event_add_timeout(10000, 0, priv->cb_fix_timeout); +} + + + static int vehicle_wince_open(struct vehicle_priv *priv) { @@ -474,7 +514,7 @@ vehicle_wince_parse(struct vehicle_priv *priv, char *buffer) UTC of Fix[1],Latitude[2],N/S[3],Longitude[4],E/W[5],Quality(0=inv,1=gps,2=dgps)[6],Satelites used[7], HDOP[8],Altitude[9],"M"[10],height of geoid[11], "M"[12], time since dgps update[13], dgps ref station [14] */ - if (*item[2] && *item[3] && *item[4] && *item[5]) { + if (*item[2] && *item[3] && *item[4] && *item[5] && *item[6] > 0) { lat = g_ascii_strtod(item[2], NULL); priv->geo.lat = floor(lat / 100); lat -= priv->geo.lat * 100; @@ -490,20 +530,31 @@ vehicle_wince_parse(struct vehicle_priv *priv, char *buffer) if (!g_strcasecmp(item[5],"W")) priv->geo.lng=-priv->geo.lng; - priv->valid=attr_position_valid_valid; + + if (priv->valid == attr_position_valid_invalid) + ret = 1; + priv->valid = attr_position_valid_valid; + vehicle_wince_restart_fix_timeout(priv); + + if (*item[1] && strncmp(priv->fixtime, item[1], sizeof(priv->fixtime))) { + ret = 1; + strncpy(priv->fixtime, item[1], sizeof(priv->fixtime)); + } dbg(lvl_info, "latitude '%2.4f' longitude %2.4f\n", priv->geo.lat, priv->geo.lng); - } else + } else { + if (priv->valid == attr_position_valid_valid) + ret = 1; priv->valid=attr_position_valid_invalid; + } + if (*item[6]) sscanf(item[6], "%d", &priv->status); if (*item[7]) - sscanf(item[7], "%d", &priv->sats_used); + sscanf(item[7], "%d", &priv->sats_used); if (*item[8]) sscanf(item[8], "%lf", &priv->hdop); - if (*item[1]) - strncpy(priv->fixtime, item[1], sizeof(priv->fixtime)); if (*item[9]) sscanf(item[9], "%lf", &priv->height); @@ -547,8 +598,40 @@ vehicle_wince_parse(struct vehicle_priv *priv, char *buffer) &priv->fixmonth, &priv->fixyear); priv->fixyear += 2000; + + lat = g_ascii_strtod(item[3], NULL); + priv->geo.lat = floor(lat / 100); + lat -= priv->geo.lat * 100; + priv->geo.lat += lat / 60; + + if (!g_ascii_strcasecmp(item[4],"S")) + priv->geo.lat=-priv->geo.lat; + + lng = g_ascii_strtod(item[5], NULL); + priv->geo.lng = floor(lng / 100); + lng -= priv->geo.lng * 100; + priv->geo.lng += lng / 60; + + if (!g_ascii_strcasecmp(item[6],"W")) + priv->geo.lng=-priv->geo.lng; + + if (priv->valid == attr_position_valid_invalid) + ret = 1; + priv->valid=attr_position_valid_valid; + vehicle_wince_restart_fix_timeout(priv); + + if (*item[1] && strncmp(priv->fixtime, item[1], sizeof(priv->fixtime))) { + ret = 1; + strncpy(priv->fixtime, item[1], sizeof(priv->fixtime)); + } + + dbg(lvl_info, "latitude '%2.4f' longitude %2.4f\n", priv->geo.lat, priv->geo.lng); + + } else { + if (priv->valid == attr_position_valid_valid) + ret = 1; + priv->valid=attr_position_valid_invalid; } - ret = 1; } if (!strncmp(buffer, "$GPGSV", 6) && i >= 4) { /* @@ -741,7 +824,8 @@ vehicle_wince_destroy(struct vehicle_priv *priv) * @param priv vehicle_priv structure for the vehicle * @param type The attribute type to retrieve * @param attr Points to an attr structure that will receive the attribute data - * @returns True for success, false for failure + * + * @return True for success, false for failure */ static int vehicle_wince_position_attr_get(struct vehicle_priv *priv, @@ -863,10 +947,11 @@ struct vehicle_methods vehicle_wince_methods = { /** * @brief Creates a new wince_vehicle * - * @param meth - * @param cbl - * @param attrs - * @returns vehicle_priv + * @param meth ? + * @param cbl ? + * @param attrs ? + * + * @return vehicle_priv */ static struct vehicle_priv * vehicle_wince_new(struct vehicle_methods @@ -902,6 +987,8 @@ vehicle_wince_new(struct vehicle_methods ret->buffer = g_malloc(buffer_size); ret->time=1000; ret->baudrate=0; // do not change the rate if not configured + ret->fixtime[0] = '\0'; + ret->ev_fix_timeout = NULL; time = attr_search(attrs, NULL, attr_time); if (time) @@ -923,6 +1010,7 @@ vehicle_wince_new(struct vehicle_methods *meth = vehicle_wince_methods; ret->priv_cbl = callback_list_new(); callback_list_add(ret->priv_cbl, callback_new_1(callback_cast(vehicle_wince_io), ret)); + ret->cb_fix_timeout=callback_new_1(callback_cast(vehicle_wince_fix_timeout_cb), ret); ret->sat_item.type=type_position_sat; ret->sat_item.id_hi=ret->sat_item.id_lo=0; ret->sat_item.priv_data=ret; diff --git a/navit/xmlconfig.h b/navit/xmlconfig.h index 2a2600473..483f215d0 100644 --- a/navit/xmlconfig.h +++ b/navit/xmlconfig.h @@ -65,20 +65,51 @@ typedef void *(*object_func_ref)(void *); typedef void *(*object_func_unref)(void *); +/** + * @brief Basic functions for Navit objects + * + * This is the minimal list of functions which is supported by every Navit object. + * + * Some members can be NULL for certain object types: while Navit does not mandate this function to be + * implemented for every object class, the function may need to be defined for some object classes. + * + * Default implementations are available for every function in the list except `create`, `init` and + * `dup`. These can be set directly, or type-specific implementations can call through to them as they + * see fit. + */ struct object_func { - enum attr_type type; - void *(*create)(struct attr *parent, struct attr **attrs); - int (*get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter); - struct attr_iter *(*iter_new)(void *); - void (*iter_destroy)(struct attr_iter *); - int (*set_attr)(void *, struct attr *attr); - int (*add_attr)(void *, struct attr *attr); - int (*remove_attr)(void *, struct attr *attr); - int (*init)(void *); - void (*destroy)(void *); - void *(*dup)(void *); - void *(*ref)(void *); - void *(*unref)(void *); + enum attr_type type; /**< The object type */ + void *(*create)(struct attr *parent, struct attr **attrs); /**< Function to create a new object instance */ + int (*get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter); /**< Function + * to get an attribute of the object, + * set to `navit_object_get_attr` for default behavior */ + struct attr_iter *(*iter_new)(void *); /**< Function to obtain a new attribute iterator, + * set to `navit_object_attr_iter_new` for default + * behavior, can be NULL for some object types */ + void (*iter_destroy)(struct attr_iter *); /**< Function to destroy an attribute iterator, + * set to `navit_object_attr_iter_destroy` for default + * behavior, can be NULL for some object types */ + int (*set_attr)(void *, struct attr *attr); /**< Function to set an attribute, + * set to `navit_object_set_attr` for default behavior, + * can be NULL for some object types */ + int (*add_attr)(void *, struct attr *attr); /**< Function to add an attribute, + * set to `navit_object_add_attr` for default behavior, + * can be NULL for some object types */ + int (*remove_attr)(void *, struct attr *attr); /**< Function to remove an attribute, + * set to `navit_object_remove_attr` for default behavior, + * can be NULL for some object types */ + int (*init)(void *); /**< TODO, + * can be NULL for some object types */ + void (*destroy)(void *); /**< Function to destroy an object instance, + * set to `navit_object_destroy` for default behavior, + * can be NULL */ + void *(*dup)(void *); /**< Function to create a copy of an object instance */ + void *(*ref)(void *); /**< Function to increase the reference count for an + * object instance, set to `navit_object_ref` for + * default behavior, can be NULL for some object types */ + void *(*unref)(void *); /**< Function to decrease the reference count for an + * object instance, set to `navit_object_unref` for + * default behavior, can be NULL for some object types */ }; extern struct object_func map_func, mapset_func, navit_func, osd_func, tracking_func, vehicle_func, maps_func, layout_func, roadprofile_func, vehicleprofile_func, layer_func, config_func, profile_option_func, script_func, log_func, speech_func, navigation_func, route_func; diff --git a/po/cs.po.in b/po/cs.po.in index ab05a9c48..28a3ec959 100644 --- a/po/cs.po.in +++ b/po/cs.po.in @@ -1,11 +1,12 @@ # Čeština translations for navit -# Copyright (C) 2006-2016 The Navit Team +# Copyright (C) 2006-2017 The Navit Team # This file is distributed under the same license as the navit package. # Many thanks to the contributors of this translation: # 72ka https://launchpad.net/~2hp # Aleš Janda https://launchpad.net/~kyblicek # Ivan Kološ https://launchpad.net/~ivan-kolos # Jakuje https://launchpad.net/~jakuje +# Jiří Holubčík https://launchpad.net/~jery # MMlosh https://launchpad.net/~mmlosh # Marc0 https://launchpad.net/~z-ubuntuone-y # Mike Crash https://launchpad.net/~mike-mikecrash @@ -22,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: navit 0.5.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2016-07-12 16:13+0000\n" +"PO-Revision-Date: 2017-09-24 10:28+0000\n" "Last-Translator: Pavel Borecki <Unknown>\n" "Language-Team: Čeština\n" "MIME-Version: 1.0\n" @@ -33,7 +34,7 @@ msgstr "" "X-Report-Errors: https://translations.launchpad.net/navit/trunk/+pots/navit\n" msgid "Running from source directory\n" -msgstr "Běží ze zdrojového adresáře\n" +msgstr "Spuštěné ze zdrojové složky\n" #, c-format msgid "setting '%s' to '%s'\n" @@ -203,7 +204,7 @@ msgstr "Až to bude možné, otočte se" #. TRANSLATORS: the argument is the destination to follow #, c-format msgid "towards %s" -msgstr "" +msgstr "směrem na %s" #, c-format msgid "Follow the road for the next %s" @@ -215,7 +216,7 @@ msgstr "Brzy najeďte na kruhový objezd" #. TRANSLATORS: %s is the distance to the roundabout #, c-format msgid "Enter the roundabout %s" -msgstr "" +msgstr "Vjeďte na kruhový objezd po %s" msgid "then enter the roundabout" msgstr "poté vjeďte na kruhový objezd" @@ -272,7 +273,7 @@ msgstr "Opusťte komunikaci na sjezdu %1$s %2$s%3$s" #. TRANSLATORS: as in "Keep right at interchange 42 Greenmond-West" msgid "at interchange" -msgstr "" +msgstr "sjeďte" msgid "at exit" msgstr "na konci" @@ -285,7 +286,7 @@ msgstr "poté pokračujte přímo %1$s" #. TRANSLATORS: the first arg. is distance, the second is where to do the maneuver, the third is destination #, c-format msgid "Continue straight %1$s%2$s%3$s" -msgstr "" +msgstr "Pokračujte rovně %1$s%2$s%3$s" #. TRANSLATORS: the arg. is where to do the maneuver #, c-format @@ -295,7 +296,7 @@ msgstr "poté se držte vpravo%1$s" #. TRANSLATORS: the first arg. is distance, the second is where to do the maneuver, the third is destination #, c-format msgid "Keep right %1$s%2$s%3$s" -msgstr "" +msgstr "Držte se vpravo %1$s%2$s%3$s" #. TRANSLATORS: the arg. is where to do the maneuver #, c-format @@ -305,7 +306,7 @@ msgstr "poté se držte vlevo%1$s" #. TRANSLATORS: the first arg. is distance, the second is where to do the maneuver, the third is destination #, c-format msgid "Keep left %1$s%2$s%3$s" -msgstr "" +msgstr "Držte se vlevo %1$s%2$s%3$s" #. TRANSLATORS: "right" as in "turn right" msgid "right" @@ -371,7 +372,7 @@ msgstr "Otočte se %1$s" #. * #. msgid "follow" -msgstr "" +msgstr "následujte" msgid "then you have reached your destination." msgstr "pak budete v cíli." @@ -383,7 +384,7 @@ msgstr "%s dorazíte do cíle" #. TRANSLATORS: Exit as a noun, as in "Exit 43 Greenmound-East" msgid "Interchange" -msgstr "" +msgstr "Sjezd" msgid "Exit" msgstr "Ukončit" @@ -1592,7 +1593,7 @@ msgid "Opens address search dialog" msgstr "Otevře vyhledávání adres" msgid "_POI search" -msgstr "" +msgstr "_POI hledat" msgid "Opens POI search dialog" msgstr "Otevře dialog vyhledávání POI" @@ -1689,7 +1690,7 @@ msgstr "Vzdálenost od středu mapy (km)" #, c-format msgid "POI %s. %s" -msgstr "" +msgstr "POI %s. %s" #, c-format msgid "Set destination to %ld, %ld \n" @@ -1983,7 +1984,7 @@ msgid "Height Profile" msgstr "Výškový profil" msgid "please install a map *.heightlines.bin to provide elevationdata" -msgstr "" +msgstr "pro výškové údaje nainstalujte mapu *.heightlines.bin" msgid "The route must cross at least 2 heightlines" msgstr "" @@ -1994,6 +1995,9 @@ msgstr "Popis trasy" msgid "Show Locale" msgstr "Zobrazit jazyk" +msgid "Network info" +msgstr "Informace o síti" + msgid "Former Destinations" msgstr "Minulé cíle" @@ -2448,7 +2452,7 @@ msgid "ready" msgstr "mapa připravena" msgid "Media selected for map storage is not available" -msgstr "" +msgstr "Médium zvolené pro uchovávání map není k dispozici" #. Android resource: @strings/map_download_not_enough_free_space msgid "Not enough free space" @@ -2528,8 +2532,17 @@ msgstr "Celá obrazovka" msgid "Window Mode" msgstr "V okně" +msgid "Auto zoom" +msgstr "Automatické přiblížení" + +msgid "Manual zoom" +msgstr "Ruční přiblížení" + msgid "Layers" -msgstr "" +msgstr "Vrstvy" + +msgid "Zoom to route" +msgstr "Přiblížit trasu" msgid "Description" msgstr "Popis" @@ -2641,7 +2654,7 @@ msgstr "Zálohovat / Obnovit" #. Android resource: @strings/optionsmenu_set_map_location msgid "Set map location" -msgstr "" +msgstr "Nastavit umístění mapy" #. Android resource: @strings/map_delete msgid "Delete this map?" @@ -2782,6 +2795,16 @@ msgid "" "Should we ask the system to show voice download dialog?" msgstr "" +#. Android resource: @strings/permissions_not_granted +msgid "" +"Navit needs permission to access GPS and read the map.\n" +"If you change your mind please restart Navit and grant the permissions" +msgstr "" + +#. Android resource: @strings/permissions_info_box_title +msgid "One or more ungranted permissions" +msgstr "Chybí přinejmenším jedno oprávnění" + #, c-format #~ msgid "then leave the roundabout at the %1$s %2$s" #~ msgstr "pak sjeďte na %1$s %2$s" diff --git a/po/es.po.in b/po/es.po.in index 4946a6233..bbd11a961 100644 --- a/po/es.po.in +++ b/po/es.po.in @@ -1,5 +1,5 @@ # Spanish translations for navit -# Copyright (C) 2006-2016 The Navit Team +# Copyright (C) 2006-2017 The Navit Team # This file is distributed under the same license as the navit package. # Many thanks to the contributors of this translation: # Benjamín Valero Espinosa https://launchpad.net/~benjavalero @@ -8,6 +8,7 @@ # Emilio Gomez Fernandez https://launchpad.net/~egofer # Feder Sáiz https://launchpad.net/~federsaiz-deactivatedaccount # Inaki Saez https://launchpad.net/~inaki-saez +# Iñigo Huguet https://launchpad.net/~inigohuguet # Jonay https://launchpad.net/~jonay-santana # KaZeR https://launchpad.net/~kazer # Kenneth Belitzky https://launchpad.net/~r-kenny @@ -26,8 +27,8 @@ msgid "" msgstr "" "Project-Id-Version: navit 0.5.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2016-06-21 22:51+0000\n" -"Last-Translator: Kenneth Belitzky <kenny@belitzky.com>\n" +"PO-Revision-Date: 2017-09-26 07:01+0000\n" +"Last-Translator: Iñigo Huguet <inigohuguet@hotmail.com>\n" "Language-Team: Chris Eubank <cteubank@gmail.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -174,7 +175,7 @@ msgstr "en el carril de entrada" #. TRANSLATORS: Arguments: 1: Prefix (Space if required) 2: Street Name 3: Separator (Space if required), 4: Systematic Street Name #, c-format msgid "%sinto %s%s%s" -msgstr "%sen la calle %s%s%s" +msgstr "%sen %s%s%s" #. TRANSLATORS: Arguments: 1: Prefix (Space if required) 2: Street Name 3: Separator (Space if required), 4: Systematic Street Name. Masculine form. The stuff after | doesn't have to be included #, c-format @@ -189,7 +190,7 @@ msgstr "%sen la %s%s%s" #. TRANSLATORS: Arguments: 1: Prefix (Space if required) 2: Street Name 3: Separator (Space if required), 4: Systematic Street Name. Neuter form. The stuff after | doesn't have to be included #, c-format msgid "%sinto %s%s%s|neuter form" -msgstr "%sen la calle %s%s%s" +msgstr "%sen %s%s%s" #. TRANSLATORS: gives the name of the next road to turn into (into the E17) #, c-format @@ -214,10 +215,10 @@ msgstr "Entre en la próxima rotonda" #. TRANSLATORS: %s is the distance to the roundabout #, c-format msgid "Enter the roundabout %s" -msgstr "Entrar en la rotonda de %s" +msgstr "Entre en la rotonda %s" msgid "then enter the roundabout" -msgstr "luego entrar en la rotonda" +msgstr "luego entre en la rotonda" #. TRANSLATORS: first arg. is the manieth exit, second arg. is the destination to follow #, c-format @@ -1453,6 +1454,16 @@ msgid "" "\t-h: print this usage info and exit.\n" "\t-v: print the version and exit.\n" msgstr "" +"uso de navit:\n" +"navit [opciones][archivo config]\n" +"\t-c <archivo>: usa <archivo> como archivo de configuración en lugar del " +"archivo por defecto.\n" +"\t-d <n>: fija el nivel global de salida de debug a <n> (0=error, 1=warning, " +"2=info, 3=debug).\n" +"\tLas configuraciones del archivo de configuración aún tendrán efecto donde " +"fijen un nivel mayor.\n" +"\t-h: muestra este mensaje de ayuda y termina.\n" +"\t-v: muestra la versión y termina.\n" #. We have not found an existing config file from all possibilities msgid "No config file navit.xml, navit.xml.local found\n" @@ -1470,6 +1481,7 @@ msgstr "Usando el fichero de configuración '%s'\n" #, c-format msgid "Error: No configuration found in config file '%s'\n" msgstr "" +"Error: No se encontró la configuración en el archivo de configuración '%s'\n" msgid "" "Internal initialization failed, exiting. Check previous error messages.\n" @@ -1716,7 +1728,7 @@ msgid "Select a POI" msgstr "Seleccionar un POI" msgid " " -msgstr "" +msgstr " " msgid "Category" msgstr "Categoría" @@ -1984,9 +1996,11 @@ msgstr "Perfil de altura" msgid "please install a map *.heightlines.bin to provide elevationdata" msgstr "" +"por favor, instale un mapa *.heightlines.bin para suministrar información de " +"altimetría." msgid "The route must cross at least 2 heightlines" -msgstr "" +msgstr "La ruta cruza al menos 2 curvas de nivel" msgid "Route Description" msgstr "Descripción de ruta" @@ -1994,6 +2008,9 @@ msgstr "Descripción de ruta" msgid "Show Locale" msgstr "Mostrar locale" +msgid "Network info" +msgstr "Info. de red" + msgid "Former Destinations" msgstr "Destinos anteriores" @@ -2535,9 +2552,18 @@ msgstr "Pantalla completa" msgid "Window Mode" msgstr "Modo ventana" +msgid "Auto zoom" +msgstr "Zoom automático" + +msgid "Manual zoom" +msgstr "Zoom manual" + msgid "Layers" msgstr "" +msgid "Zoom to route" +msgstr "Zoom a ruta" + msgid "Description" msgstr "Descripción" @@ -2789,6 +2815,18 @@ msgid "" "Should we ask the system to show voice download dialog?" msgstr "" +#. Android resource: @strings/permissions_not_granted +msgid "" +"Navit needs permission to access GPS and read the map.\n" +"If you change your mind please restart Navit and grant the permissions" +msgstr "" +"Navit necesita permiso para acceder al GPS y abrir el mapa.\n" +"Si cambia de opinión, por favor reinicie Navit y conceda los permisos." + +#. Android resource: @strings/permissions_info_box_title +msgid "One or more ungranted permissions" +msgstr "Uno o más permisos rechazados" + #, c-format #~ msgid "then leave the roundabout at the %1$s %2$s" #~ msgstr "después salga de la rotonda por la %1$s %2$s" diff --git a/po/fr.po.in b/po/fr.po.in index 5300b85d2..17c40e85c 100644 --- a/po/fr.po.in +++ b/po/fr.po.in @@ -1,11 +1,12 @@ # French (fr) translations for navit -# Copyright (C) 2006-2016 The Navit Team +# Copyright (C) 2006-2017 The Navit Team # This file is distributed under the same license as the navit package. # Many thanks to the contributors of this translation: # Arnaud https://launchpad.net/~arnaud-lemeur # Breizh_Punisher https://launchpad.net/~lemeura # Deuchnord https://launchpad.net/~jerome-logiciels-id # Elodie https://launchpad.net/~elodie +# Francois.Mocq https://launchpad.net/~francois-mocq # Fred https://launchpad.net/~frederi1 # Fred https://launchpad.net/~jelk # Gaël Ecorchard https://launchpad.net/~galou-breizh @@ -31,8 +32,8 @@ msgid "" msgstr "" "Project-Id-Version: navit 0.5.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2016-09-29 12:45+0000\n" -"Last-Translator: Fred <frederi1@gmail.com>\n" +"PO-Revision-Date: 2017-10-08 23:54+0000\n" +"Last-Translator: KaZeR <Unknown>\n" "Language-Team: KaZeR <kazer@altern.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2013,6 +2014,9 @@ msgstr "Description de la route" msgid "Show Locale" msgstr "Afficher la locale" +msgid "Network info" +msgstr "" + msgid "Former Destinations" msgstr "Destinations précédentes" @@ -2484,7 +2488,7 @@ msgid "Error writing map!" msgstr "Erreur d'écriture de carte !" msgid "Map download aborted!" -msgstr "Téléchargement de carte abondonné !" +msgstr "Téléchargement de la carte abandonné!" #. Android resource: @strings/map_download_eta msgid "ETA" @@ -2492,7 +2496,7 @@ msgstr "Temps restant" #. Android resource: @strings/map_download_title msgid "Map download" -msgstr "Carte téléchargement" +msgstr "Télécharger la carte" msgid "Vehicle Position" msgstr "Position du véhicule" @@ -2551,9 +2555,18 @@ msgstr "Plein écran" msgid "Window Mode" msgstr "Mode fenêtré" +msgid "Auto zoom" +msgstr "" + +msgid "Manual zoom" +msgstr "" + msgid "Layers" msgstr "Couches" +msgid "Zoom to route" +msgstr "" + msgid "Description" msgstr "Description" @@ -2656,7 +2669,7 @@ msgstr "Basculer POIs" #. Android resource: @strings/optionsmenu_exit_navit msgid "Exit Navit" -msgstr "Quittez Navit" +msgstr "Quitter Navit" #. Android resource: @strings/optionsmenu_backup_restore msgid "Backup / Restore" @@ -2680,7 +2693,7 @@ msgstr "Erreur de téléchargement carte" #. Android resource: @strings/map_download_download_aborted msgid "Map download aborted" -msgstr "Carte télécharger avortée" +msgstr "Téléchargement de la carte abandonné" #. Android resource: @strings/map_no_fix msgid "No location. Reopen after location fix." @@ -2809,6 +2822,16 @@ msgstr "" "parler dans votre langue. Devons nous demander au système d'afficher le menu " "de téléchargement des voix?" +#. Android resource: @strings/permissions_not_granted +msgid "" +"Navit needs permission to access GPS and read the map.\n" +"If you change your mind please restart Navit and grant the permissions" +msgstr "" + +#. Android resource: @strings/permissions_info_box_title +msgid "One or more ungranted permissions" +msgstr "" + #, c-format #~ msgid "then leave the roundabout at the %1$s %2$s" #~ msgstr "puis sortez du rond-point à la %1$s %2$s" |