Live Location, Live Tracking , Live Data Sending ,Map Implementation, PolygonMap Creation

0
         
Basic Map Implementation 

  
  First go to google Developer.console 
  Create Account in Google Developer Console 
  go to credential page 
  Must Enable Google Api MAp Sdk V2
  
  _resources
    string name="app_name">fullMapImplementation_string
    string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaSyC8nSMlNXgjVUxx1yz9I2Avba--dm5CeZ8_?string_
_?resources_


 Do this in Menifest 
 android:name="android.permission.WRITE_EXTERNAL_STORAGE"
 android:name="android.permission.INTERNET"
 android:name="android.permission.ACCESS_NETWORK_STATE"
 
 
_meta-data
       android:name="com.google.android.geo.API_KEY"
       android:value="@string/google_maps_key" ?_
       
       
       
       
       
       
       
package in.akash.vibrant.it.fullmapimplementation;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.location.Location;
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;

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
    private  GoogleMap gMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(MainActivity.this);
    }

    @Override
    public void onMapReady(@NonNull GoogleMap googleMap) {
        gMap=googleMap;

        LatLng myPos = new LatLng(29.3934217, 78.16364);
        gMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        gMap.moveCamera(CameraUpdateFactory.newLatLng(myPos));

    }
}
  
   

         
 Live Location Andress Animate Camera Code


Gradle Dependency 

    implementation 'com.google.android.gms:play-services-maps:18.1.0'
    implementation 'com.karumi:dexter:6.2.3'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    
    
    Manifest Api key 
    meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key"
            
   in Res Folder String Write this 
   resources
    string name="app_name">fullMapImplementation string
    string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaSyC8nSMlNXgjVUxx1yz9I2Avba--dm5CeZ8 string
resources
          

package in.akash.vibrant.it.fullmapimplementation;

import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
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.MarkerOptions;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;

import java.io.IOException;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    SupportMapFragment mapFragment;

    FusedLocationProviderClient client;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        client= LocationServices.getFusedLocationProviderClient(this);
       // mapFragment.getMapAsync(MainActivity.this);

        Dexter.withContext(this)
                .withPermission(Manifest.permission.ACCESS_FINE_LOCATION)
                .withListener(new PermissionListener() {
                    @Override
                    public void onPermissionGranted(PermissionGrantedResponse response) {
                        getMyLocation();
                    }

                    @Override
                    public void onPermissionDenied(PermissionDeniedResponse response) {

                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
                        token.continuePermissionRequest();
                    }
                }).check();
    }

    private void getMyLocation() {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {}
            Task _Location_ task = client.getLastLocation();  // _ angular Braces    // Please Enable Two permission in Menifest Unless Show Error
           
            task.addOnSuccessListener(new OnSuccessListener _Location_ () {   // List hai
                @Override
                public void onSuccess(Location location) {
                    mapFragment.getMapAsync(new OnMapReadyCallback() {
                        @Override
                        public void onMapReady(@NonNull GoogleMap googleMap) {
                            LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
                            MarkerOptions markerOptions = new MarkerOptions().position(latLng).title("You Are Here");
                            googleMap.addMarker(markerOptions);
                            googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));
                            String  currentAddress = getAddressFromLocation(location);
                            if (!currentAddress.isEmpty()) {
                                TextView txt1=findViewById(R.id.txt1);
                                txt1.setText(currentAddress);
                                // Use the currentAddress variable as needed
                                Log.d("Address", currentAddress);
                            }
                        }
                    });
                }
            });

    }


    private String getAddressFromLocation(Location location) {
        Geocoder geocoder = new Geocoder(this);
        List _Address_ addresses;
        String addressText = "";

        try {
            addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
            if (!addresses.isEmpty()) {
                Address address = addresses.get(0);
                addressText = address.getAddressLine(0); // You can customize this to get more address details if needed.
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return addressText;
    }


 /*   @Override
    public void onMapReady(@NonNull GoogleMap googleMap) {
        gMap = googleMap;

        LatLng myPos = new LatLng(29.3934217, 78.16364);
        gMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        gMap.moveCamera(CameraUpdateFactory.newLatLng(myPos));

    }*/


}




         
 For Setting The Button in Map and Polygon


    private void getMyLocation() {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        }
        Task task = client.getLastLocation();
        task.addOnSuccessListener(new OnSuccessListener _Location_() { // List Hai
            @Override
            public void onSuccess(Location location) {
                mapFragment.getMapAsync(new OnMapReadyCallback() {
                    @Override
                    public void onMapReady(@NonNull GoogleMap googleMap) {
                        LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
                        MarkerOptions markerOptions = new MarkerOptions().position(latLng).title("You Are Here");
                        googleMap.addMarker(markerOptions);


                        googleMap.setBuildingsEnabled(true);
                        googleMap.getUiSettings().setMyLocationButtonEnabled(true);  // For setting The Current Location Button in Map
                        if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                            return;
                        }
                        googleMap.setMyLocationEnabled(true);
                            googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));

                            PolygonOptions polygonOptions = new PolygonOptions()
                                    .add(new LatLng(latLng.latitude + 0.01, latLng.longitude + 0.01),
                                            new LatLng(latLng.latitude - 0.01, latLng.longitude + 0.01),
                                            new LatLng(latLng.latitude - 0.01, latLng.longitude - 0.01),
                                            new LatLng(latLng.latitude + 0.01, latLng.longitude - 0.01))
                                    .strokeColor(Color.parseColor("#000000")) // Stroke color
                                    .strokeWidth(2) // Stroke width
                                    .fillColor(Color.parseColor("#6AFBED6A")); // Fill color (yellow)

                            // Add the polygon to the map
                            googleMap.addPolygon(polygonOptions);


                            String  currentAddress = getAddressFromLocation(location);
                            if (!currentAddress.isEmpty()) {
                                TextView txt1=findViewById(R.id.txt1);
                                txt1.setText(currentAddress);
                                // Use the currentAddress variable as needed
                                Log.d("Address", currentAddress);
                            }
                        // addStaticPolygon(googleMap);
                        }
                    });
                }
            });

    }

         
 For Location Updates in Every Seconds


call this in map 

  private Timer locationTimer;


   private void  startLocationUpdates() {
        locationTimer = new Timer();
        locationTimer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                // Your code to capture and print the current location
                getCurrentLocation();
            }
        }, 0, 1000); // Capture and print location every 1000 milliseconds (1 second)
    }

    private void getCurrentLocation() {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // Handle permissions here.
            return;
        }

        Task _Location_  task = client.getLastLocation();  // _ Equal to list 
        task.addOnSuccessListener(new OnSuccessListener_Location_() {  // _ List Hai
            @Override
            public void onSuccess(Location location) {
                if (location != null) {
                    // Print the current location to the console
                    double latitude = location.getLatitude();
                    double longitude = location.getLongitude();
                    Log.d("Location", "Latitude: " + latitude + ", Longitude: " + longitude);
                }
            }
        });
    }
    
    

Post a Comment

0Comments
Post a Comment (0)