package
com.shruti.googlemaps;
import
androidx.annotation.NonNull;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.fragment.app.FragmentActivity;
import
android.graphics.Color;
import
android.graphics.drawable.BitmapDrawable;
import
android.location.Address;
import
android.location.Geocoder;
import
android.os.Bundle;
import
android.os.StrictMode;
import
android.util.Log;
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.BitmapDescriptorFactory;
import
com.google.android.gms.maps.model.CircleOptions;
import
com.google.android.gms.maps.model.GroundOverlayOptions;
import
com.google.android.gms.maps.model.LatLng;
import
com.google.android.gms.maps.model.MarkerOptions;
import
com.google.android.gms.maps.model.PolygonOptions;
import
com.shruti.googlemaps.databinding.ActivityMapsBinding;
import
java.io.IOException;
import
java.util.ArrayList;
public
class
MapsActivity
extends
AppCompatActivity
implements
OnMapReadyCallback{
private
GoogleMap mMap;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().
findFragmentById(R.id.map);
mapFragment.getMapAsync(
this
::onMapReady);
}
@Override
public
void
onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng alatLng =
new
LatLng(
30.7333
,
76.7794
);
MarkerOptions markerOptions =
new
MarkerOptions().position(alatLng).title(
"Chandigarh"
);
mMap.addMarker(markerOptions);
mMap.moveCamera(CameraUpdateFactory.newLatLng(alatLng));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(alatLng,16f));
mMap.setOnMapClickListener(
new
GoogleMap.OnMapClickListener() {
@Override
public
void
onMapClick(
@NonNull
LatLng latLng) {
MarkerOptions markerOptions =
new
MarkerOptions().position(latLng).title(
""
);
mMap.addMarker(markerOptions);
Geocoder geocoder =
new
Geocoder(MapsActivity.
this
);
try
{
ArrayList<Address> arrAdr = (ArrayList<Address>) geocoder.getFromLocation(latLng.latitude,latLng.longitude,
1
);
Log.d(
"Addr"
,arrAdr.get(
0
).getAddressLine(
0
));
}
catch
(IOException e) {
throw
new
RuntimeException(e);
}
}
});
StrictMode.ThreadPolicy policy =
new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
mMap.addGroundOverlay(
new
GroundOverlayOptions()
.position(alatLng,1000f,1000f).image(BitmapDescriptorFactory
.fromResource(R.drawable.gfg))
.clickable(
true
));
}
}