Calculating Distance Between Two Points in Android

Calculating Distance Between Two Points in Android

Takahiro Iwasa
Takahiro Iwasa
2 min read
Android GIS Java

Introduction

Calculating the distance between two geographical points is a common requirement in mobile development, especially in location-based apps. This guide demonstrates how to achieve this in Android using the Location class.

Why Use the Location Class

The android.location.Location class provides built-in utilities to calculate distances, making it an efficient and reliable choice for such operations. It eliminates the need for custom distance calculations, ensuring accuracy and reducing the possibility of errors.

Code Example

Below is an example method that calculates the distance in meters between two points:

/**
 * Get distance in meters between two points.
 * @param latitude1 Latitude of the first point
 * @param longitude1 Longitude of the first point
 * @param latitude2 Latitude of the second point
 * @param longitude2 Longitude of the second point
 * @return Distance between two points in meters
 */
public float getDistanceBetween(
    double latitude1, double longitude1,
    double latitude2, double longitude2) {

    float[] results = new float[3];
    // Calculate distance using the Location class
    Location.distanceBetween(latitude1, longitude1, latitude2, longitude2, results);

    if (results.length < 1) {
        // Handle error scenario
    }

    if (results.length < 3) {
        // Handle azimuth if needed
    }

    // Return the distance in meters
    return results[0];
}

Key Steps

  1. Parameters:

    • latitude1, longitude1: Coordinates of the first point.
    • latitude2, longitude2: Coordinates of the second point.
  2. Usage of Location.distanceBetween:

    • This method takes the coordinates of both points and stores the result in an array.
    • The first element of the results array contains the distance in meters.
  3. Handling Additional Results:

    • The array may also include bearing or azimuth information.

Conclusion

Using the Location class in Android provides a simple and accurate way to calculate the distance between two geographical points. This feature is invaluable for applications in mapping, tracking, or any location-based services.

Happy Coding! 🚀

Takahiro Iwasa

Takahiro Iwasa

Software Developer at KAKEHASHI Inc.
Involved in the requirements definition, design, and development of cloud-native applications using AWS. Now, building a new prescription data collection platform at KAKEHASHI Inc. Japan AWS Top Engineers 2020-2023.