Compare commits
1 Commits
2025.08.10
...
2025.06.10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99591d1e54 |
@@ -1,59 +1,48 @@
|
|||||||
# Configuration file for clang-format, based on docs/CPP_STYLE.md.
|
# Configuration file for clang-format, based on docs/CPP_STYLE.md.
|
||||||
|
|
||||||
|
---
|
||||||
BasedOnStyle: Google
|
BasedOnStyle: Google
|
||||||
|
|
||||||
AccessModifierOffset: -2
|
AccessModifierOffset: -2
|
||||||
AlignAfterOpenBracket: Align
|
|
||||||
AlignArrayOfStructures: Right
|
|
||||||
AlignConsecutiveMacros: AcrossEmptyLinesAndComments
|
|
||||||
AlignEscapedNewlines: LeftWithLastLine
|
|
||||||
AlignOperands: AlignAfterOperator
|
AlignOperands: AlignAfterOperator
|
||||||
AllowShortBlocksOnASingleLine: Empty
|
AllowShortBlocksOnASingleLine: Empty
|
||||||
AllowShortCaseLabelsOnASingleLine: true
|
|
||||||
AllowShortFunctionsOnASingleLine: Inline
|
|
||||||
AllowShortIfStatementsOnASingleLine: Never
|
AllowShortIfStatementsOnASingleLine: Never
|
||||||
AllowShortLoopsOnASingleLine: false
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: true
|
||||||
BraceWrapping:
|
BraceWrapping:
|
||||||
AfterCaseLabel: true
|
AfterCaseLabel: true
|
||||||
AfterClass: true
|
AfterClass: true
|
||||||
AfterControlStatement: Always
|
AfterControlStatement: Always
|
||||||
AfterEnum: true
|
AfterEnum: true
|
||||||
AfterExternBlock: true
|
|
||||||
AfterFunction: true
|
AfterFunction: true
|
||||||
AfterNamespace: true
|
AfterNamespace: true
|
||||||
AfterObjCDeclaration: true
|
AfterObjCDeclaration: true
|
||||||
AfterStruct: true
|
AfterStruct: true
|
||||||
AfterUnion: true
|
AfterUnion: true
|
||||||
|
AfterExternBlock: true
|
||||||
BeforeCatch: true
|
BeforeCatch: true
|
||||||
BeforeElse: true
|
BeforeElse: true
|
||||||
BeforeLambdaBody: true
|
BeforeLambdaBody: true
|
||||||
BeforeWhile: true
|
BeforeWhile: true
|
||||||
|
IndentBraces: false
|
||||||
SplitEmptyFunction: false
|
SplitEmptyFunction: false
|
||||||
SplitEmptyNamespace: false
|
|
||||||
SplitEmptyRecord: false
|
SplitEmptyRecord: false
|
||||||
BinPackArguments: true
|
SplitEmptyNamespace: false
|
||||||
BinPackParameters: true
|
|
||||||
BreakAfterJavaFieldAnnotations: true
|
|
||||||
BreakBeforeBraces: Custom
|
BreakBeforeBraces: Custom
|
||||||
BreakConstructorInitializers: BeforeComma
|
BreakConstructorInitializers: BeforeComma
|
||||||
BreakInheritanceList: BeforeComma
|
BreakInheritanceList: BeforeComma
|
||||||
ColumnLimit: 120
|
ColumnLimit: 120
|
||||||
ConstructorInitializerIndentWidth: 2
|
ConstructorInitializerIndentWidth: 2
|
||||||
ContinuationIndentWidth: 4
|
ContinuationIndentWidth: 2
|
||||||
DerivePointerAlignment: false
|
DerivePointerAlignment: false
|
||||||
IncludeBlocks: Preserve
|
IncludeBlocks: Preserve
|
||||||
IndentAccessModifiers: false
|
IndentCaseLabels: false
|
||||||
IndentExternBlock: NoIndent
|
IndentExternBlock: NoIndent
|
||||||
InsertBraces: false
|
|
||||||
InsertNewlineAtEOF: true
|
InsertNewlineAtEOF: true
|
||||||
LambdaBodyIndentation: OuterScope
|
PackConstructorInitializers: Never
|
||||||
PackConstructorInitializers: CurrentLine
|
|
||||||
PointerAlignment: Middle
|
PointerAlignment: Middle
|
||||||
RemoveBracesLLVM: true
|
|
||||||
QualifierAlignment: Right
|
QualifierAlignment: Right
|
||||||
SpacesInContainerLiterals: false
|
SpacesInContainerLiterals: false
|
||||||
Standard: Latest
|
Standard: Latest
|
||||||
TabWidth: 2
|
TabWidth: 2
|
||||||
|
UseTab: Never
|
||||||
---
|
|
||||||
Language: Java
|
|
||||||
AllowShortFunctionsOnASingleLine: Empty
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
name: 🐞 Bug Report
|
name: 🐞 Bug Report
|
||||||
description: Report a problem you've encountered
|
description: Report a problem you've encountered
|
||||||
|
title: "bug: "
|
||||||
labels:
|
labels:
|
||||||
- bug
|
- bug
|
||||||
body:
|
body:
|
||||||
@@ -66,4 +67,4 @@ body:
|
|||||||
label: Additional context
|
label: Additional context
|
||||||
description: Add any other context or comments that may be useful.
|
description: Add any other context or comments that may be useful.
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
name: "💡 Feature Request"
|
name: "💡 Feature Request"
|
||||||
description: "Suggest an idea or improvement for CoMaps"
|
description: "Suggest an idea or improvement for CoMaps"
|
||||||
|
title: "feat: "
|
||||||
labels:
|
labels:
|
||||||
- "enhancement"
|
- "enhancement"
|
||||||
body:
|
body:
|
||||||
@@ -43,4 +44,4 @@ body:
|
|||||||
label: "Additional context"
|
label: "Additional context"
|
||||||
description: "Any other context, comments, or screenshots to support your request."
|
description: "Any other context, comments, or screenshots to support your request."
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
@@ -32,12 +32,13 @@ on:
|
|||||||
- track_generator/**
|
- track_generator/**
|
||||||
- xcode/**
|
- xcode/**
|
||||||
|
|
||||||
|
env:
|
||||||
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
android-google-beta:
|
android-google-beta:
|
||||||
name: Android Google Beta
|
name: Android Google Beta
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: runmymind/docker-android-sdk:latest
|
|
||||||
environment: beta
|
environment: beta
|
||||||
steps:
|
steps:
|
||||||
- name: Install build tools and dependencies
|
- name: Install build tools and dependencies
|
||||||
@@ -70,6 +71,10 @@ jobs:
|
|||||||
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
|
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
|
||||||
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
|
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Compile
|
- name: Compile
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: android
|
working-directory: android
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
android-check-metadata:
|
android-check-metadata:
|
||||||
name: Check app metadata
|
name: Check app metadata
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -34,12 +34,13 @@ on:
|
|||||||
- track_generator/**
|
- track_generator/**
|
||||||
- xcode/**
|
- xcode/**
|
||||||
|
|
||||||
|
env:
|
||||||
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
name: Android Lint
|
name: Android Lint
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: runmymind/docker-android-sdk:latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -50,6 +51,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: android
|
working-directory: android
|
||||||
@@ -58,8 +63,6 @@ jobs:
|
|||||||
android-check:
|
android-check:
|
||||||
name: Build Android Debug
|
name: Build Android Debug
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: runmymind/docker-android-sdk:latest
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -90,6 +93,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -4,9 +4,12 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: '0 5 * * 0' # Once per week at 05:00 UTC
|
- cron: '0 5 * * 0' # Once per week at 05:00 UTC
|
||||||
|
|
||||||
|
env:
|
||||||
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
precondition:
|
precondition:
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-latest
|
||||||
name: Check preconditions
|
name: Check preconditions
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
@@ -31,8 +34,6 @@ jobs:
|
|||||||
android-google-beta:
|
android-google-beta:
|
||||||
name: Android Google Beta
|
name: Android Google Beta
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: runmymind/docker-android-sdk:latest
|
|
||||||
needs: precondition
|
needs: precondition
|
||||||
if: ${{ needs.precondition.outputs.updated != '' }}
|
if: ${{ needs.precondition.outputs.updated != '' }}
|
||||||
environment: beta
|
environment: beta
|
||||||
@@ -72,6 +73,10 @@ jobs:
|
|||||||
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
|
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
|
||||||
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
|
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Compile
|
- name: Compile
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: android
|
working-directory: android
|
||||||
|
|||||||
@@ -2,12 +2,13 @@ name: Android Release Metadata
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
|
|
||||||
|
env:
|
||||||
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
android-release-metadata:
|
android-release-metadata:
|
||||||
name: Upload Google Play metadata
|
name: Upload Google Play metadata
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: runmymind/docker-android-sdk:latest
|
|
||||||
environment: production
|
environment: production
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
|
|||||||
@@ -5,13 +5,12 @@ on:
|
|||||||
env:
|
env:
|
||||||
RELEASE_NOTES: android/app/src/google/play/release-notes/en-US/default.txt
|
RELEASE_NOTES: android/app/src/google/play/release-notes/en-US/default.txt
|
||||||
FDROID_VERSION: android/app/src/fdroid/play/version.yaml
|
FDROID_VERSION: android/app/src/fdroid/play/version.yaml
|
||||||
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tag:
|
tag:
|
||||||
name: Tag
|
name: Tag
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: runmymind/docker-android-sdk:latest
|
|
||||||
environment: production
|
environment: production
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
@@ -118,6 +117,10 @@ jobs:
|
|||||||
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
|
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
|
||||||
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
|
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Set up SDK
|
- name: Set up SDK
|
||||||
shell: bash
|
shell: bash
|
||||||
run: echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
|
run: echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
|
||||||
|
|||||||
@@ -3,20 +3,20 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- packaging/app.comaps.comaps.metainfo.xml
|
- packaging/app.organicmaps.desktop.metainfo.xml
|
||||||
- .forgejo/workflows/appstream-check.yaml # Run check on self change
|
- .forgejo/workflows/appstream-check.yaml # Run check on self change
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-appstream:
|
validate-appstream:
|
||||||
name: Validate appstream metadata xml
|
name: Validate appstream metadata xml
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
sparse-checkout: |
|
sparse-checkout: |
|
||||||
packaging/app.comaps.comaps.metainfo.xml
|
packaging/app.organicmaps.desktop.metainfo.xml
|
||||||
|
|
||||||
- name: Install appstream validator and flatpak Builder
|
- name: Install appstream validator and flatpak Builder
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -29,8 +29,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Lint appstream data with flatpak Builder
|
- name: Lint appstream data with flatpak Builder
|
||||||
shell: bash
|
shell: bash
|
||||||
run: flatpak run --command=flatpak-builder-lint org.flatpak.Builder appstream packaging/app.comaps.comaps.metainfo.xml
|
run: flatpak run --command=flatpak-builder-lint org.flatpak.Builder appstream packaging/app.organicmaps.desktop.metainfo.xml
|
||||||
|
|
||||||
- name: Run appstreamcli in pedantic mode
|
- name: Run appstreamcli in pedantic mode
|
||||||
shell: bash
|
shell: bash
|
||||||
run: flatpak run --command=appstreamcli org.flatpak.Builder validate --pedantic packaging/app.comaps.comaps.metainfo.xml
|
run: flatpak run --command=appstreamcli org.flatpak.Builder validate --pedantic packaging/app.organicmaps.desktop.metainfo.xml
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ concurrency:
|
|||||||
jobs:
|
jobs:
|
||||||
should-run-check:
|
should-run-check:
|
||||||
name: Should run coverage
|
name: Should run coverage
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-24.04
|
||||||
outputs:
|
outputs:
|
||||||
run-from-pr: ${{ steps.run-from-pr.outputs.run-from-pr }}
|
run-from-pr: ${{ steps.run-from-pr.outputs.run-from-pr }}
|
||||||
manually-triggered: ${{ steps.manually-triggered.outputs.manually-triggered }}
|
manually-triggered: ${{ steps.manually-triggered.outputs.manually-triggered }}
|
||||||
@@ -59,9 +59,14 @@ jobs:
|
|||||||
coverage:
|
coverage:
|
||||||
needs: should-run-check
|
needs: should-run-check
|
||||||
name: Generate coverage report
|
name: Generate coverage report
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04
|
||||||
if: ${{ needs.should-run-check.outputs.run-from-pr == 'true' || needs.should-run-check.outputs.manually-triggered == 'true'}}
|
if: ${{ needs.should-run-check.outputs.run-from-pr == 'true' || needs.should-run-check.outputs.manually-triggered == 'true'}}
|
||||||
steps:
|
steps:
|
||||||
|
- name: Free disk space by removing .NET, Android and Haskell
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
|
||||||
|
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -89,6 +94,10 @@ jobs:
|
|||||||
llvm \
|
llvm \
|
||||||
gcovr
|
gcovr
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
name: dco
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
runs-on: codeberg-tiny
|
|
||||||
steps:
|
|
||||||
- uses: https://github.com/KineticCafe/actions-dco@v1
|
|
||||||
@@ -3,20 +3,20 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- qt/res/app.comaps.comaps.desktop
|
- qt/res/app.organicmaps.desktop.desktop
|
||||||
- .forgejo/workflows/desktop-file-check.yaml # Run check on self change
|
- .forgejo/workflows/desktop-file-check.yaml # Run check on self change
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-desktop-file:
|
validate-desktop-file:
|
||||||
name: Validate .desktop file
|
name: Validate .desktop file
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
sparse-checkout: |
|
sparse-checkout: |
|
||||||
qt/res/app.comaps.comaps.desktop
|
qt/res/app.organicmaps.desktop.desktop
|
||||||
|
|
||||||
- name: Install desktop-file-validate tool
|
- name: Install desktop-file-validate tool
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -27,4 +27,4 @@ jobs:
|
|||||||
|
|
||||||
- name: Validate desktop file
|
- name: Validate desktop file
|
||||||
shell: bash
|
shell: bash
|
||||||
run: desktop-file-validate qt/res/app.comaps.comaps.desktop && echo "Successfully validated .desktop file"
|
run: desktop-file-validate qt/res/app.organicmaps.desktop.desktop && echo "Successfully validated .desktop file"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
ios-check-metadata:
|
ios-check-metadata:
|
||||||
name: Check app metadata
|
name: Check app metadata
|
||||||
runs-on: codeberg-tiny
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ jobs:
|
|||||||
LANG: en_US.UTF-8 # Fastlane complains that the terminal is using ASCII.
|
LANG: en_US.UTF-8 # Fastlane complains that the terminal is using ASCII.
|
||||||
LANGUAGE: en_US.UTF-8
|
LANGUAGE: en_US.UTF-8
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
TEST_RESULTS_BUNDLE_NAME: CoMaps-Test-Results
|
TEST_RESULTS_BUNDLE_NAME: OMaps-Test-Results
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -74,8 +74,8 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
xcodebuild test \
|
xcodebuild test \
|
||||||
-workspace xcode/CoMaps.xcworkspace \
|
-workspace xcode/omim.xcworkspace \
|
||||||
-scheme CoMaps \
|
-scheme OMaps \
|
||||||
-configuration Debug \
|
-configuration Debug \
|
||||||
-sdk iphonesimulator \
|
-sdk iphonesimulator \
|
||||||
-destination 'platform=iOS Simulator,name=iPhone 16 Pro Max,OS=latest' \
|
-destination 'platform=iOS Simulator,name=iPhone 16 Pro Max,OS=latest' \
|
||||||
@@ -97,10 +97,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
xcodebuild build \
|
xcodebuild build \
|
||||||
-workspace xcode/CoMaps.xcworkspace \
|
-workspace xcode/omim.xcworkspace \
|
||||||
-scheme CoMaps \
|
-scheme OMaps \
|
||||||
-configuration Release \
|
-configuration Release \
|
||||||
-destination 'generic/platform=iOS' \
|
-destination 'generic/platform=iOS' \
|
||||||
-quiet \
|
-quiet \
|
||||||
CODE_SIGNING_REQUIRED=NO \
|
CODE_SIGNING_REQUIRED=NO \
|
||||||
CODE_SIGNING_ALLOWED=NO
|
CODE_SIGNING_ALLOWED=NO
|
||||||
@@ -31,13 +31,18 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
linux-no-unity:
|
linux-no-unity:
|
||||||
name: Linux no unity build
|
name: Linux no unity build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04
|
||||||
# Cancels previous jobs if the same branch or PR was updated again.
|
# Cancels previous jobs if the same branch or PR was updated again.
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-no-unity-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-no-unity-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Free disk space by removing .NET, Android and Haskell
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
|
||||||
|
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -66,6 +71,10 @@ jobs:
|
|||||||
libqt6positioning6-plugins \
|
libqt6positioning6-plugins \
|
||||||
libqt6positioning6
|
libqt6positioning6
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
@@ -90,7 +99,7 @@ jobs:
|
|||||||
|
|
||||||
linux-matrix:
|
linux-matrix:
|
||||||
name: Linux builds and tests
|
name: Linux builds and tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -102,6 +111,11 @@ jobs:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Free disk space by removing .NET, Android and Haskell
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
|
||||||
|
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
@@ -128,6 +142,10 @@ jobs:
|
|||||||
libqt6positioning6-plugins \
|
libqt6positioning6-plugins \
|
||||||
libqt6positioning6
|
libqt6positioning6
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install ninja qt@6
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install ninja qt@6
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
|
|||||||
9
.github/workflows/android-check.yaml
vendored
@@ -7,7 +7,6 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
SKIP_MAP_DOWNLOAD: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
@@ -23,6 +22,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||||
|
|
||||||
|
- name: Init boost, generate textures
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh --skip-map-download
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: android
|
working-directory: android
|
||||||
@@ -73,6 +76,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||||
|
|
||||||
|
- name: Init boost, generate textures
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh --skip-map-download
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
|
|||||||
43
.github/workflows/clang-format.yaml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name: clang-format
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
paths:
|
|
||||||
- 'android/app/src/**.java'
|
|
||||||
- '.clang-format'
|
|
||||||
- '.github/workflows/clang-format.yml'
|
|
||||||
pull_request:
|
|
||||||
branches: [ master ]
|
|
||||||
paths:
|
|
||||||
- 'android/app/src/**.java'
|
|
||||||
- '.clang-format'
|
|
||||||
- '.github/workflows/clang-format.yml'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-formatting:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
continue-on-error: true # TODO(AB): Remove this line when ready to enforce formatting.
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install clang-format
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y clang-format-19
|
|
||||||
clang-format-19 --version
|
|
||||||
|
|
||||||
- name: Check Java formatting
|
|
||||||
run: |
|
|
||||||
JAVA_FILES=($(find android/app/src -name '*.java'))
|
|
||||||
|
|
||||||
FORMATTING_ISSUES=$(clang-format-19 --dry-run --Werror $JAVA_FILES 2>&1 || true)
|
|
||||||
|
|
||||||
if [ -n "$FORMATTING_ISSUES" ]; then
|
|
||||||
echo "$FORMATTING_ISSUES"
|
|
||||||
echo ""
|
|
||||||
echo "To fix formatting, please run:"
|
|
||||||
echo " clang-format -i <file>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
16
.github/workflows/ios-check.yaml
vendored
@@ -15,7 +15,6 @@ jobs:
|
|||||||
LANGUAGE: en_US.UTF-8
|
LANGUAGE: en_US.UTF-8
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
TEST_RESULTS_BUNDLE_NAME: CoMaps-Test-Results
|
TEST_RESULTS_BUNDLE_NAME: CoMaps-Test-Results
|
||||||
SIMULATOR_DEVICE: 'iPhone 16 Pro Max'
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -37,7 +36,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
|
||||||
|
|
||||||
- name: Configure repository
|
- name: Init boost, download World map, generate textures
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./configure.sh
|
run: ./configure.sh
|
||||||
|
|
||||||
@@ -51,15 +50,12 @@ jobs:
|
|||||||
if: matrix.buildType == 'Debug'
|
if: matrix.buildType == 'Debug'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
# Start sim before the build to make sure it's booted when tests start.
|
|
||||||
xcrun simctl boot "${{ env.SIMULATOR_DEVICE }}" || true
|
|
||||||
xcrun simctl bootstatus "${{ env.SIMULATOR_DEVICE }}" -b
|
|
||||||
xcodebuild test \
|
xcodebuild test \
|
||||||
-workspace xcode/CoMaps.xcworkspace \
|
-workspace xcode/omim.xcworkspace \
|
||||||
-scheme CoMaps \
|
-scheme OMaps \
|
||||||
-configuration Debug \
|
-configuration Debug \
|
||||||
-sdk iphonesimulator \
|
-sdk iphonesimulator \
|
||||||
-destination "platform=iOS Simulator,name=${{ env.SIMULATOR_DEVICE }},OS=latest" \
|
-destination 'platform=iOS Simulator,name=iPhone 16 Pro Max,OS=latest' \
|
||||||
-quiet \
|
-quiet \
|
||||||
-resultBundlePath ${{ env.TEST_RESULTS_BUNDLE_NAME }}.xcresult \
|
-resultBundlePath ${{ env.TEST_RESULTS_BUNDLE_NAME }}.xcresult \
|
||||||
CODE_SIGNING_REQUIRED=NO \
|
CODE_SIGNING_REQUIRED=NO \
|
||||||
@@ -78,8 +74,8 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
xcodebuild build \
|
xcodebuild build \
|
||||||
-workspace xcode/CoMaps.xcworkspace \
|
-workspace xcode/omim.xcworkspace \
|
||||||
-scheme CoMaps \
|
-scheme OMaps \
|
||||||
-configuration Release \
|
-configuration Release \
|
||||||
-destination 'generic/platform=iOS' \
|
-destination 'generic/platform=iOS' \
|
||||||
-quiet \
|
-quiet \
|
||||||
|
|||||||
21
.gitignore
vendored
@@ -14,24 +14,18 @@ stxxl.errlog
|
|||||||
stxxl.log
|
stxxl.log
|
||||||
screenlog.0
|
screenlog.0
|
||||||
|
|
||||||
data/symbols/*/design/
|
data/styles/*/*/out/*
|
||||||
|
data/resources-*_design/*
|
||||||
# symbols png/sdf are now generated at build
|
# symbols png/sdf are now generated at build
|
||||||
data/symbols/**/symbols.png
|
data/resources-*_*/symbols.png
|
||||||
data/symbols/**/symbols.sdf
|
data/resources-*_*/symbols.sdf
|
||||||
|
data/drules_proto_default_design.bin
|
||||||
data/colors_design.txt
|
data/colors_design.txt
|
||||||
data/patterns_design.txt
|
data/patterns_design.txt
|
||||||
data/bookmarks
|
data/bookmarks
|
||||||
data/edits.xml
|
data/edits.xml
|
||||||
data/World.mwm
|
data/World.mwm
|
||||||
data/WorldCoasts.mwm
|
data/WorldCoasts.mwm
|
||||||
data/world_mwm/*
|
|
||||||
data/*_hash
|
|
||||||
data/drules_proto*
|
|
||||||
data/classificator.txt
|
|
||||||
data/types.txt
|
|
||||||
data/visibility.txt
|
|
||||||
data/colors.txt
|
|
||||||
data/patterns.txt
|
|
||||||
|
|
||||||
# Compiled Python
|
# Compiled Python
|
||||||
*.pyc
|
*.pyc
|
||||||
@@ -52,7 +46,8 @@ omim.sdf
|
|||||||
*.rc
|
*.rc
|
||||||
!qt/res/windows.rc
|
!qt/res/windows.rc
|
||||||
*.pdb
|
*.pdb
|
||||||
out/
|
out/*
|
||||||
|
qt/mapswithme.log
|
||||||
|
|
||||||
# XCode
|
# XCode
|
||||||
xcode/keys/*
|
xcode/keys/*
|
||||||
@@ -67,7 +62,7 @@ iphone/*/build/*
|
|||||||
tools/emacsmode/build
|
tools/emacsmode/build
|
||||||
**/DerivedData/*
|
**/DerivedData/*
|
||||||
**/xcshareddata/*
|
**/xcshareddata/*
|
||||||
!iphone/Maps/Maps.xcodeproj/xcshareddata/xcschemes/CoMaps.xcscheme
|
!iphone/Maps/Maps.xcodeproj/xcshareddata/xcschemes/OMaps.xcscheme
|
||||||
**/xcuserdata
|
**/xcuserdata
|
||||||
**/xcschemes
|
**/xcschemes
|
||||||
iphone/**/*.moved-aside
|
iphone/**/*.moved-aside
|
||||||
|
|||||||
@@ -48,8 +48,6 @@ if (APPLE AND NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL Android))
|
|||||||
set(CMAKE_OBJCXX_VISIBILITY_PRESET hidden)
|
set(CMAKE_OBJCXX_VISIBILITY_PRESET hidden)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
execute_process(COMMAND "./configure.sh" WORKING_DIRECTORY ${OMIM_ROOT})
|
|
||||||
|
|
||||||
message(STATUS "Using compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
message(STATUS "Using compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||||
|
|
||||||
if (CMAKE_UNITY_BUILD)
|
if (CMAKE_UNITY_BUILD)
|
||||||
@@ -105,29 +103,12 @@ if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
|||||||
elseif (${CMAKE_BUILD_TYPE} MATCHES "Rel")
|
elseif (${CMAKE_BUILD_TYPE} MATCHES "Rel")
|
||||||
add_definitions(-DRELEASE)
|
add_definitions(-DRELEASE)
|
||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
add_compile_options(-Ofast $<$<CXX_COMPILER_ID:GNU>:-flto=auto>) # Also enables -ffast-math
|
add_compile_options(-Ofast) # Also enables -ffast-math
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Unknown build type: " ${CMAKE_BUILD_TYPE})
|
message(FATAL_ERROR "Unknown build type: " ${CMAKE_BUILD_TYPE})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
|
|
||||||
add_compile_options(-fno-omit-frame-pointer)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Linux GCC LTO plugin fix.
|
|
||||||
if (PLATFORM_LINUX AND (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_BUILD_TYPE MATCHES "^Rel"))
|
|
||||||
# To force errors if LTO was not enabled.
|
|
||||||
add_compile_options(-fno-fat-lto-objects)
|
|
||||||
# To fix ar and ranlib "plugin needed to handle lto object".
|
|
||||||
string(REGEX MATCH "[0-9]+" GCC_MAJOR_VERSION ${CMAKE_CXX_COMPILER_VERSION})
|
|
||||||
file(GLOB_RECURSE plugin /usr/lib/gcc/*/${GCC_MAJOR_VERSION}/liblto_plugin.so)
|
|
||||||
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> --plugin ${plugin} qcs <TARGET> <OBJECTS>")
|
|
||||||
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> --plugin ${plugin} <TARGET>")
|
|
||||||
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> --plugin ${plugin} qcs <TARGET> <OBJECTS>")
|
|
||||||
set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> --plugin ${plugin} <TARGET>")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
||||||
|
|
||||||
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
||||||
@@ -261,15 +242,11 @@ if (PLATFORM_DESKTOP)
|
|||||||
add_subdirectory(qt)
|
add_subdirectory(qt)
|
||||||
omim_add_tool_subdirectory(skin_generator)
|
omim_add_tool_subdirectory(skin_generator)
|
||||||
endif()
|
endif()
|
||||||
if (GENERATOR_TOOL)
|
|
||||||
add_compile_options(-march=native -mtune=native)
|
|
||||||
message(STATUS "target CPU optimizations enabled, produced binaries will NOT work on a different CPU")
|
|
||||||
endif()
|
|
||||||
add_subdirectory(dev_sandbox)
|
add_subdirectory(dev_sandbox)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
omim_add_test_subdirectory(qt_tstfrm)
|
omim_add_test_subdirectory(qt_tstfrm)
|
||||||
|
|
||||||
if (PLATFORM_ANDROID)
|
if (PLATFORM_ANDROID)
|
||||||
add_subdirectory(android/sdk/src/main/cpp)
|
add_subdirectory(android/app/src/main/cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -7,12 +7,6 @@ CoMaps contributors:
|
|||||||
(in alphabetic order)
|
(in alphabetic order)
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
Bastian Greshake Tzovaras
|
|
||||||
clover sage
|
|
||||||
Harry Bond <me@hbond.xyz>
|
|
||||||
vikiawv
|
|
||||||
Yannik Bloscheck
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Organic Maps (formerly OMaps) contributors:
|
Organic Maps (formerly OMaps) contributors:
|
||||||
(in alphabetic order)
|
(in alphabetic order)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
See [docs/INSTALL.md](docs/INSTALL.md)
|
See [docs/INSTALL.md](docs/INSTALL.md)
|
||||||
188
README.md
@@ -1,91 +1,66 @@
|
|||||||
<!-- Navigation Bar -->
|
<!--<div align="center">
|
||||||
<p align="center">
|
<img src="qt/res/logo.png" height="100"/>
|
||||||
<a href="https://codeberg.org/comaps#comaps">Project Intro</a> |
|
</div>-->
|
||||||
<a href="https://codeberg.org/comaps/Governance#comaps-project-governance-docs">Governance</a> |
|
|
||||||
<a href="https://codeberg.org/comaps/Governance/src/branch/main/FAQ.md">FAQ</a> |
|
<!-- a nav bar -->
|
||||||
<a href="#contributing">Contribute</a> |
|
[Project Intro](https://codeberg.org/comaps#comaps)
|
||||||
<a href="https://www.comaps.app/donate">Donate</a> |
|
| [Governance](https://codeberg.org/comaps/Governance#comaps-project-governance-docs)
|
||||||
<a href="https://codeberg.org/comaps#keep-connected">Keep Connected</a>
|
| [FAQ](https://codeberg.org/comaps/Governance/src/branch/main/FAQ.md)
|
||||||
|
| [Contribute](#contributing)
|
||||||
|
| [Donate](https://www.comaps.app/donate)
|
||||||
|
| [Keep Connected](https://codeberg.org/comaps#keep-connected)
|
||||||
|
|
||||||
|
# [CoMaps](https://comaps.app) – Hike, Bike, Drive Offline – Easy Map Navigation with Privacy
|
||||||
|
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://github.com/comaps/comaps/actions/workflows/android-check.yaml)
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml)
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://opencollective.com/comaps)
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://liberapay.com/CoMaps)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A community-led free & open source maps app based on [OpenStreetMap](https://www.openstreetmap.org) data and reinforced with commitment to transparency, privacy and being not-for-profit. CoMaps is a fork/spin-off of Organic Maps, which in turn is a fork of Maps.ME.
|
||||||
|
|
||||||
|
There are apps for Android and iOS (and ARM macOS).
|
||||||
|
An alpha linux / macOS Qt desktop version, which is also suitable for linux phones.
|
||||||
|
|
||||||
|
The first app release is available as an APK download now! We are still working on publishing on F-Droid, Google Play Store and iOS App Store as well, please stay tuned!
|
||||||
|
|
||||||
|
<!--
|
||||||
|
[<img src="docs/badges/apple-appstore.png" alt="App Store" width="160">](https://apps.apple.com/app/comaps/id1567437057)
|
||||||
|
[<img src="docs/badges/google-play.png" alt="Google Play" width="160">](https://play.google.com/store/apps/details?id=app.comaps)
|
||||||
|
[<img src="docs/badges/fdroid.png" alt="F-Droid" width="160">](https://f-droid.org/en/packages/app.comaps/)
|
||||||
|
-->
|
||||||
|
[<img src="docs/badges/codeberg.png" alt="Codeberg" width="160">](https://codeberg.org/comaps/comaps/releases)
|
||||||
|
|
||||||
|
<p float="left">
|
||||||
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/1.jpg" width="180" />
|
||||||
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/2.jpg" width="180" />
|
||||||
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/3.jpg" width="180" />
|
||||||
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/4.jpg" width="180" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div align="center" >
|
**Offline-focused**: Plan and navigate your trip abroad without the need for cellular service, search waypoints while on a distant hike, etc. All app functions are designed to work offline.
|
||||||
<img src="docs/badges/logo.svg" width="150">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
**Respecting Privacy**: The app is designed with privacy in mind - does not identify people, does not track, and does not collect personal information. Ads-free.
|
||||||
|
|
||||||
<div align="center">
|
**Simple and Polished**: essential easy to use features that just work.
|
||||||
<h1><a href="https://comaps.app/">CoMaps</a></h1>
|
|
||||||
<h2>Hike, Bike, Drive Offline - Easy Map Navigation with Privacy</h2>
|
|
||||||
</div>
|
|
||||||
<div align="center">
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://codeberg.org/comaps/comaps/releases">
|
|
||||||
<img src="https://img.shields.io/github/license/comaps/comaps?style=for-the-badge&logo=opensourceinitiative&logoColor=white&color=588157" alt="License" style="width: 90%; max-width: 150px;"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://github.com/comaps/comaps/actions/workflows/android-check.yaml">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github/workflows/android-check.yaml?label=Android%20Build&logo=android&logoColor=white&style=for-the-badge&color=588157" alt="Android Build Status" style="width: 90%; max-width: 170px;"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://github.com/comaps/comaps/actions/workflows/ios-check.yaml">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github/workflows/ios-check.yaml?label=iOS%20Build&logo=apple&logoColor=white&style=for-the-badge&color=588157" alt="iOS Build Status" style="width: 90%; max-width: 145px;"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://opencollective.com/comaps">
|
|
||||||
<img src="https://img.shields.io/opencollective/all/comaps?label=Open%20Collective%20Donors&logo=opencollective&logoColor=white&style=for-the-badge&color=588157" alt="Open Collective Donors" style="width: 90%; max-width: 191px;"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://liberapay.com/CoMaps">
|
|
||||||
<img src="https://img.shields.io/liberapay/patrons/CoMaps.svg?label=Liberapay%20Patrons&logo=liberapay&logoColor=white&style=for-the-badge&color=588157" alt="Liberapay Patrons" style="width: 90%; max-width: 160px;"/>
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
**Saves Your Battery and Space**: Doesn’t drain your battery like other navigation apps. Compact maps save precious space on your phone.
|
||||||
|
|
||||||
A community-led free & open source maps app based on [OpenStreetMap](https://www.openstreetmap.org), built for transparency, privacy, and not-for-profit values. A fork of Organic Maps, originally based on Maps.ME.
|
**Free and Built by the Community**: People like you helped build the app by adding places to [OpenStreetMap](https://www.openstreetmap.org), testing and giving feedback on features and contributing their development skills and money.
|
||||||
|
|
||||||
**Available for:** Android, iOS, ARM macOS, and alpha Linux/macOS desktop builds (also usable on Linux phones).
|
**Open and Transparent Decision-making and Financials, Not-for-profit and Fully Open Source.**
|
||||||
|
|
||||||
<p align="center">
|
### Main Features
|
||||||
<a href="https://apps.apple.com/app/comaps/id6747180809">
|
|
||||||
<img src="docs/badges/apple-appstore.png" alt="App Store" width="160"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://play.google.com/store/apps/details?id=app.comaps.google">
|
|
||||||
<img src="docs/badges/google-play.png" alt="Google Play" width="160"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://f-droid.org/en/packages/app.comaps.fdroid/">
|
|
||||||
<img src="docs/badges/fdroid.png" alt="F-Droid" width="160"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://codeberg.org/comaps/comaps">
|
|
||||||
<img src="docs/badges/obtainium.png" alt="Obtainium" width="160"/>
|
|
||||||
</a>
|
|
||||||
<a href="https://codeberg.org/comaps/comaps/releases">
|
|
||||||
<img src="docs/badges/codeberg.png" alt="Codeberg" width="160"/>
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Screenshots -->
|
|
||||||
<p align="center">
|
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/1.png" width="180" />
|
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/2.png" width="180" />
|
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/3.png" width="180" />
|
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/4.png" width="180" />
|
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/5.png" width="180" />
|
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/6.png" width="180" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⚡️ Highlights
|
|
||||||
|
|
||||||
- **Offline-first**: Navigate without a connection
|
|
||||||
- **Privacy-respecting**: No tracking, Ads or data collection
|
|
||||||
- **Lightweight**: Battery- and space-efficient
|
|
||||||
- **Simple**: Polished, user-focused interface
|
|
||||||
- **Community-built**: Free, open source, and collaborative
|
|
||||||
- **Transparent**: Open finances and governance
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🚀 Main Features
|
|
||||||
|
|
||||||
- Downloadable detailed maps with places which are not available with Google Maps
|
- Downloadable detailed maps with places which are not available with Google Maps
|
||||||
|
|
||||||
@@ -115,50 +90,37 @@ A community-led free & open source maps app based on [OpenStreetMap](https://www
|
|||||||
|
|
||||||
- Android Auto and CarPlay support
|
- Android Auto and CarPlay support
|
||||||
|
|
||||||
***Freedom Is Here – Navigate the world with privacy and community at the forefront.***
|
*Freedom Is Here - Discover your journey, navigate the world with privacy and community at the forefront!*
|
||||||
|
|
||||||
---
|
## Contributing
|
||||||
|
|
||||||
## 🤝 Contributing
|
|
||||||
|
|
||||||
You can help by donating, contributing code, translating, or by telling others about it. To build the best maps app there is a need for software development, design, product, community development, and other areas. Reach out to us and let us know how you want to help.
|
You can help by donating, contributing code, translating, or by telling others about it. To build the best maps app there is a need for software development, design, product, community development, and other areas. Reach out to us and let us know how you want to help.
|
||||||
|
|
||||||
- Build instructions: [docs/INSTALL.md](docs/INSTALL.md)
|
If you want to build the project, check [docs/INSTALL.md](docs/INSTALL.md). If you want to help the project,
|
||||||
- Contribution guide: [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)
|
see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). You can help in many ways, the ability to code is not necessary.
|
||||||
|
|
||||||
There is a dedicated [Zulip](https://codeberg.org/comaps/Governance/src/branch/main/contribute.md#3-team-messaging) chat for active contributors.
|
Some docs might be outdated, contain broken links or old references to Organic Maps, etc. Its a work in progress and help is much appreciated!
|
||||||
|
|
||||||
---
|
There is a dedicated Zulip chat for active contributors: [comaps.zulipchat.com](https://comaps.zulipchat.com)
|
||||||
|
|
||||||
## 💬 Feedback
|
### Feedback
|
||||||
|
|
||||||
- Rate us on [App Store](https://apps.apple.com/app/comaps/id6747180809) and [Google Play](https://play.google.com/store/apps/details?id=app.comaps.google)
|
<!-- uncomment when linked resources are ready
|
||||||
- Star our repos on Codeberg
|
- **Rate us on the [App Store](https://apps.apple.com/app/comaps/id1567437057)
|
||||||
- Report bugs or request features on the [issue tracker](https://codeberg.org/comaps/comaps/issues)
|
and [Google Play](https://play.google.com/store/apps/details?id=app.comaps)**. -->
|
||||||
|
- Star our repos on Codeberg
|
||||||
|
- Report bugs and discuss features at [the issue tracker](https://codeberg.org/comaps/comaps/issues)
|
||||||
|
|
||||||
---
|
## How is development funded?
|
||||||
|
|
||||||
## 💸 Funding
|
The app is free for everyone, so we rely on donations. Please [donate](https://opencollective.com/comaps/donate) to support the CoMaps community and see this open project thrive!
|
||||||
|
|
||||||
CoMaps is free. To stay that way, it relies on your support.
|
|
||||||
Donate via [OpenCollective](https://opencollective.com/comaps/donate) or [Liberapay](https://liberapay.com/CoMaps).
|
|
||||||
The project's financial information is completely open and transparent at [our Open Collective](https://opencollective.com/comaps).
|
The project's financial information is completely open and transparent at [our Open Collective](https://opencollective.com/comaps).
|
||||||
|
|
||||||
---
|
## License and Copyright
|
||||||
|
|
||||||
## 🔒 Privacy
|
Licensed under the Apache License, Version 2.0. See
|
||||||
|
[LICENSE](LICENSE),
|
||||||
The Android app has been reviewed by [Exodus Privacy](https://reports.exodus-privacy.eu.org/en/reports/app.comaps.google/latest/).
|
[NOTICE](NOTICE)
|
||||||
|
and [data/copyright.html](data/copyright.html)
|
||||||
To [verify](https://developer.android.com/studio/command-line/apksigner#usage-verify) the APK, use the following signing certificate fingerprints:
|
for more information.
|
||||||
```
|
|
||||||
SHA-256: 4894e8e6963627ef660031d8593fe77297f835acb4e23810003e926135023b4c
|
|
||||||
SHA-1: 8b7b5739f917e9f7c681671ced0c9c8562123ade
|
|
||||||
MD5: 9cce0ffea281dc2f0e0a154d6d2e281e
|
|
||||||
```
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⚖️ License
|
|
||||||
|
|
||||||
Licensed under the Apache License 2.0.
|
|
||||||
See [LICENSE](LICENSE), [NOTICE](NOTICE), and [data/copyright.html](data/copyright.html).
|
|
||||||
|
|||||||
4
android/.idea/icon.svg
generated
@@ -1,4 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="64pt" height="64pt" viewBox="0 0 835 835">
|
|
||||||
<path d="M698.5 141.1a20 20 0 0 1 30.8-1.3A416 416 0 0 1 835 417.4a416 416 0 0 1-93.3 263 20 20 0 0 1-31.3-.6l-43-56.6a20 20 0 0 1-.2-24 307 307 0 0 0 59.3-181.8c0-74.2-26.2-142.3-69.9-195.6a20 20 0 0 1-.5-24.8zM260.7 456.4a20 20 0 0 1-7.7-36.7l282-177.4a20 20 0 0 1 29.9 22.7l-97 318.9a20 20 0 0 1-37.5 2.2l-49.2-111.5z" style="fill:#ccdfca"/>
|
|
||||||
<path d="M626.3 753a20 20 0 0 1-6.2 29.6A416 416 0 0 1 417.5 835 417.7 417.7 0 0 1 0 417.4 417.7 417.7 0 0 1 603.3 43.5a20 20 0 0 1 7 30l-42.4 55.8a20 20 0 0 1-24.2 6.1 307 307 0 0 0-126.2-27 309 309 0 0 0-309 309c0 170.6 138.5 309 309 309a307 307 0 0 0 141.6-34.3 20 20 0 0 1 25.1 5.6z" style="fill:#fefdf6"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 753 B |
@@ -18,4 +18,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
libxi-dev \
|
libxi-dev \
|
||||||
optipng
|
optipng
|
||||||
WORKDIR /root/comaps
|
WORKDIR /root/comaps
|
||||||
|
RUN ./configure.sh
|
||||||
CMD ./gradlew -Parm64 assembleFdroidDebug
|
CMD ./gradlew -Parm64 assembleFdroidDebug
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
To build, install and run e.g. a Web Debug version on your device/emulator: './gradlew runWebDebug'
|
To build, install and run e.g. a Web Debug version on your device/emulator: './gradlew runWebDebug'
|
||||||
|
|
||||||
Or to compile a redistributable Fdroid Test apk for testing: './gradlew assembleFdroidBeta'
|
Or to compile a redistributable Fdroid Beta apk for testing: './gradlew assembleFdroidBeta'
|
||||||
|
|
||||||
Or to build test apks for all flavors: './gradlew assembleBeta'
|
Or to build beta apks for all flavors: './gradlew assembleBeta'
|
||||||
|
|
||||||
To see all available build targets './gradlew tasks'
|
To see all available build targets './gradlew tasks'
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ buildscript {
|
|||||||
// Detect flavors from the task name.
|
// Detect flavors from the task name.
|
||||||
def taskName = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
|
def taskName = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
|
||||||
def isFdroid = taskName.contains('fdroid')
|
def isFdroid = taskName.contains('fdroid')
|
||||||
|
def isBeta = taskName.contains('beta')
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath libs.android.tools
|
classpath libs.android.tools
|
||||||
@@ -15,17 +16,43 @@ buildscript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
maven { url 'https://www.jitpack.io' } // MPAndroidChart
|
||||||
|
}
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
apply plugin: 'com.github.triplet.play'
|
apply plugin: 'com.github.triplet.play'
|
||||||
apply plugin: 'ru.cian.huawei-publish-gradle-plugin'
|
apply plugin: 'ru.cian.huawei-publish-gradle-plugin'
|
||||||
|
|
||||||
|
def run(cmd) {
|
||||||
|
def stdout = new ByteArrayOutputStream()
|
||||||
|
exec {
|
||||||
|
commandLine = cmd
|
||||||
|
standardOutput = stdout
|
||||||
|
}
|
||||||
|
return stdout.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
import com.github.triplet.gradle.androidpublisher.ReleaseStatus
|
import com.github.triplet.gradle.androidpublisher.ReleaseStatus
|
||||||
|
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
|
||||||
|
|
||||||
|
def getVersion() {
|
||||||
|
def isWindows = DefaultNativePlatform.getCurrentOperatingSystem().isWindows()
|
||||||
|
def bash = isWindows ? 'C:\\Program Files\\Git\\bin\\bash.exe' : 'bash'
|
||||||
|
def versionCode = Integer.parseInt(run([bash, '../../tools/unix/version.sh', 'android_code']).trim())
|
||||||
|
def versionName = run([bash, '../../tools/unix/version.sh', 'android_name']).trim()
|
||||||
|
return new Tuple2(versionCode, versionName)
|
||||||
|
}
|
||||||
|
|
||||||
def getCommitMessage() {
|
def getCommitMessage() {
|
||||||
return run(['git', '--no-pager', 'show', '-s', '--format=%s%n%n%b', 'HEAD']).trim()
|
return run(['git', '--no-pager', 'show', '-s', '--format=%s%n%n%b', 'HEAD']).trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def osName = System.properties['os.name'].toLowerCase()
|
||||||
|
|
||||||
project.ext.appId = 'app.comaps'
|
project.ext.appId = 'app.comaps'
|
||||||
project.ext.appName = 'CoMaps'
|
project.ext.appName = 'CoMaps'
|
||||||
|
|
||||||
@@ -37,48 +64,86 @@ project.ext.appName = 'CoMaps'
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = 'app.organicmaps'
|
namespace 'app.organicmaps'
|
||||||
|
|
||||||
// TODO: it should not be here, but in sdk/build.gradle. But for some reason it should be specified here as well.
|
|
||||||
ndkVersion = '28.2.13676358'
|
|
||||||
|
|
||||||
dependenciesInfo {
|
|
||||||
// Disables dependency metadata when building APKs (for IzzyOnDroid/F-Droid)
|
|
||||||
includeInApk = false
|
|
||||||
// Disables dependency metadata when building Android App Bundles (for Google Play)
|
|
||||||
includeInBundle = false
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
dataBinding = true
|
dataBinding = true
|
||||||
buildConfig = true
|
buildConfig = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Users are complaining that the app should be re-downloaded from the Play Store after changing the language.
|
|
||||||
bundle {
|
|
||||||
language {
|
|
||||||
enableSplit = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// All properties are read from gradle.properties file
|
// All properties are read from gradle.properties file
|
||||||
compileSdk = propCompileSdkVersion.toInteger()
|
compileSdk propCompileSdkVersion.toInteger()
|
||||||
|
|
||||||
|
ndkVersion '27.2.12479018'
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
versionCode = rootProject.ext.versionCode
|
// Default package name is taken from the manifest and should be app.comaps
|
||||||
versionName = rootProject.ext.versionName
|
def ver = getVersion()
|
||||||
|
versionCode = ver.V1
|
||||||
|
versionName = ver.V2
|
||||||
println('Version: ' + versionName)
|
println('Version: ' + versionName)
|
||||||
println('VersionCode: ' + versionCode)
|
println('VersionCode: ' + versionCode)
|
||||||
minSdk = propMinSdkVersion.toInteger()
|
minSdk propMinSdkVersion.toInteger()
|
||||||
targetSdk = propTargetSdkVersion.toInteger()
|
targetSdk propTargetSdkVersion.toInteger()
|
||||||
applicationId project.ext.appId
|
applicationId project.ext.appId
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"android@comaps.app"'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"android@comaps.app"'
|
||||||
// Should be customized in flavors.
|
// Should be customized in flavors.
|
||||||
buildConfigField 'String', 'REVIEW_URL', '""'
|
buildConfigField 'String', 'REVIEW_URL', '""'
|
||||||
|
|
||||||
base.archivesName = appName.replaceAll('\\s','') + '-' + defaultConfig.versionCode
|
externalNativeBuild {
|
||||||
|
def pchFlag = 'OFF'
|
||||||
|
if (project.hasProperty('pch')) pchFlag = 'ON'
|
||||||
|
|
||||||
ndk.debugSymbolLevel = 'full'
|
def njobs = ''
|
||||||
|
if (project.hasProperty('njobs')) njobs = project.getProperty('njobs')
|
||||||
|
|
||||||
|
def enableVulkanDiagnostics = 'OFF'
|
||||||
|
if (project.hasProperty('enableVulkanDiagnostics')) {
|
||||||
|
enableVulkanDiagnostics = project.getProperty('enableVulkanDiagnostics')
|
||||||
|
}
|
||||||
|
|
||||||
|
def enableTrace = 'OFF'
|
||||||
|
if (project.hasProperty('enableTrace')) {
|
||||||
|
enableTrace = project.getProperty('enableTrace')
|
||||||
|
}
|
||||||
|
|
||||||
|
cmake {
|
||||||
|
cppFlags '-fexceptions', '-frtti'
|
||||||
|
// There is no sense to enable sections without gcc's --gc-sections flag.
|
||||||
|
cFlags '-fno-function-sections', '-fno-data-sections',
|
||||||
|
'-Wno-extern-c-compat'
|
||||||
|
arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static',
|
||||||
|
"-DOS=$osName", '-DSKIP_TESTS=ON', '-DSKIP_TOOLS=ON', "-DUSE_PCH=$pchFlag",
|
||||||
|
"-DNJOBS=$njobs", "-DENABLE_VULKAN_DIAGNOSTICS=$enableVulkanDiagnostics",
|
||||||
|
"-DENABLE_TRACE=$enableTrace"
|
||||||
|
targets 'organicmaps'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use, for example, -Parm32 gradle parameter to build only for armeabi-v7a.
|
||||||
|
ndk {
|
||||||
|
abiFilters = new HashSet<>()
|
||||||
|
if (project.hasProperty('arm32') || project.hasProperty('armeabi-v7a')) {
|
||||||
|
abiFilters.add('armeabi-v7a')
|
||||||
|
}
|
||||||
|
if (project.hasProperty('arm64') || project.hasProperty('arm64-v8a')) {
|
||||||
|
abiFilters.add('arm64-v8a')
|
||||||
|
}
|
||||||
|
if (project.hasProperty('x86')) {
|
||||||
|
abiFilters.add('x86')
|
||||||
|
}
|
||||||
|
if (project.hasProperty('x86_64') || project.hasProperty('x64')) {
|
||||||
|
abiFilters.add('x86_64')
|
||||||
|
}
|
||||||
|
if (abiFilters.isEmpty()) {
|
||||||
|
abiFilters.add('armeabi-v7a')
|
||||||
|
abiFilters.add('arm64-v8a')
|
||||||
|
// For the emulator, chromebooks and some Intel Atom devices.
|
||||||
|
abiFilters.add('x86_64')
|
||||||
|
}
|
||||||
|
println('Building for ' + abiFilters + ' archs.')
|
||||||
|
}
|
||||||
|
|
||||||
|
setProperty('archivesBaseName', appName.replaceAll('\\s','') + '-' + defaultConfig.versionCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
flavorDimensions += 'default'
|
flavorDimensions += 'default'
|
||||||
@@ -104,7 +169,6 @@ android {
|
|||||||
|
|
||||||
fdroid {
|
fdroid {
|
||||||
dimension 'default'
|
dimension 'default'
|
||||||
applicationIdSuffix '.fdroid'
|
|
||||||
versionName = android.defaultConfig.versionName + '-FDroid'
|
versionName = android.defaultConfig.versionName + '-FDroid'
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@comaps.app"'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@comaps.app"'
|
||||||
}
|
}
|
||||||
@@ -128,10 +192,10 @@ android {
|
|||||||
splits.abi {
|
splits.abi {
|
||||||
boolean enabled = project.hasProperty('splitApk')
|
boolean enabled = project.hasProperty('splitApk')
|
||||||
println ('Create separate apks: ' + enabled)
|
println ('Create separate apks: ' + enabled)
|
||||||
enable = enabled
|
enable enabled
|
||||||
reset()
|
reset()
|
||||||
include 'x86', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
|
include 'x86', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
|
||||||
universalApk = true
|
universalApk true
|
||||||
}
|
}
|
||||||
|
|
||||||
lint {
|
lint {
|
||||||
@@ -144,7 +208,7 @@ android {
|
|||||||
disable 'CustomSplashScreen'
|
disable 'CustomSplashScreen'
|
||||||
// https://github.com/organicmaps/organicmaps/issues/3610
|
// https://github.com/organicmaps/organicmaps/issues/3610
|
||||||
disable 'InsecureBaseConfiguration'
|
disable 'InsecureBaseConfiguration'
|
||||||
abortOnError = true
|
abortOnError true
|
||||||
}
|
}
|
||||||
|
|
||||||
gradle.projectsEvaluated {
|
gradle.projectsEvaluated {
|
||||||
@@ -203,58 +267,73 @@ android {
|
|||||||
debug {
|
debug {
|
||||||
applicationIdSuffix '.debug' // Allows to install debug and release builds together
|
applicationIdSuffix '.debug' // Allows to install debug and release builds together
|
||||||
versionNameSuffix '-debug'
|
versionNameSuffix '-debug'
|
||||||
|
jniDebuggable true // Enable jni debug build
|
||||||
zipAlignEnabled true
|
zipAlignEnabled true
|
||||||
signingConfig = signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
resValue 'string', 'app_name', 'CoMaps Debug'
|
resValue 'string', 'app_name', 'CoMaps Debug'
|
||||||
|
// Do not generate separate debug symbols for debug apps, because we don't distribute them.
|
||||||
|
ndk.debugSymbolLevel = 'none'
|
||||||
}
|
}
|
||||||
|
|
||||||
release {
|
release {
|
||||||
if (taskName.contains('release')) {
|
if (taskName.contains('release')) {
|
||||||
if (secureReleasePropertiesFileExists) {
|
if (secureReleasePropertiesFileExists) {
|
||||||
println('Using RELEASE signing keys from secure.properties.release')
|
println('Using RELEASE signing keys from secure.properties.release')
|
||||||
signingConfig = signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
} else {
|
} else {
|
||||||
println('NO RELEASE signing keys found')
|
println('NO RELEASE signing keys found')
|
||||||
println('Using DEBUG signing keys')
|
println('Using DEBUG signing keys')
|
||||||
signingConfig = signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
shrinkResources = true
|
shrinkResources true
|
||||||
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
||||||
// To learn more, go to the documentation section about R8 configuration files.
|
// To learn more, go to the documentation section about R8 configuration files.
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
resValue 'string', 'app_name', project.ext.appName
|
resValue 'string', 'app_name', project.ext.appName
|
||||||
|
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
||||||
|
ndk.debugSymbolLevel = 'symbol_table'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(@pastk): rename to "test" everywhere in code
|
||||||
beta {
|
beta {
|
||||||
applicationIdSuffix '.test'
|
applicationIdSuffix '.test'
|
||||||
versionNameSuffix '-test'
|
versionNameSuffix '-test'
|
||||||
if (taskName.contains('beta')) {
|
if (taskName.contains('beta')) {
|
||||||
if (secureTestPropertiesFileExists) {
|
if (secureTestPropertiesFileExists) {
|
||||||
println('Using TEST signing keys from secure.properties.test')
|
println('Using TEST signing keys from secure.properties.test')
|
||||||
signingConfig = signingConfigs.test
|
signingConfig signingConfigs.test
|
||||||
} else {
|
} else {
|
||||||
println('NO TEST signing keys found')
|
println('NO TEST signing keys found')
|
||||||
println('Using DEBUG signing keys')
|
println('Using DEBUG signing keys')
|
||||||
signingConfig = signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
shrinkResources = true
|
shrinkResources true
|
||||||
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
||||||
// To learn more, go to the documentation section about R8 configuration files.
|
// To learn more, go to the documentation section about R8 configuration files.
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
matchingFallbacks = ['release'] // use dependencies of "release" build type
|
matchingFallbacks = ['release'] // use dependencies of "release" build type
|
||||||
resValue 'string', 'app_name', 'CoMaps Test'
|
resValue 'string', 'app_name', 'CoMaps Test'
|
||||||
|
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
||||||
|
ndk.debugSymbolLevel = 'symbol_table'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
externalNativeBuild {
|
||||||
|
cmake {
|
||||||
|
version '3.22.1+'
|
||||||
|
buildStagingDirectory './nativeOutputs'
|
||||||
|
path '../../CMakeLists.txt'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We don't compress these extensions in assets/ because our random FileReader can't read zip-compressed files from apk.
|
// We don't compress these extensions in assets/ because our random FileReader can't read zip-compressed files from apk.
|
||||||
// TODO: Load all minor files via separate call to ReadAsString which can correctly handle compressed files in zip containers.
|
// TODO: Load all minor files via separate call to ReadAsString which can correctly handle compressed files in zip containers.
|
||||||
androidResources {
|
androidResources {
|
||||||
ignoreAssetsPattern = '!.svn:!.git:!.DS_Store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~'
|
ignoreAssetsPattern '!.svn:!.git:!.DS_Store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~'
|
||||||
noCompress = ['txt', 'bin', 'html', 'png', 'json', 'mwm', 'ttf', 'sdf', 'ui', 'config', 'csv', 'spv', 'obj']
|
noCompress = ['txt', 'bin', 'html', 'png', 'json', 'mwm', 'ttf', 'sdf', 'ui', 'config', 'csv', 'spv', 'obj']
|
||||||
localeFilters += [
|
localeFilters += [
|
||||||
"af",
|
"af",
|
||||||
@@ -311,7 +390,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
coreLibraryDesugaringEnabled = true
|
coreLibraryDesugaringEnabled true
|
||||||
|
|
||||||
sourceCompatibility JavaVersion.VERSION_17
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
targetCompatibility JavaVersion.VERSION_17
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
@@ -319,8 +398,6 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':sdk')
|
|
||||||
|
|
||||||
coreLibraryDesugaring libs.android.tools.desugar
|
coreLibraryDesugaring libs.android.tools.desugar
|
||||||
|
|
||||||
// Google Play Location Services
|
// Google Play Location Services
|
||||||
@@ -366,6 +443,10 @@ dependencies {
|
|||||||
testImplementation libs.mockito.core
|
testImplementation libs.mockito.core
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.compilerArgs << '-Xlint:unchecked' << '-Xlint:deprecation'
|
||||||
|
}
|
||||||
|
|
||||||
android.applicationVariants.all { variant ->
|
android.applicationVariants.all { variant ->
|
||||||
def authorityValue = variant.applicationId + ".provider"
|
def authorityValue = variant.applicationId + ".provider"
|
||||||
def authority = "\"" + authorityValue + "\""
|
def authority = "\"" + authorityValue + "\""
|
||||||
@@ -413,7 +494,3 @@ huaweiPublish {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(JavaCompile).configureEach {
|
|
||||||
options.compilerArgs << '-Xlint:unchecked' << '-Xlint:deprecation'
|
|
||||||
}
|
|
||||||
|
|||||||
BIN
android/app/ic_launcher-playstore.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
android/app/src/beta/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
android/app/src/beta/res/mipmap-hdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
android/app/src/beta/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
android/app/src/beta/res/mipmap-mdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
android/app/src/beta/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
android/app/src/beta/res/mipmap-xhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
android/app/src/beta/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
android/app/src/beta/res/mipmap-xxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
android/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
android/app/src/debug/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
android/app/src/debug/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
android/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 36 KiB |
BIN
android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 63 KiB |
BIN
android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 97 KiB |
1
android/app/src/fdroid/java/app/organicmaps/location
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../../google/java/app/organicmaps/location
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../../../google/java/app/organicmaps/sdk/location
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
সহজ মানচিত্র নেভিগেশন - আপনার যাত্রা সম্পর্কে আরও জানুন - সম্প্রদায় কর্তৃক পরিচালিত
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
কোম্যাপস - অফলাইনে হাইকিং, সাইকেলিং এবং ড্রাইভিং করুন গোপনীয়তা সহ
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Navegació intuïtiva - Descobreix el teu camí - El poder de la comunitat
|
|
||||||
@@ -6,27 +6,29 @@ Můžete se zde také připojit ke komunitě pomáhat s vytvářením nejlepší
|
|||||||
• Poskytujte zpětnou vazbu a nahlašujte problémy
|
• Poskytujte zpětnou vazbu a nahlašujte problémy
|
||||||
• Aktualizujte mapová data v aplikaci nebo na webu OpenStreetMap
|
• Aktualizujte mapová data v aplikaci nebo na webu OpenStreetMap
|
||||||
|
|
||||||
‣ <b>Zaměřené na offline použití</b>: Plánujte a navigujte své cesty do zahraničí bez nutnosti mobilních dat, hledejte body na vzdálených túrách apod. Všechny funkce aplikace jsou navrženy tak, aby fungovaly offline.
|
• <b>Zaměřené na offline použití</b>: Plánujte a navigujte své cesty do zahraničí bez nutnosti mobilních dat, hledejte body na vzdálených túrách apod. Všechny funkce aplikace jsou navrženy tak, aby fungovaly offline.
|
||||||
‣ <b>S ohledem na soukromí</b>: Aplikace je navržená s důrazem na soukromí – neidentifikuje lidi, nesleduje vás a nesbírá osobní údaje. Bez reklam.
|
• <b>S ohledem na soukromí</b>: Aplikace je navržená s důrazem na soukromí – neidentifikuje lidi, nesleduje vás a nesbírá osobní údaje. Bez reklam.
|
||||||
‣ <b>Jednoduché a vyladěné</b>: Základní, snadno použitelné funkce, které prostě fungují.
|
• <b>Jednoduché a vyladěné</b>: Základní, snadno použitelné funkce, které prostě fungují.
|
||||||
‣ <b>Šetří vaši baterii a místo</b>: Nevybíjí vaší baterii, jako ostatní navigační aplikace. Kompaktní mapy šetří cenné místo ve vašem telefonu.
|
• <b>Šetří vaši baterii a místo</b>: Nevybíjí vaší baterii, jako ostatní navigační aplikace. Kompaktní mapy šetří cenné místo ve vašem telefonu.
|
||||||
‣ <b>Bezplatné a vytvořené komunitou</b>: S vytvářením aplikace pomáhají lidé, jako jste vy, přidáváním míst do projektu OpenStreetMap, testováním a poskytováním zpětné vazby k funkcím a přispíváním svými vývojářskými schopnostmi a penězi.
|
• <b>Bezplatné a vytvořené komunitou</b>: S vytvářením aplikace pomáhají lidé, jako jste vy, přidáváním míst do projektu OpenStreetMap, testováním a poskytováním zpětné vazby k funkcím a přispíváním svými vývojářskými schopnostmi a penězi.
|
||||||
‣ <b>Otevřené a transparentní rozhodování a nakládání s financemi, neziskovost a plně otevřený zdrojový kód.</b>
|
• <b>Otevřené a transparentní rozhodování a nakládání s financemi, neziskovost a plně otevřený zdrojový kód.</b>
|
||||||
|
|
||||||
<b>Hlavní funkce</b>:
|
<b>Hlavní funkce</b>:
|
||||||
• Stahovatelné podrobné mapy s místy, která nenajdete ani v Mapách Google
|
<ul>
|
||||||
• Outdoorový režim se zvýrazněnými turistickými trasami, tábořišti, vodními zdroji, vrcholy, vrstevnicemi atd.
|
<li>Stahovatelné podrobné mapy s místy, která nenajdete ani v Mapách Google</li>
|
||||||
• Pěší trasy a cyklostezky
|
<li>Outdoorový režim se zvýrazněnými turistickými trasami, tábořišti, vodními zdroji, vrcholy, vrstevnicemi atd.</li>
|
||||||
• Body zájmu, jako jsou restaurace, čerpací stanice, hotely, obchody, vyhlídky a mnoho dalšího
|
<li>Pěší trasy a cyklostezky</li>
|
||||||
• Hledání podle názvu nebo adresy nebo podle kategorie bodů zájmu
|
<li>Body zájmu, jako jsou restaurace, čerpací stanice, hotely, obchody, vyhlídky a mnoho dalšího</li>
|
||||||
• Navigace s hlasovými pokyny pro chůzi, jízdu na kole nebo řízení
|
<li>Hledání podle názvu nebo adresy nebo podle kategorie bodů zájmu</li>
|
||||||
• Uložení oblíbených míst jedním klepnutím
|
<li>Navigace s hlasovými pokyny pro chůzi, jízdu na kole nebo řízení</li>
|
||||||
• Offline články z Wikipedie
|
<li>Uložení oblíbených míst jedním klepnutím</li>
|
||||||
• Vrstva metra a navigace v něm
|
<li>Offline články z Wikipedie</li>
|
||||||
• Záznam tras
|
<li>Vrstva metra a navigace v něm</li>
|
||||||
• Export a import záložek a tras ve formátech KML, KMZ a GPX
|
<li>Záznam tras</li>
|
||||||
• Tmavý režim k použití během noci
|
<li>Export a import záložek a tras ve formátech KML, KMZ a GPX</li>
|
||||||
• Zlepšování mapových dat pro všechny pomocí jednoduchého vestavěného editoru
|
<li>Tmavý režim k použití během noci</li>
|
||||||
|
<li>Zlepšování mapových dat pro všechny pomocí jednoduchého vestavěného editoru</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<b>Svoboda je tady</b>
|
<b>Svoboda je tady</b>
|
||||||
Objevujte své cesty, navigujte se světem se soukromím a komunitou na prvním místě!
|
Objevujte své cesty, navigujte se světem se soukromím a komunitou na prvním místě!
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
Nem kortnavigation - Oplev mere af din rejse - Drevet af fællesskabet
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
CoMaps - vandr, cykl og kør offline med privatliv
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
Eine von der Community betriebene, kostenlose Open-Source Karten-App, die auf OpenStreetMap Daten basiert. Transparent und nicht gewinnorientiert. CoMaps ist ein Fork/Abspaltung von Organic Maps, die wiederum ein Fork/Abspaltung von Maps.Me ist.
|
Eine von der Community betriebene, kostenlose Open-Source Karten-App, die auf OpenStreetMap Daten basiert. Transparent, datensparsam und nicht gewinnorientiert. CoMaps ist ein Fork/Abspaltung von Organic Maps, die wiederum ein Fork/Abspaltung von Maps.Me ist.
|
||||||
|
|
||||||
Lese mehr über die Gründe und Ziele des Projektes unter <b><i>codeberg.org/comaps</i></b>.
|
Lese mehr über die Gründe und Ziele des Projektes unter <b><i>codeberg.org/comaps</i></b>.
|
||||||
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||||
@@ -14,6 +14,7 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
|||||||
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open-Source</b>
|
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open-Source</b>
|
||||||
|
|
||||||
<b>Hauptfunktionen</b>:
|
<b>Hauptfunktionen</b>:
|
||||||
|
<ul>
|
||||||
• Detaillierte, herunterladbare Karten mit Orten, die bei Google Maps oft fehlen
|
• Detaillierte, herunterladbare Karten mit Orten, die bei Google Maps oft fehlen
|
||||||
• Outdoor-Modus mit hervorgehobenen Wanderwegen, Campingplätzen, Wasserquellen, Gipfeln, Höhenlinien usw.
|
• Outdoor-Modus mit hervorgehobenen Wanderwegen, Campingplätzen, Wasserquellen, Gipfeln, Höhenlinien usw.
|
||||||
• Geh- und Radwege
|
• Geh- und Radwege
|
||||||
@@ -28,5 +29,5 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
|||||||
• Dunkler Modus für die Nutzung bei Nacht
|
• Dunkler Modus für die Nutzung bei Nacht
|
||||||
• Kartenbearbeitung direkt in der App mit einem einfachen Editor
|
• Kartenbearbeitung direkt in der App mit einem einfachen Editor
|
||||||
|
|
||||||
<b>Entdecke die Unabhängigkeit</b>
|
<b>Freiheit beginnt hier</b>
|
||||||
Entdecke deine Reise – navigiere in der Welt mit Datenschutz!
|
Entdecke deine Reise – navigiere in der Welt mit Datenschutz!
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
Wir stellen vor: Das neue CoMaps-Logo!
|
• OpenStreetMap Daten vom 2. Juni
|
||||||
• Verbesserte Höhenlinien in vielen Regionen (Stufen von 20/50 m)
|
• Neue Einstellungsoption zum Ändern oder Ausblenden der "Über CoMaps" Schaltfläche ganz links
|
||||||
• Links zu Panoramax-Bildern für ausgewählte POIs
|
• Routen als GPS Track speichern
|
||||||
• OpenStreetMap-Daten vom 13. Juli
|
• Qingdao Metro, Gärtnereien, Leitplanken, Leitern, Studios, Tanzsäle, Feuerstellen und Stundenhotels hinzugefügt
|
||||||
• Neue Farben für viele Objekte und Farben werden früher angezeigt
|
• transparente Navigationsleiste im Light Mode
|
||||||
• Öffnungszeiten werden beim Antippen eines POI angezeigt
|
• Mastodon und Bluesky Kontaktoptionen für POIs und im OSM-Editor hinzugefügt
|
||||||
• Verschiedene Arten von Feuchtgebieten
|
• Anzeige der Kompassgradzahl in der Richtungspfeilansicht
|
||||||
• Neue Farben für Vegetation und andere Features; einige neue Icons
|
• Übersetzungen aktualisiert
|
||||||
• Wandern: bessere Darstellung der Höhenlinien
|
|
||||||
|
|||||||
@@ -14,19 +14,21 @@ Join the community there and help make the best maps app
|
|||||||
‣ <b>Open and Transparent Decision-making and Financials, Not-for-profit and Fully Open Source.</b>
|
‣ <b>Open and Transparent Decision-making and Financials, Not-for-profit and Fully Open Source.</b>
|
||||||
|
|
||||||
<b>Main Features</b>:
|
<b>Main Features</b>:
|
||||||
• Downloadable detailed maps with places which are not available with Google Maps
|
<ul>
|
||||||
• Outdoor mode with highlighted hiking trails, campsites, water sources, peaks, contour lines, etc
|
<li>Downloadable detailed maps with places which are not available with Google Maps</li>
|
||||||
• Walking paths and cycleways
|
<li>Outdoor mode with highlighted hiking trails, campsites, water sources, peaks, contour lines, etc</li>
|
||||||
• Points of interest like restaurants, gas stations, hotels, shops, sightseeings and many more
|
<li>Walking paths and cycleways</li>
|
||||||
• Search by name or an address or by point of interest category
|
<li>Points of interest like restaurants, gas stations, hotels, shops, sightseeings and many more</li>
|
||||||
• Navigation with voice announcements for walking, cycling, or driving
|
<li>Search by name or an address or by point of interest category</li>
|
||||||
• Bookmark your favorite places with a single tap
|
<li>Navigation with voice announcements for walking, cycling, or driving</li>
|
||||||
• Offline Wikipedia articles
|
<li>Bookmark your favorite places with a single tap</li>
|
||||||
• Subway transit layer and directions
|
<li>Offline Wikipedia articles</li>
|
||||||
• Track recording
|
<li>Subway transit layer and directions</li>
|
||||||
• Export and import bookmarks and tracks in KML, KMZ, GPX formats
|
<li>Track recording</li>
|
||||||
• A dark mode to use during the night
|
<li>Export and import bookmarks and tracks in KML, KMZ, GPX formats</li>
|
||||||
• Improve map data for everyone using a basic built-in editor
|
<li>A dark mode to use during the night</li>
|
||||||
|
<li>Improve map data for everyone using a basic built-in editor</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<b>Freedom Is Here</b>
|
<b>Freedom Is Here</b>
|
||||||
Discover your journey, navigate the world with privacy and community at the forefront!
|
Discover your journey, navigate the world with privacy and community at the forefront!
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 249 KiB |
BIN
android/app/src/fdroid/play/listings/en-US/graphics/icon/1.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 747 KiB |
|
Before Width: | Height: | Size: 628 KiB |
|
After Width: | Height: | Size: 749 KiB |
|
Before Width: | Height: | Size: 532 KiB |
|
After Width: | Height: | Size: 730 KiB |
|
Before Width: | Height: | Size: 391 KiB |
|
After Width: | Height: | Size: 590 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 268 KiB |
|
Before Width: | Height: | Size: 263 KiB |
@@ -1,10 +1,8 @@
|
|||||||
Introducing CoMaps logo!
|
• OpenStreetMap data as of June 2
|
||||||
|
• add a setting to change the leftmost button or hide it
|
||||||
• upgrade altitude contour lines for many regions to 20 or 50 meters step
|
• save built routes as tracks
|
||||||
• add Panoramax Picture links to selected POIs
|
• add Qingdao metro, plant nurseries, highway guard rails, ladders, studios, dance venues, firepits, love hotels
|
||||||
• OpenStreetMap data as of July 13
|
• transparent system navigation bar in the light mode
|
||||||
• add color fills to many features and display fills earlier for existing features
|
• add Mastodon and Bluesky contact options to POIs and OSM editor
|
||||||
• display opening hours state when selecting a POI
|
• display Azimuth angle in direction arrow view
|
||||||
• split all wetlands into several distinct types
|
• update translations
|
||||||
• update vegetation and other map colors, update some map icons
|
|
||||||
• outdoors: bolder altitude contour lines
|
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
Una aplicación de mapas gratuita y de código abierto liderada por la comunidad, basada en los datos de OpenStreetMap y reforzada con un compromiso con la transparencia, la privacidad y la ausencia de fines de lucro. CoMaps es un fork o derivado de Organic Maps, que a su vez es un fork de Maps.ME.
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
Lee más sobre los motivos del proyecto y su dirección en <b><i>codeberg.org/comaps</i></b>.
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
Únete allí a la comunidad y ayuda a crear la mejor app de mapas
|
|
||||||
|
|
||||||
• Usa la aplicación y corre la voz sobre ella
|
|
||||||
|
|
||||||
• Envía comentarios y reporta problemas
|
|
||||||
|
|
||||||
• Actualiza los datos del mapa en la app o en el sitio web de OpenStreetMap
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
‣ <b>Enfocada en el uso sin conexión</b>: Planifica y navega tus viajes sin necesidad de conexión móvil, busca puntos de paso en rutas remotas, etc. Todas las funciones están diseñadas para funcionar sin conexión.
|
|
||||||
|
|
||||||
‣ <b>Respeta tu Privacidad</b>: La app está diseñada pensando en tu privacidad: no identifica personas, no rastrea y no recoge datos personales. Sin publicidad.
|
|
||||||
|
|
||||||
‣ <b>Sencilla y Pulida</b>: funciones esenciales fáciles de usar que simplemente funcionan.
|
|
||||||
|
|
||||||
‣ <b>Ahorra Batería y Espacio</b>: No consume la batería como otras apps de navegación. Los mapas compactos ahorran espacio valioso en tu teléfono.
|
|
||||||
|
|
||||||
‣ <b>Gratuita y Creada por la Comunidad</b>: Personas como tú ayudaron a construir la app añadiendo lugares a OpenStreetMap, probando funciones, dando opiniones y contribuyendo con desarrollo o financiación.
|
|
||||||
|
|
||||||
‣ <b>Toma de decisiones y finanzas abiertas y transparentes, sin ánimo de lucro y completamente de código abierto.</b>
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<b>Funciones Principales</b>:
|
|
||||||
|
|
||||||
• Mapas detallados descargables con lugares que no aparecen en Google Maps
|
|
||||||
|
|
||||||
• Modo exterior con rutas de senderismo destacadas, campings, fuentes de agua, picos, curvas de nivel, etc.
|
|
||||||
|
|
||||||
• Caminos peatonales y carriles bici
|
|
||||||
|
|
||||||
• Puntos de interés como restaurantes, gasolineras, hoteles, tiendas, lugares turísticos y muchos más
|
|
||||||
|
|
||||||
• Búsqueda por nombre, dirección o categoría de punto de interés
|
|
||||||
|
|
||||||
• Navegación con indicaciones por voz para caminar, ir en bici o conducir
|
|
||||||
|
|
||||||
• Guarda tus lugares favoritos con un solo toque
|
|
||||||
|
|
||||||
• Artículos de Wikipedia sin conexión
|
|
||||||
|
|
||||||
• Capa de transporte subterráneo y rutas
|
|
||||||
|
|
||||||
• Grabación de rutas
|
|
||||||
|
|
||||||
• Exporta e importa favoritos y rutas en formatos KML, KMZ y GPX
|
|
||||||
|
|
||||||
• Modo oscuro para usar de noche
|
|
||||||
|
|
||||||
• Mejora los datos del mapa para todos usando un editor básico integrado
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<b>La Libertad Está Aquí</b>
|
|
||||||
|
|
||||||
Descubre tu camino, navega el mundo con privacidad y con la comunidad como prioridad.
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
¡Presentamos el logo de CoMaps!
|
|
||||||
• mejora de isolíneas con más detalle para muchas regiones
|
|
||||||
• añade enlaces de imágenes de Panoramax a POIs seleccionados
|
|
||||||
• datos de OpenStreetMap a 13 de julio
|
|
||||||
• añadidos rellenos de color a muchas características
|
|
||||||
• se muestra el estado de horarios de apertura al seleccionar un POI
|
|
||||||
• se dividen los humedales en tipos distintos
|
|
||||||
• se actualiza la vegetación y otros colores del mapa, así como otros iconos
|
|
||||||
• exteriores: líneas de contorno de altitud más gruesas
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Navegación de mapa fácil - Descubre más en tu camino - Creado por la comunidad
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
CoMaps - Senderismo, ciclismo y conducción offline
|
|
||||||
@@ -14,19 +14,21 @@ Liitu kogukonnaga ja aita luua parimat kaardirakendust:
|
|||||||
‣ <b>Organisatsioon on avatud ja kasutab läbipaistvat otsustusprotsessi ning rahastamist ega taotle kasumit. Rakendus on avatud lähtekoodiga.</b>
|
‣ <b>Organisatsioon on avatud ja kasutab läbipaistvat otsustusprotsessi ning rahastamist ega taotle kasumit. Rakendus on avatud lähtekoodiga.</b>
|
||||||
|
|
||||||
<b>Põhifunktsionaalsused</b>:
|
<b>Põhifunktsionaalsused</b>:
|
||||||
• Allalaaditavad detailsed kaardid, mille sisu tihtipeale ei leia Google Mapsist
|
<ul>
|
||||||
• Kaardivaade välitingimuste jaoks, kus matkarajad, laagriplatsid, allikad, mäetipud, kontuurjooned ja palju muud vajalikku on esile tõstetud
|
<li>Allalaaditavad detailsed kaardid, mille sisu tihtipeale ei leia Google Mapsist</li>
|
||||||
• Jalgrajad, rattateed ning maanteed
|
<li>Kaardivaade välitingimuste jaoks, kus matkarajad, laagriplatsid, allikad, mäetipud, kontuurjooned ja palju muud vajalikku on esile tõstetud</li>
|
||||||
• Huvipunktid, nagu restoranid, tanklad, hotellid, poed, vaatamisväärsused ja palju muud
|
<li>Jalgrajad, rattateed ning maanteed</li>
|
||||||
• Otsida saad nime, aadressi või huvipunkti kategooria alusel
|
<li>Huvipunktid, nagu restoranid, tanklad, hotellid, poed, vaatamisväärsused ja palju muud</li>
|
||||||
• Tee juhatamine hääljuhiste abil toimib nii kõndimisel, rattasõidul kui auto juhtimisel
|
<li>Otsida saad nime, aadressi või huvipunkti kategooria alusel</li>
|
||||||
• Ühe puudutusega saad oma lemmikkohad märkida järjehoidjana
|
<li>Tee juhatamine hääljuhiste abil toimib nii kõndimisel, rattasõidul kui auto juhtimisel</li>
|
||||||
• Vikipeedia artiklid, mida saad lugeda ilma võrguühenduseta
|
<li>Ühe puudutusega saad oma lemmikkohad märkida järjehoidjana</li>
|
||||||
• Metroode plaanid ja suunajuhised
|
<li>Vikipeedia artiklid, mida saad lugeda ilma võrguühenduseta</li>
|
||||||
• Raja või teekonna salvestamise võimalus
|
<li>Metroode plaanid ja suunajuhised</li>
|
||||||
• Järjehoidjate ja radade eksport ning import KML, KMZ ja GPX vormingutes
|
<li>Raja või teekonna salvestamise võimalus</li>
|
||||||
• Tume kaardivaade kasutamiseks öösel
|
<li>Järjehoidjate ja radade eksport ning import KML, KMZ ja GPX vormingutes</li>
|
||||||
• Kasutades lihtsat muutmisliidest saad kaarti kõikide huvides täiendada
|
<li>Tume kaardivaade kasutamiseks öösel</li>
|
||||||
|
<li>Kasutades lihtsat muutmisliidest saad kaarti kõikide huvides täiendada</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<b>Vabadus on siin</b>
|
<b>Vabadus on siin</b>
|
||||||
Uuri maailma ja avasta uusi teid - tee seda privaatselt ja kogukonnaga arvestades!
|
Uuri maailma ja avasta uusi teid - tee seda privaatselt ja kogukonnaga arvestades!
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
Komunitateko doako eta iturburu irekiko aplikazioa OpenStreetMap datuetan oinarrituta eta gardentasuna, pribatutasuna eta irabazi asmorik gabeko konpromisoarekin indartua. Comaps Organic Maps-en fork edo aldaera bat da, eta hori, aldi berean, maps.me-ren forka da.
|
|
||||||
|
|
||||||
Irakurri proiektuaren zergatia eta haren norabidea <b> <i> codeberg.org/comaps </ i> </ b>.
|
|
||||||
Sartu komunitatean eta lagundu maparik onena aplikatzen
|
|
||||||
• Erabili aplikazioa eta horren berri eman
|
|
||||||
• Eman feedbacka eta txostenetako gaiak
|
|
||||||
• Eguneratu maparen datuak aplikazioan edo OpenStreetMap webgunean
|
|
||||||
|
|
||||||
‣ <b> Konexiorik gabe fokatuta </ b> Planifikatu eta nabigatu atzerrira bidaiatzea, telefono zerbitzu beharrik gabe, bilaketa-biderapenak urruneko ibilaldian eta abar. Aplikazio funtzio guztiak lineaz kanpo lan egiteko diseinatuta daude.
|
|
||||||
‣ <b> Pribatutasuna errespetatzea </ b> errespetatzea: aplikazioa pribatutasunarekin diseinatuta dago, ez du pertsonak identifikatzen, ez du jarraipena egiten, eta ez du informazio pertsonala biltzen. Iragarkirik ez.
|
|
||||||
‣ <b> Sinplea eta leundua </ b>: Ezinbestekoa da funtzionatzen duten ezaugarriak erabiltzeko.
|
|
||||||
‣ <b> Zure bateria eta espazioa gordetzen ditu </ b>: ez du bateria xahutzen beste nabigazio aplikazioak bezala. Mapa trinkoak. Gorde espazio preziatua zure telefonoan.
|
|
||||||
‣ <b> Librea eta komunitateak eraikitakoa: Jendeak aplikazioa eraikitzen lagundu zuen aplikazioa eraikitzen lagunduz OpenStreetMap, probatu eta funtzioei buruzko iritzia emanez eta garapen trebetasunak eta dirua lagunduz.
|
|
||||||
‣ <b> Erabakiak eta finantza irekiak eta gardena, irabazi asmorik gabeko eta guztiz irekitako iturria. </ B>
|
|
||||||
|
|
||||||
<b> Ezaugarri nagusiak </ b>:
|
|
||||||
• Deskargatu mapa zehatzak Google Maps-ekin eskuragarri ez dauden lekuekin
|
|
||||||
• Mendiko modua nabarmendutako mendi ibilbideak, kanpinak, ur iturriak, gailurrak, sestra-lerroak, etab
|
|
||||||
• Bideak eta bidegorriak
|
|
||||||
• Jatetxe, gas geltokiak, hotelak, dendak, bisitak eta bestelako interesguneak
|
|
||||||
• Bilatu izenaren edo helbide baten arabera edo interes-kategoriaren arabera
|
|
||||||
• Oinez, txirrinduaz edo gidatzeko ahots-oharrekin nabigazioa
|
|
||||||
• Markatu zure gogoko lekuak sakatze bakarrarekin
|
|
||||||
• Lineaz kanpoko Wikipedia artikuluak
|
|
||||||
• Metroaren garraio geruza eta jarraibideak
|
|
||||||
• Arrastoen grabazioa
|
|
||||||
• Laster-markak eta ibilbideak esportatu eta inportatu KML, KMZ, GPX formatuetan
|
|
||||||
• Gauean erabiltzeko modu iluna
|
|
||||||
• Hobetu mapako datuak guztiontzat oinarrizko editore integratua erabiliz
|
|
||||||
|
|
||||||
<b> Askatasuna hemen </ b> da
|
|
||||||
Ezagutu zure bidaia, nabigatu munduan pribatutasunarekin eta komunitatez abangoardian!
|
|
||||||
@@ -1 +1 @@
|
|||||||
CoMaps- Mendia, bizikleta, autoa, dena offline
|
CoMaps- Mendia, bizikleta, autoa. Dena offline eta pribatutasunearekin
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
Yhteisövetoinen, ilmainen ja avoimeen lähdekoodiin perustuva karttasovellus, jonka pohjalla käytetään OpenStreetMapin avointa karttadataa. Sovelluksen kehityksessä on sitouduttu läpinäkyvyyteen, yksityisyyteen ja voittoa tavoittelemattomuuteen. CoMapsin projekti on haarautunut Organic Mapsista, joka taas on haarautunut aiemmin Maps.ME:stä
|
|
||||||
|
|
||||||
Lue lisää projektin tavotteista ja suunnasta osoitteesta <b><i>codeberg.org/comaps</i></b>.
|
|
||||||
Liity yhteisöön ja auta kehittämään paras saatavilla oleva karttasovellus
|
|
||||||
• Käytä sovellusta ja kerro siitä myös muille
|
|
||||||
• Anna palautetta ja raportoi ongelmia
|
|
||||||
• Päivitä karttoja, joko sovelluksessa tai OpenStreetMapin verkkosivuilla
|
|
||||||
|
|
||||||
‣ <b>Offline-painotteinen</b>: Suunnittele ja navigoi ulkomailla ilman mobiiliverkkoja. Kaikki sovelluksen toiminnot on suunniteltu käytettäväksi ilman verkkoyhteyttä.
|
|
||||||
‣ <b>Kunnioittaa yksityisyyttä</b>: Sovellus on suunniteltu yksilön yksityisyys silmälläpitäen. Sovellus ei tunnista tai kerää tietoja sinusta. Mainosvapaa.
|
|
||||||
‣ <b>Yksinkertainen ja viimeistelty</b>: Olennaiset ominaisuudet, joita on helppo käyttää.
|
|
||||||
‣ <b>Säästä akkua ja tallennustilaa</b>: Ei kuluta akkua, kuten muut navigointisovellukset. Kompaktit kartat säästävät arvokasta tallennustilaa puhelimessasi.
|
|
||||||
‣ <b>Ilmainen ja yhteisön luoma</b>: Vapaaehtoiset, kuten sinä olette auttaneet sovelluksen kehityksessä lisäämällä paikkoja OpenStreetMap:iin, testaamalla sovellusta ja antamalla palautetta. Voit myös auttaa kehittämällä ominaisuuksia ja lahjoittamalla sovelluskehitykseen
|
|
||||||
‣ <b>Avoin ja läpinäkyvä päätöksenteko sekä rahoitus. Voittoa tavoittelematon ja täysin avoimeen lähdekoodiin perustuva.</b>
|
|
||||||
|
|
||||||
<b>Tärkeimmät ominaisuudet</b>:
|
|
||||||
• Ladattavat yksityiskohtaiset kartat paikoista, joita ei löydy edes Google Maps:sta
|
|
||||||
• Ulkoilutila, josta löytyy korostettuna reitit, leirintäpaikat, vesipisteet, huiput ja korkeuserot yms.
|
|
||||||
• Kävely- ja pyörätiet
|
|
||||||
• Kiinnostavat paikat, kuten ravintolat, huoltoasemat, hotellit, kaupat, nähtävyydet ja monta muuta
|
|
||||||
• Etsi nimellä, osoitteella tai kiinnostavan paikan kategorialla
|
|
||||||
• Navigointi ääni-ilmoituksilla kävellessä, pyöräillessä tai ajaessa
|
|
||||||
• Tallenna suosikkipaikkasi yhdellä napautuksella
|
|
||||||
• Offline Wikipedia-artikkelit
|
|
||||||
• Maanalaisen liikenteen tasot ja ohjeet
|
|
||||||
• Reittien tallennus
|
|
||||||
• Tuo ja vie kirjanmerkkejä ja reittejä KML-, KMZ- ja GPX-formaateissa
|
|
||||||
• Tumma tila iltaa ja yötä varten
|
|
||||||
• Paranna karttadataa kaikille sisäänrakennetulla editorilla
|
|
||||||
|
|
||||||
<b>Vapaus on täällä</b>
|
|
||||||
Löydä matkasi ja navigoi maailmalla yksityisyyden ja yhteisön tukemana!
|
|
||||||
@@ -1 +1 @@
|
|||||||
CoMaps - Navigoi ilman verkkoyhteyttä yksityisesti
|
CoMaps - Patikoi, pyöräile, autoile ilman verkkoyhteyttä yksityisesti
|
||||||
|
|||||||
@@ -14,19 +14,21 @@ Rejoignez la communauté et aidez-nous à créer la meilleure application de nav
|
|||||||
‣ <b>Prises de décisions et comptes clairs et transparents, but non lucratif et complètement open source.</b>
|
‣ <b>Prises de décisions et comptes clairs et transparents, but non lucratif et complètement open source.</b>
|
||||||
|
|
||||||
<b>Fonctionnalités principales :</b>
|
<b>Fonctionnalités principales :</b>
|
||||||
• Cartes détaillées téléchargeables avec des lieux non disponibles sur Google Maps
|
<ul>
|
||||||
• Mode extérieur avec sentiers de randonnée, campings, sources d'eau, sommets, courbes de niveau, etc. surlignés
|
<li>Cartes détaillées téléchargeables avec des lieux non disponibles sur Google Maps</li>
|
||||||
• Chemins piétons et pistes cyclables
|
<li>Mode extérieur avec sentiers de randonnée, campings, sources d'eau, sommets, courbes de niveau, etc. surlignés</li>
|
||||||
• Points d'intérêt comme des restaurants, stations-service, hôtels, magasins, lieux touristiques et bien plus
|
<li>Chemins piétons et pistes cyclables</li>
|
||||||
• Recherche par nom, adresse ou catégorie de point d'intérêt
|
<li>Points d'intérêt comme des restaurants, stations-service, hôtels, magasins, lieux touristiques et bien plus</li>
|
||||||
• Navigation avec annonces vocales pour la marche, le vélo ou la conduite
|
<li>Recherche par nom, adresse ou catégorie de point d'intérêt</li>
|
||||||
• Mettez en favori vos lieux préférés en un seul clic
|
<li>Navigation avec annonces vocales pour la marche, le vélo ou la conduite</li>
|
||||||
• Articles Wikipédia hors-ligne
|
<li>Mettez en favori vos lieux préférés en un seul clic</li>
|
||||||
• Plan de métro et indications pour s'y rendre
|
<li>Articles Wikipédia hors-ligne</li>
|
||||||
• Enregistrement des parcours
|
<li>Plan de métro et indications pour s'y rendre</li>
|
||||||
• Exportez et importez vos favoris aux formats KML, KMZ et GPX
|
<li>Enregistrement des parcours</li>
|
||||||
• Mode sombre pour utiliser pendant la nuit
|
<li>Exportez et importez vos favoris aux formats KML, KMZ et GPX</li>
|
||||||
• Amélioration de la carte par tout le monde avec un éditeur simple intégré
|
<li>Mode sombre pour utiliser pendant la nuit</li>
|
||||||
|
<li>Amélioration de la carte par tout le monde avec un éditeur simple intégré</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<b>La liberté est ici</b>
|
<b>La liberté est ici</b>
|
||||||
Découvrez votre voyage, naviguez dans le monde en plaçant la vie privée et la communauté au premier plan !
|
Découvrez votre voyage, naviguez dans le monde en plaçant la vie privée et la communauté au premier plan !
|
||||||
|
|||||||
|
After Width: | Height: | Size: 737 KiB |
|
Before Width: | Height: | Size: 655 KiB |
|
After Width: | Height: | Size: 765 KiB |
|
Before Width: | Height: | Size: 532 KiB |
|
After Width: | Height: | Size: 735 KiB |
|
Before Width: | Height: | Size: 391 KiB |
|
After Width: | Height: | Size: 594 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 263 KiB |
@@ -1,7 +1,8 @@
|
|||||||
Présentation du logo CoMaps !
|
• Données OpenStreetMap du 02 juin
|
||||||
• Amélioration des courbes d’altitude à une précision de 20 ou 50 mètres pour de nombreuses régions
|
• Ajout d'une option pour personnaliser le bouton tout à gauche sur l'écran principal
|
||||||
• Ajout d'un lien vers les images Panoramax des POI
|
• Ajout de la possibilité d'enregistrer un itinéraire en tant que traces GPS
|
||||||
• Données OpenStreetMap du 13 juillet
|
• Ajout du métro de Qingdao, et divers objets sur la carte
|
||||||
• Affichage de l’état des heures d’ouverture lors de la sélection d’un POI
|
• Support de la barre de navigation transparent en mode clair
|
||||||
• Mise à jour du style(végétation et zones humides), mise à jour de certaines icônes de la carte
|
• Ajout des tags Mastodon et Bluesky sur les lieux et dans l'éditeur
|
||||||
• Outdoors: Améliorations de la visibilité des courbes d'altitude
|
• Affichage de l'azimut
|
||||||
|
• Mise à jour des traductions
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Navigation cartographique facile - Vivez de grands voyages - Propulsé par la communauté
|
Navigation facile - Découvrez plus lors de votre voyage - Fait par la communauté
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
CoMaps - Rando, vélo, conduite hors ligne & privée
|
CoMaps - Randonnée, vélo, conduite hors ligne en toute confidentialité
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
Aplicación de mapas gratuíta, de código aberto e xestionada pola comunidade, obtén os datos desde OpenStreetMap e co compromiso reforzado coa transparencia, privacidade e non ter o beneficio económico como obxectivo. CoMaps é unha bifurcación ou derivada de Organic Maps, que pola súa parte ven sendo unha bifurcación de Maps.ME.
|
|
||||||
|
|
||||||
Vai a <b><i>codeberg.org/comaps</i></b> e coñece as razóns da necesidade deste proxecto e as decisións tomadas.
|
|
||||||
Únete alí á comunidade e axuda a que teñamos a mellor aplicación de mapas
|
|
||||||
• Usa a aplicación e dille a outras persoas que o fas
|
|
||||||
• Informa de fallos e publica túa experiencia
|
|
||||||
• Actualiza os datos do mapa na aplicación ou no sitio web OpenStreetMap
|
|
||||||
|
|
||||||
‣ <b>Sen conexión de datos</b>: planea a viaxe e sigue a ruta sen precisar unha conexión á rede móbil, busca lugares relevantes nas andainas máis longas, etc. Todas as características da aplicación están deseñadas para funcionar sen precisar conexión de datos.
|
|
||||||
‣ <b>Respecto pola privacidade</b>: a aplicación está deseñada coa privacidade en primeiro plano - non identifica ás persoas, non te segue, non recolle información sobre ti. Non ten publicidade.
|
|
||||||
‣ <b>Simple e organizada</b>: características esenciais, fáciles de usar e que funcionan.
|
|
||||||
‣ <b>Aforra batería e espazo</b>: non esgota a batería como outras aplicacións de navegación. Os mapas compactos aforran espazo na memoria do dispositivo.
|
|
||||||
‣ <b>Gratuíta e feita pola comunidade</b>: persoas coma ti que axudan a crear a aplicación engadindo lugares en OpenStreetMap, probando novas características e dando a súa opinión, colaborando ao seu desenvolvemento con código ou financiamento.
|
|
||||||
‣ <b>Proceso de toma de decisións Aberto e Transparente para os temas económicos, Sen ánimo de lucro e totalmente de Código Aberto</b>
|
|
||||||
|
|
||||||
<b>Características principais</b>:
|
|
||||||
• Mapas detallados descargables con lugares que non están dispoñibles en Google Maps
|
|
||||||
• Modo para actividades en exterior con camiños para andainas, lugares para acampar, fontes de auga, picos dos montes, curvas de nivel, etc
|
|
||||||
• Rutas a pé e en bicicleta
|
|
||||||
• Puntos de interese como restaurantes, gasoliñeiras, hoteis, tendas, miradores e moitos máis
|
|
||||||
• Busca polo nome ou polo enderezo ou por categoría do punto de interese
|
|
||||||
• Navegación con anuncios por voz para camiñar, ir en bicicleta ou conducir
|
|
||||||
• Marca os lugares favoritos cun só toque
|
|
||||||
• Artigos da Wikipedia sen conexión
|
|
||||||
• Mapas do transporte por Metro
|
|
||||||
• Gravación das rutas
|
|
||||||
• Exportación e Importación de marcadores e rutas nos formatos KML, KMZ e GPX
|
|
||||||
• Modo escuro para a noite
|
|
||||||
• Contribúe a mellorar o mapa para todas as persoas usando o editor básico incluído
|
|
||||||
|
|
||||||
<b>Aquí es Libre</b>
|
|
||||||
Atopa o teu camiño, navega polo mundo con privacidade e coa comunidade como prioridade!
|
|
||||||