Google Maps:
To work with GoogleMaps, we have following steps
1) Generate SHA1 key of application
2) Register application in Google console with SHA1 key and package name and obtain API Key
To generate SHA1 key, we have 2 ways
i) Generate using command prompt
ii) Create application/activity and select GoogleMapsActivity. Once the activity is created, we can google_map_api.xml. Find the url in that and open in the browser. It will ask you to select Google account. After selecting google account, it asks you to create ptroject. After project is created, click on “Create API Key”, which will generate an API Key. Copy and paste that in google_map_api.xml.
Steps to create Map programatically:
1) In XML, take a <fragment> tag, provide height, width and id. After that provide android:name=”com.google.android.gms.maps.SupportMapFragment”
2) In Activity implement OnMapReady Callback and override onMapReady method
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{
|
|
@Override
public void onMapReady(GoogleMap googleMap) {
}
}
3) In onCreate method, after setContentView, identify the Fragment.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
4) call getMapAsync method of SupportMapFragment by passing OnMapReadyCallback object. Here, our activity is the object of OnMapReadyCallback
mapFragment.getMapAsync(this);
5) Register the console key in Manifest as follows
<meta-data
android:name=”com.google.android.geo.API_KEY”
android:value=”@string/google_maps_key” />
6) Give location permission in Manifest
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” />
7) In onMapReady method, we receive GoogleMap object, which is used to do all the operations on Map
8) To add marker
i) Identify latitude and longitude of the location
ii) Create LatLng class object by passing latitude and longitude
Ex: LatLng sydney = new LatLng(-34, 151);
iii) Add marker to map
mMap.addMarker(new MarkerOptions().position(sydney).title(“Marker in Sydney”));
iv) Move the camera to created marker(this step is optional)
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
Create an Android application to work with Maps