GoogleMapCurrentLocation

Track My Location

This is a simple android app where you can brodcast your location and everyone who has your dynamically generated unique key can track you in near real-time.

I created this project just for learning puposes particularly about firebase (firestore db), google maps api and google location api.

Screenshots

WhatsApp Image 2023-04-01 at 7 44 16 AMWhatsApp Image 2023-04-01 at 7 44 16 AM (1)WhatsApp Image 2023-04-01 at 7 44 16 AM (2)WhatsApp Image 2023-04-01 at 7 44 17 AMWhatsApp Image 2023-04-01 at 7 44 17 AM (1)

Built With

  • [![Android Studio]

(back to top)

### References - [Set Up Google Play Services](https://developers.google.com/android/guides/setup) - [Getting Started - Google Maps](https://developers.google.com/maps/documentation/android-api/start) - [Get API Key](https://developers.google.com/maps/documentation/android-api/signup) - [Add Marker in Maps](https://developers.google.com/maps/documentation/android-api/map-with-marker) - Firebase Documentation (Guides) ([Link](https://firebase.google.com/docs/guides/)) - [Get Started with Firebase Firestore](https://firebase.google.com/docs/firestore/quickstart) - [Firestore Data Model](https://firebase.google.com/docs/firestore/data-model) - [Firestore - Get Data](https://firebase.google.com/docs/firestore/query-data/get-data) - [Firestore - Structure Data](https://firebase.google.com/docs/firestore/manage-data/structure-data)

How it works?

hiw

  • The first device get continous location update from gps, network etc. then
  • Write and update the location data to a specific firebase firestore document
  • Last, the second device read that firebase firestore document and show the marker in that location

Hot to integrate Google Maps & Location API

To use google maps in an android app you can use SupportMapFragment or MapView

  • Using google maps fragment (inside a layout or as a root tag)

xml

  • Then you have to add permissions and google maps api key in the AndroidManifest.xml file
  • as_1

Add permisions for coase and fine location also add meta-data tag for API key

Integrate Google Play Services for Firebase into android project

  • Add this gradle plugin 'com.google.gms:google-services:3.1.1' into dependencies block of the top-level gradle build file

gr_1

  • Apply the google play services plugin in the app level gradle build file (app project)

gr_2

  • Then you can add google play services library for maps, location, places etc. (firebase needs google play services to operate)

  • You need to download and add google-services.json file to your project_name/app/ directory from firebase console when you add an android app to your firebase project
  • Here are the complete figure

Getting API Key for Google Maps & Location

  • Go to the google cloud console page and click credentials submenu (or Get API Key )

ga_1

  • Then create a new credential

ga_2

  • New API key has been created, you can copy the key and paste in the manifest file. To restrict access of the key click the restrict button

  • You can restrict api key usage by selecting the platform or IP address by which the api call would be requested (Application restrictions)

ga_4

  1. Select one of the application restrictions (in this case Android)
  2. Insert your android app package name
  3. Insert SHA-1 fingerprint of your app
  4. Click Save button

_

  • To get SHA-1 key you can use your android studo by opening your particular project -> select signingReport gradle task -> copy & paste the SHA-1 key into the android app restriction form

as_2

[TEAM] team