Coder Social home page Coder Social logo

ev-map / evmap Goto Github PK

View Code? Open in Web Editor NEW
187.0 13.0 52.0 36.5 MB

Android app to find electric vehicle charging stations - compatible with community databases such as GoingElectric.de and OpenChargeMap.org.

Home Page: https://ev-map.app/

License: MIT License

Kotlin 94.64% Java 5.16% Ruby 0.09% Python 0.11%
charging-stations android electric-vehicle hacktoberfest map

evmap's Introduction

EVMap Build Status

Logo

Android app to find electric vehicle charging stations.

Get it on Google Play Get it on F-Droid

Features

  • Material Design
  • Shows all charging stations from the community-maintained GoingElectric.de and Open Charge Map directories
  • Realtime availability information (only in Europe)
  • Search for places
  • Advanced filtering options, including saved filter profiles
  • Favorites list, also with availability information
  • Integrated price comparison using Chargeprice.app (only in Europe)
  • Android Auto & Android Automotive OS integration
  • No ads, fully open source
  • Compatible with Android 5.0 and above
  • Can use Google Maps or OpenStreetMap as map backends - the version available on F-Droid only uses OSM.

Screenshots

Screenshot 1Screenshot 2

Development setup

The App is developed using Android Studio and should pretty much work out-of-the-box when you clone the Git repository and open the project with Android Studio.

The only exception is that you need to obtain some API keys for the different data sources that EVMap uses and put them into the app in the form of a resource file called apikeys.xml under app/src/main/res/values. You can find more information on which API keys are necessary for which features and how they can be obtained in our documentation page.

There are four different build flavors, googleNormal, fossNormal, googleAutomotive, and fossAutomotive.

  • The foss variants only use OSM data for the base map and place search. They should run on most Android devices, even those without Google Play Services.
    • fossNormal is intended to run on smartphones and tablets, and also includes the Android Auto app for use on the car display (however Android Auto may not work if the app is not installed from Google Play, see #319).
    • fossAutomotive can be installed directly on Android Automotive OS (AAOS) headunits without Google services. It does not provide the usual smartphone UI, and requires an implementation of the AOSP template app host to be installed. If you are an OEM and would like to distribute EVMap to your AAOS vehicles, please get in touch.
  • The google variants also include access to Google Maps data.
    • googleNormal is intended to run on smartphones and tablets, and also includes the Android Auto app for use on the car display.
    • googleAutomotive can be installed directly on car infotainment systems running the Google-flavored Android Automotive OS (Google Automotive Services / "Google built-in"). It does not provide the usual smartphone UI, and requires the Google Automotive App Host to run, which should be preinstalled on those cars and can be updated through the Play Store.

We also have a special documentation page on how to test the Android Auto app.

Translations

You can use our Weblate page to help translate EVMap into new languages.

Translation status

Sponsors

Many users currently support the development EVMap with their donations. You can find more information on the Donate page on the EVMap website.

JawgMaps
Since May 2024, JawgMaps provides their OpenStreetMap vector map tiles service to EVMap for free, i.e. the background map displayed in the app if OpenStreetMap is selected as the data source.

Powered by Chargeprice
Since April 2021, Chargeprice.app provide their price comparison API at a greatly reduced price for EVMap. This data is used in EVMap's price comparison feature.

evmap's People

Contributors

altonss avatar comradekingu avatar dbrgn avatar dependabot[bot] avatar iboboc avatar ixam97 avatar jean-baptistec avatar johan12345 avatar licaon-kter avatar pt2121 avatar weblate 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evmap's Issues

difference between type2 plug and outlet

Since the goingelectric API outputs "Type 2" for the plug and outlet, maybe it is better to put these two together. So for example:
1x Type 2 plug
1x Type 2 outlet
=> it should show 2x Type 2

And we could add a little note to let people know that there are also cables. Since New Motion doesn't make a difference either, it should be easier to get the status from there? Because right now these stations don't get live status.

Notifications for chargers

e.g. if there is a new fault report for one of your favorite chargers, or when a charger becomes available/unavailable

Would require a background task to regularly check for updates. In the former case, the background task should run always, but at low intervals (maybe once a day) to save battery and data. In the latter case, the background task should run at a higher frequency (maybe every 5-10 minutes), but only for a specified amount of time.

Integration with chargeprice.app

Chargeprice.app is a nice website to check the prices of charging stations with different providers / charging cards.

As a first step, we have integrated a button which opens the Chargeprice.app site in a browser with the correct charging station selected. This required a small change on Chargeprice.app's side: chargeprice/chargeprice-client#14

In the future, it might be possible to add a more native integration through their API: https://github.com/hoenic07/chargeprice-api-docs

Feature : Add charging timer

A user can start this timer in the app .
Because the app has no information of the car the user hast to enter the actual SoC in%

After user entered this info + charge speed from GE directory the app sends a push notification when SoC 80% and 100% is reached .

In the future this could be combined with real time data received via car API.

Make a Google Maps-free version of the App

It has been requested a few times to build a version of this app that uses OpenStreetMap instead of Google Maps - which would then be fully open source and suitable for inclusion in F-Droid. It would also be able to run on Android devices without Google Play Services (e.g. custom ROMs).

In principle, I would like this to happen, but it causes a few problems:

  • OSM data are free, but hosting is not
    • Freely available tile servers have strict usage policies, e.g. OSM themselves do not allow distributing apps that use their tile server. I haven't found a usage policy for Carto basemaps, which e.g. wo-ist-markt seems to be using.
    • Commercial tile providers like Mapbox and MapTiler have free plans, but only up to a certain limit.
    • GoingElectric.de is also hosting OSM tiles themselves. They seem to be available using the same API keys as the GE charging stations API, but this is not documented anywhere and therefore probably not intended to be used by external applications.
    • We could host map tiles ourselves, but this is costly due to the high hardware requirements.
    • Google Maps, on the other hand, is currently free for all Android Apps without any usage limits.
  • Google Maps provides some features which are not easily replacable with OSM data (satellite images, traffic data). These would then not be available in the app anymore.
  • Maps is not the only thing in the app which uses Google services. Place search ("geocoding") would also need to be replaced, and APIs for this cost money as well.
    Additionally, we would need to replace Fused Location Provider API and Google Play In-App purchases, but that would not be very complicated.
  • I wouldn't want to completely replace Google Maps, but instead offer both Google Maps and OSM in parallel. But this would also difficult to maintain due to the completely different APIs of Google Maps and osmdroid. https://github.com/sharenowTech/AnyMaps looks a possible solution, but it seems to not be actively maintained anymore.

Because of all these issues, I will not actively work on this at the moment. If someone is interested, feel free to search solutions to these problems and start a PR.

Add splash screen

show the app logo while the app is starting (see e.g. Google Maps)

without artificially slowing down the start, of course

Filter function

  • Filter by connector type
  • Filter by power
  • Filter by minimum number of connectors
  • Filter by compatible charging cards/apps
  • only show stations with free charging
  • only show stations with free parking
  • Exclude CPOs (e.g. show all charging stations except Ionity)

Add remaining plug type icons

remaining ones supported by GoingElectric and not EVMap:

  • Type 1
  • Type 3C
  • Swiss household plugs

remaining ones supported by OpenChargeMap and not EVMap:

  • CCS Type 1
  • Type 3A
  • Tesla North American plug (NACS)
  • ...

show full opening hours

The opening hours view could be expandable to show opening hours for all weekdays (if available).

Include Chargelog (Ladelog)

It would be nice to see the chargelog (Ladelog) in the details.
Recent successful entries indicate a working charger.

Android for Cars/Auto

This is a great app!
It would be really cool if you could run it as phone projection in Android for Cars/Auto.

Bug : change of map style leads to crash the app

Device : Samsung S10 with android 10 (patch 1.Juni)

How to reproduce :

  • click on "layer" button in the top right corner

  • touch anywhere in the app to scale the map

  • app is freezing now and needs to be restarted

app crashs on startup

After the update, I had to manually uninstall and install the app again. On the first time, it opened well but didn't show any map. Now it crashes every time when I want to start the app.

The device is a Xiaomi Mi A1, Android One 9.0.

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.