Giter Site home page Giter Site logo

akylas / alpimaps Goto Github PK

View Code? Open in Web Editor NEW
56.0 4.0 0.0 134.24 MB

Offline map app iOS/Android

Home Page: https://www.akylas.fr

License: MIT License

JavaScript 13.66% TypeScript 35.28% CartoCSS 0.78% Ruby 0.80% SCSS 1.84% Java 0.76% Svelte 39.62% Less 6.39% HTML 0.18% Shell 0.22% CSS 0.06% Kotlin 0.41%
android gps ios location map maps openstreetmap planetiler slope

alpimaps's Introduction

Contributor Covenant GitHub repo stars GitHub License GitHub All Releases GitHub release Small translation badge

Installation

Get it on IzzyOnDroid Get it on PlayStore Get it on GitHub

Enjoying Alpi Maps?

Please consider making a small donation to help fund the project. Developing an application, especially one that is open source and completely free, takes a lot of time and effort.


Alpi Maps is a map application to help you prepare and enjoy your hike! Get all the info you need before you go, then enjoy all the data offline during your hike.

Alpi Maps also helps you in managing the GPS to get your precise location when needed while keeping the battery consumption to the lowest. Continued use of GPS running in the background can dramatically decrease battery life.

Alpi Maps data is base on OpenStreetMap, which means you can access almost anything anywhere in the world!

Map features:

  • enjoy more that 50 different map styles
  • enjoy more that 20 different map overlay styles like ski trails
  • enable / disable HD map for each style
  • combine map styles with opacity to create your own map
  • enjoy rotating and tilting map
  • use the Google Maps gestures you love so much like the double tap and drag to zoom!
  • query weather data for any point on the map( requires OSS Weather to be installed)

Offline Maps

AlpiMaps was created to be used with offline data so that you get access to everything offline. On Android that data is expected to be found on the SDCard under alpimaps_mbtiles. All the data can be generated using alpimaps_data_generator. But theoretically you should be able to use mbtiles acquired through other sources Here is an example of how it can look like image

  • Top level data are for world mapping. The idea is to be able to render the whole world at low zoom levels. routes stands for hiking/cycling routes. So you can get main hiking/cycling roads worldwide.
  • each subfolder represents a zone/country:
    • france_full.mbtiles: the whole france map. Equivalent to osm maps with a few changes (removed a few things and added others). All centered around hiking/cycling
    • etiles files: elevation/hillshade data. Gives you hillshading, slope percentages, elevation profiles and any point elevation
    • contours.mbtiles: give you elevation contour lines
    • routes.mbtiles: give you hiking/cycling routes at all levels
    • vtiles files: give you full routing queries with direction instructions for car/pedestrian,cycling... It also can give you surface stats like komoot does
    • nutigeodb files: gives you geocoding/reverse geocoding. You can search for a lot of things offline. This one i am not 100% happy with yet.

If you use those data, they will automatically be loaded on start and enable a ton of offline features:

  • full offline vector maps with OSM / Outdoor styles
  • query and point/line/polygon on the map
  • access elevation from any point of the map
  • compute routing for cycling/car/pedestrian
  • compute elevation profile for any route
  • compute stats profile for any route like komoot does
  • hillshade / slopes rendering
  • geocoding
  • render vector routes for hiking/cycling

GPS features:

  • follow your location on the map
  • choose wether to follow your location or only query your location when needed for the lowest battery consumption
  • choose the accuracy of the GPS for even lower battery consumption
  • access useful information about your position like altitude, orientation, sunset, sunrise...
  • track your position on any computed itinerary to see where you are at
  • see where you are from any point on the map : distance, orientation and altitude
  • decide wether you want the app to track you while in background or not
  • share your location with a screenshot of the map

Markers features:

  • add a marker from any point on the map
  • query the adress
  • manage your markers in lists for offline storage

Search features:

  • Alpi Maps use the OpenStreetMap database for its search module. Access all geo features, all businesses, cities and much more!
  • use the search as you type feature to quickly look for something in your markers or anywhere in the world
  • then use the search to look for businesses, restaurants, ... in the region you are currently seeing

tools

  • Compass tool allowing to find the direction to any point on the map.
  • satellites viewer: see which satellites are used to query your GPS location. Useful to understand why you don't have a good signal
  • option to show on lock screen: useful when cycling
  • option to force full brightness

Screenshots

| | | | | | |

Having issues, suggestions and feedback?

You can,

Languages: Übersetzungsstatus

Übersetzungsstatus

The Translations are hosted by Weblate.org.

alpimaps's People

Contributors

farfromrefug avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

alpimaps's Issues

Crash

Background

Device

Pixel 7

OS

GrapheneOS

Alpi Version

2.4.1.250

Symptom list (checked = solved)

  • freezing/crashing (see log below from "more info" option at the "alpi maps is not responding" dialogue)
    image_2023_11_17_15_57_49

  • list of maps does not render all the way across the screen
    Screenshot_20231117-133059

  • openstreetmap is the only one that loads (no map ever loads if OSM visibility is turned off)

Log Dump

type: ANR
osVersion: google/panther/panther:14/UP1A.231105.003/2023111500:user/release-keys
package: akylas.alpi.maps:250
process: akylas.alpi.maps
installer: com.machiav3lli.fdroid

activity: akylas.alpi.maps/com.tns.NativeScriptActivity
cause: ANR Input dispatching timed out (ddea2f4 akylas.alpi.maps/com.tns.NativeScriptActivity (server) is not responding. Waited 5001ms for MotionEvent)
info: ANR in akylas.alpi.maps (akylas.alpi.maps/com.tns.NativeScriptActivity)
PID: 31344
Reason: Input dispatching timed out (ddea2f4 akylas.alpi.maps/com.tns.NativeScriptActivity (server) is not responding. Waited 5001ms for MotionEvent)
Parent: akylas.alpi.maps/com.tns.NativeScriptActivity
ErrorId: 0a9fbb69-0d32-458a-8418-824346c1d307
Frozen: false
Load: 3.73 / 3.69 / 3.45
----- Output from /proc/pressure/memory -----
some avg10=0.87 avg60=1.26 avg300=2.45 total=306452217
full avg10=0.69 avg60=0.78 avg300=1.61 total=190720339
----- End output from /proc/pressure/memory -----
----- Output from /proc/pressure/cpu -----
some avg10=8.79 avg60=9.10 avg300=9.61 total=5570184223
----- End output from /proc/pressure/cpu -----
----- Output from /proc/pressure/io -----
some avg10=0.19 avg60=0.38 avg300=0.82 total=173830588
full avg10=0.14 avg60=0.23 avg300=0.50 total=108393718
----- End output from /proc/pressure/io -----

CPU usage from 23484ms to -1ms ago (2023-11-17 13:30:45.415 to 2023-11-17 13:31:08.899):
  67% 31344/akylas.alpi.maps: 54% user + 12% kernel / faults: 92692 minor 1937 major
  43% 1434/system_server: 31% user + 12% kernel / faults: 14337 minor 342 major
  27% 737/surfaceflinger: 19% user + 7.8% kernel / faults: 138 minor 73 major
  10% 739/android.hardware.composer.hwc3-service.pixel: 5.7% user + 4.3% kernel / faults: 76 minor 65 major
  6.8% 11095/org.unifiedpush.distributor.nextpush: 4.9% user + 1.9% kernel / faults: 2868 minor 811 major
  1.9% 6609/com.android.providers.media.module: 1.1% user + 0.8% kernel / faults: 3071 minor 1039 major
  4.3% 93/kswapd0: 0% user + 4.3% kernel
  3.3% 337/decon0_kthread: 0% user + 3.3% kernel
  3.3% 12414/net.mullvad.mullvadvpn:mullvadvpn_daemon: 0.8% user + 2.4% kernel / faults: 15 minor 10 major
  3.1% 1115/[email protected]: 2% user + 1% kernel / faults: 87 minor 96 major
31% TOTAL: 19% user + 10% kernel + 0.2% iowait + 1.3% irq + 0.6% softirq
CPU usage from 45ms to 540ms later (2023-11-17 13:31:08.944 to 2023-11-17 13:31:09.439):
  131% 1434/system_server: 67% user + 64% kernel / faults: 1098 minor 27 major
    47% 3506/AnrAuxiliaryTas: 14% user + 32% kernel
    24% 11905/binder:1434_14: 17% user + 7.4% kernel
    12% 14505/binder:1434_16: 7.4% user + 4.9% kernel
    9.9% 1434/system_server: 4.9% user + 4.9% kernel
    9.9% 2815/binder:1434_5: 4.9% user + 4.9% kernel
    4.9% 3748/binder:1434_E: 2.4% user + 2.4% kernel
    2.4% 1620/android.ui: 2.4% user + 0% kernel
    2.4% 1911/InputDispatcher: 0% user + 2.4% kernel
    2.4% 1912/InputReader: 0% user + 2.4% kernel
    2.4% 11733/binder:1434_13: 2.4% user + 0% kernel
  193% 31344/akylas.alpi.maps: 141% user + 51% kernel / faults: 12109 minor 20 major
    94% 31344/kylas.alpi.maps: 90% user + 4.2% kernel
    94% 31372/Signal Catcher: 51% user + 42% kernel
  39% 737/surfaceflinger: 28% user + 10% kernel / faults: 10 minor 20 major
    13% 737/surfaceflinger: 8.7% user + 4.3% kernel
    13% 771/RenderEngine: 10% user + 2.1% kernel
    4.3% 807/mali-cpu-comman: 2.1% user + 2.1% kernel
    4.3% 825/app: 2.1% user + 2.1% kernel
    2.1% 768/binder:737_1: 2.1% user + 0% kernel
    2.1% 805/mali-event-hand: 0% user + 2.1% kernel
    2.1% 821/TimerDispatch: 2.1% user + 0% kernel
    2.1% 836/surfaceflinger: 2.1% user + 0% kernel
  26% 2732/com.android.systemui: 15% user + 10% kernel / faults: 30 minor 16 major
    15% 2836/RenderThread: 10% user + 5.2% kernel
    7.9% 2732/ndroid.systemui: 2.6% user + 5.2% kernel
    2.6% 20435/binder:2732_E: 0% user + 2.6% kernel
  8.8% 739/android.hardware.composer.hwc3-service.pixel: 6.6% user + 2.2% kernel / faults: 1 minor 1 major
    11% 2030/binder:739_8: 6.6% user + 4.4% kernel
  4.2% 337/decon0_kthread: 0% user + 4.2% kernel
  4.4% 865/android.hardware.power-service.pixel-libperfmgr: 2.2% user + 2.2% kernel
  4.9% 1288/irq/503-fts_ts: 0% user + 4.9% kernel
  2% 1/init: 2% user + 0% kernel / faults: 1 minor 1 major
    2% 1/init: 2% user + 0% kernel
  2% 50/rcuop/4: 0% user + 2% kernel
  2% 61/ksoftirqd/6: 0% user + 2% kernel
  2.1% 350/thermal_BIG: 0% user + 2.1% kernel
  2.1% 674/sugov:0: 0% user + 2.1% kernel
  2.2% 818/mali_kbase_csf_: 0% user + 2.2% kernel
  2.3% 1020/netd: 0% user + 2.3% kernel / faults: 22 minor
   +0% 3512/Dns_111_10270: 0% user + 0% kernel
   +0% 3517/Dns_111_10270: 0% user + 0% kernel
  2.3% 1115/[email protected]: 2.3% user + 0% kernel
    2.3% 10740/samsung.hardwar: 0% user + 2.3% kernel
  2.5% 1481/twoshay: 2.5% user + 0% kernel
    2.5% 1809/binder:1481_2: 2.5% user + 0% kernel
  2.6% 2944/android.hardware.input.processor-service: 2.6% user + 0% kernel
    2.6% 2948/classifier_pool: 2.6% user + 0% kernel
  3.9% 12414/net.mullvad.mullvadvpn:mullvadvpn_daemon: 3.9% user + 0% kernel
57% TOTAL: 33% user + 22% kernel + 1.3% irq + 0.5% softirq

Crash on launch

Good of you to make this app open-source, but a spot of QA before release would be much appreciated.

Documentation and understanding why maps don't work

I'm trying to use the IGN map, and I supplied a key, but there may be special parameters required. Do you have documents explaining how to do this?

It would be nice to have access to a request/response log view to be able to understand why a given map doesn't work.

My perspective is that I used to develop an Android-native map app, MyTrails, and I'm trying to find a successor. I was thinking of using React Native, but Nativescript doesn't sound too dissimilar. I really like AlpiMaps so far 👍 .

Alpimaps sets brightness to minimum on startup and I cannot see anything

I wanted to try Alpimaps, but every time I open the app the screen goes very dark, as if the brightness was set to the minimum (or even lower?) and it's really hard to see anything. I have managed to tap on some buttons but I don't see any option to change the brightness, so I cannot try the app.

I have tried deleting cache and data, and reinstalling the app, both from F-Droid and github. It keeps happening every single time.

My device is a FairPhone 4 running iodéOS 3.4 (based on Android 12).

AlpiMaps crashes on start

I discovered AlpiMaps recently, and had it installed on my phone. It worked as far as I could test it. But when I updated to the new versions (2.0.0.227/8/9), AlpiMaps crashes on the splash screen.
I tried to uninstall it and reinstall an older version (2.0.0.226), but this one crashes now too.
My phone is a Fairphone 3 with an Android 11 custom ROM (/e/ 1.8.1) with MicroG.
Is there any way to get some logs in order to fix this crash?
Thanks!

Not launch

Hello

The application not start it crash immediatly ....

I am using Huawei Mate 40 pro.

Thanks

brightness is set to maximum, and it's blinding

Somewhat related to #1, I guess.
Since the last update (running 2.0.0.232 from F-Droid), if I open the app, the screen brightness is set to maximum (or it feels like it). I try putting it in dark mode, but changes nothing. Although, whoever uses dark mode doesn't need much brightness...

I tried the settings, and couldn't find anything... but I can't look at the screen to look for stuff, it's way too bright.

Is there a way for it not to change the brightness at all, so that we can control that from the general settings on the phone? Not to sound rude, but I don't see the purpose of a map app tweaking the brightness settings.

Thanks for the app and the hard work, I'm looking forward to be able to use it again.

Question on permissions

Well, guess you're waiting for this one already with the new release still hot, so I can't disappoint you, right?

! repo/akylas.alpi.maps_251.apk declares sensitive permission(s):
 android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION
 android.permission.MANAGE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE
 android.permission.CAMERA android.permission.READ_PHONE_STATE

got most of them covered already (I hope):

      android.permission.ACCESS_COARSE_LOCATION: needed for navigation
      android.permission.ACCESS_FINE_LOCATION: needed for navigation
      android.permission.MANAGE_EXTERNAL_STORAGE: needed to access data generated off-device e.g. using the alpimaps_data_generator
      android.permission.READ_EXTERNAL_STORAGE: needed to access data generated off-device e.g. using the alpimaps_data_generator

which leaves CAMERA and READ_PHONE_STATE. I've searched the code, but not being an Android dev (and especially having no ideas about Svelte and TypeScript), I had no success there. Can you once more help me out, please?

image

And in case I didn't yet mention that DEPENDENCY_INFO_BLOCK, which is only useful to Google but to nobody else:

android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

For some background: that BLOB is supposed to be just a binary representation of your app's dependency tree. But as it's encrypted with a public key belonging to Google, only Google can read it – and nobody else can even verify what it really contains.

Sentry

I just noticed the latest release ships with the Sentry SDK. Could you please clarify how you use it – especially if it is strictly opt-in, or what details are collected automatically without prior confirmation by the user, and what control the user has over what is collected?

No offense meant, but this is something privacy-aware users would like to know in advance 😉 So thanks in advance for letting us know!

App not asking for storage permission on startup

After a fresh install on my Pixel 7, when I open the app I instantly get the below message. After that the map itself (obviously) doesnt load.

Screenshot_20230301-093653

If i click Ok and then tap the location icon it brings up the permission prompt.

Also UI elements seem to conflict with the status bar. Search on the main screen and the app bar in the settings.

signing key

Something happened to your signing key it seems. Today's update shipped signed with this one:

Number of signers: 1
Signer #1 certificate DN: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Signer #1 certificate SHA-256 digest: 706a362910a6b49205c09dab9092d1e923be631b0e9327cfe0a93c5ae30c9763
Signer #1 certificate SHA-1 digest: b2f9230c49c2541d72751de78f603d55cf9d0c30
Signer #1 certificate MD5 digest: cb90cd211082cdae128a0245e6d1a22f
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048

which was blocked as it's not listed as AllowedAPKSigningKey. 254 had this one:

Number of signers: 1
Signer #1 certificate DN: CN=Appcelerator Titanium, OU=Nolan's Gang, O=Appcelerator, L=Mountain View, ST=CA, C=US
Signer #1 certificate SHA-256 digest: d6d29621132d4af29ba142acf0a6e587daafb38a61d515ca528ad6d2b05ba485
Signer #1 certificate SHA-1 digest: cce37f08fa039c8807bccbab7b8861f4759d479f
Signer #1 certificate MD5 digest: 665ed17fc42cb973ad7f4ddd29125656
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 1024

Can you please check what went wrong, and replace the APK with one signed by the correct key? Thanks in advance!

Impossible to set up the map data path

When I tap on the line "map data path" from the settings menu, nothing happens. Impossible to set up the map data path.
I've version 2.0.6 build 238 with Android 10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.