Maps are of great use and it increases the productivity of an app. Google Maps API allows Android developers to integrate Google Maps in their app. Below is the step-by-step process to integrate Google Maps into Android applications:
- Goto https://developers.google.com/maps/documentation/android-api/signup and click on “GET STARTED” button as shown in the figure:
- Now select the Map checkbox and click on the Continue button as shown below:
- Select a project in which you want to enable Google Map API, and click on Next. A new key will be generated for the chosen project.
- Skip the Billing Process
- For integrating Google Map API, your machine’s SHA1 certificate is needed. So to find SHA1 certificate, follow below steps:
- Open Command Prompt and go to your Java bin Folder
cd C:\Program Files\Java\jdk1.8.0_91\bin
- Give the following CMD command for getting Certificate Footprints:
keytool -list -v -keystore “%USERPROFILE%\.android\debug.keystore” -alias androiddebugkey -storepass android -keypass android
- Go to https://console.developers.google.com/apis/credentials
- In the API keys section, click on Pencil button made on the right of API key that you want to select, for attaching your app with.
- In Application Restrictions, select Android apps
- Click on Add package name and fingerprint
- Enter your app’s package name and the fingerprint which was found in above steps and click Save button.
- Insert the following in Project ->app ->src ->build.gradle ->dependencies
compile 'com.google.android.gms:play-services:11.6.0'
- Add the following declaration within the element of AndroidManifest.xml
html
< meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> < meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="ENTER API_KEY GENERATED BY YOU IN ABOVE STEPS" /> |
- Add the following permissions in Manifest.xml
html
< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> < uses-permission android:name="android.permission.INTERNET" /> < uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
- Specify following specifications in Manifest.xml
html
< uses-feature android:glEsVersion="0x00020000" android:required="true"/> |
- Add the following fragment code in ActivityMain.xml for adding Google map to your activity.
html
< fragment android:id="@+id/map" class="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> |
- Add the following code in MainActivity.java
Java
import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import androidx.appcompat.app.AppCompatActivity; public class MapsMarkerActivity extends AppCompatActivity implements OnMapReadyCallback { // onCreate method is called when the activity is first created @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); // Retrieve the content view that renders the map. setContentView(R.layout.ActivityMain); // Get the SupportMapFragment and request notification // when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync( this ); } // This method is called when the map is ready to be used. @Override public void onMapReady(GoogleMap googleMap) { // Add a marker in Sydney, Australia, // and move the map's camera to the same location. LatLng myPos = new LatLng(Location.getLatitude(), Location.getLongitude()); googleMap.moveCamera(CameraUpdateFactory.newLatLng(myPos)); } } |
- Run the code.