To create a Google Map in an Android application and display specific locations using latitude and longitude, follow these steps:
1. Set Up the Project
- Open Android Studio and create a new project with the Google Maps Activity template.
- Add the necessary Google Maps dependency (this is typically pre-included in the template):
   implementation 'com.google.android.gms:play-services-maps:18.1.0'2. Get a Google Maps API Key
- Go to the Google Cloud Console.
- Enable the Maps SDK for Android API for your project.
- Generate an API key and add it to your AndroidManifest.xml:
   <meta-data
       android:name="com.google.android.geo.API_KEY"
       android:value="YOUR_API_KEY_HERE" />3. Modify the Activity Code
Update the MapsActivity.kt file to include custom markers for specific locations.
Imports
import android.os.Bundle
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 com.google.android.gms.maps.model.MarkerOptionsActivity Code
class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
    private lateinit var mMap: GoogleMap
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_maps)
        // Obtain the SupportMapFragment and get notified when the map is ready to be used
        val mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }
    override fun onMapReady(googleMap: GoogleMap) {
        mMap = googleMap
        // Add markers for specific locations
        val location1 = LatLng(37.7749, -122.4194) // San Francisco
        val location2 = LatLng(34.0522, -118.2437) // Los Angeles
        val location3 = LatLng(40.7128, -74.0060)  // New York
        mMap.addMarker(MarkerOptions().position(location1).title("San Francisco"))
        mMap.addMarker(MarkerOptions().position(location2).title("Los Angeles"))
        mMap.addMarker(MarkerOptions().position(location3).title("New York"))
        // Move the camera to the first location
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location1, 5f))
    }
}4. Update the XML Layout
Ensure the activity_maps.xml file contains a SupportMapFragment:
<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />5. Test the Application
- Build and run the application on a device or an emulator.
- The map should display markers for the specific locations provided (e.g., San Francisco, Los Angeles, and New York).
Optional Customizations
- Change Marker Icons:
   val customIcon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)
   mMap.addMarker(MarkerOptions().position(location1).title("San Francisco").icon(customIcon))- Add Click Listeners for Markers:
   mMap.setOnMarkerClickListener { marker ->
       Toast.makeText(this, "Clicked: ${marker.title}", Toast.LENGTH_SHORT).show()
       true
   }- Set Different Zoom Levels:
   mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location1, 10f)) // Closer view