aniruddha-adhikary / mrt-buddy

Check the Balance of your Dhaka MRT Pass or Rapid Pass
https://mrtbuddy.com/
GNU General Public License v3.0
297 stars 81 forks source link

- feat: add map for metro and nearest metro (android) #74

Open ShakilAhmedShaj opened 2 weeks ago

ShakilAhmedShaj commented 2 weeks ago

https://github.com/user-attachments/assets/6f6e107f-565c-4944-aada-bf8ab77a24b5

This PR adds a Metro Location Map feature to the app, allowing users to view metro stations on a map and find the nearest metro station. It includes a new bottom tab for easy navigation to the map screen. All functionality is implemented without relying on paid Google APIs.

Key Features

  1. Displays all metro stations on an interactive map. Includes a "Show Nearest Metro" button to calculate and display the closest station based on the user's location.
  2. Added a dedicated "Metro Map" tab for easy access to the feature.

Notes:

  1. No reliance on paid APIs
  2. Implemented manual geospatial calculations for finding the nearest station.

PS: Implemented only for Android

Zamiul-rashid commented 2 weeks ago

Did you use the goole maps api or the open maps API ?

aniruddha-adhikary commented 2 weeks ago

@ShakilAhmedShaj Unfortunately we cannot support the use of Play Services based maps.

We want to keep our UI land fully in the common module shared between the two platforms. Both platforms should support the same broad set of features.

ShakilAhmedShaj commented 2 weeks ago

@Zamiul-rashid google map api, I intentionally uploaded the key on git. For the release on Play Store, key should be changed by the publisher.

ShakilAhmedShaj commented 2 weeks ago

@aniruddha-adhikary at this moment I have done the android, and same way it can be implemented on ios using platform specific code. Could you please share whats your plan on the Map then? because currenlty CMM dont support google map platform independently.

ShakilAhmedShaj commented 2 weeks ago

@aniruddha-adhikary I can understand, you want same features on both android and ios. in that case this pr need to be hold until someone do the same for ios part.

or there could be two seperate branch for android and ios.