0% found this document useful (0 votes)
6 views

LocationAndGeocodingCode

The documents contain two Android Java code examples for location services. The first code retrieves the current location using the Fused Location Provider and displays latitude and longitude, while the second code demonstrates geocoding and reverse geocoding functionalities using the Geocoder class. Both examples require location permissions and handle user interactions through buttons.

Uploaded by

PALLAVI KAKADE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

LocationAndGeocodingCode

The documents contain two Android Java code examples for location services. The first code retrieves the current location using the Fused Location Provider and displays latitude and longitude, while the second code demonstrates geocoding and reverse geocoding functionalities using the Geocoder class. Both examples require location permissions and handle user interactions through buttons.

Uploaded by

PALLAVI KAKADE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Code 1: Current Location (MainActivity.

java)

package com.example.currentlocation;

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

import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;

public class MainActivity extends AppCompatActivity {

private static final int REQUEST_LOCATION_PERMISSION = 1;

TextView locationText;
Button getLocationButton;

FusedLocationProviderClient fusedLocationClient;

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

locationText = findViewById(R.id.locationText);
getLocationButton = findViewById(R.id.getLocationButton);

fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

getLocationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getLastLocation();
}
});
}

private void getLastLocation() {


if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_LOCATION_PERMISSION);
return;
}

fusedLocationClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
if (task.isSuccessful() && task.getResult() != null) {
Location location = task.getResult();
String result = "Latitude: " + location.getLatitude() + "\nLongitude: " + location.getLongitude();
locationText.setText(result);
Log.d("Location", result);
} else {
Toast.makeText(MainActivity.this, "Failed to get location", Toast.LENGTH_SHORT).show();
}
}
});
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]
grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_LOCATION_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
getLastLocation();
} else {
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
}
}
}
}
Code 2: Geocoding Example (MainActivity.java)

package com.example.geocodingexample;

import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.core.app.ActivityCompat;
import java.io.IOException;
import java.util.List;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

TextView resultText;
Button geocodeButton, reverseGeocodeButton;

private static final int REQUEST_LOCATION_PERMISSION = 1;

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

resultText = findViewById(R.id.resultText);
geocodeButton = findViewById(R.id.geocodeButton);
reverseGeocodeButton = findViewById(R.id.reverseGeocodeButton);

// Request location permission


if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_LOCATION_PERMISSION);
}

geocodeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doGeocoding();
}
});

reverseGeocodeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doReverseGeocoding();
}
});
}

private void doGeocoding() {


Geocoder geocoder = new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocationName("Statue of Liberty, New York", 1);
if (addresses != null && addresses.size() > 0) {
double latitude = addresses.get(0).getLatitude();
double longitude = addresses.get(0).getLongitude();
String result = "Latitude: " + latitude + "\nLongitude: " + longitude;
resultText.setText(result);
Log.d("Geocoding", result);
} else {
Toast.makeText(this, "No result found", Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
e.printStackTrace();
}
}

private void doReverseGeocoding() {


Geocoder geocoder = new Geocoder(this, Locale.getDefault());
try {
double latitude = 48.8584; // Eiffel Tower
double longitude = 2.2945;
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses != null && addresses.size() > 0) {
String address = addresses.get(0).getAddressLine(0);
resultText.setText("Address: \n" + address);
Log.d("ReverseGeocoding", address);
} else {
Toast.makeText(this, "No address found", Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

You might also like