package com.jdroid.android.domain; import android.location.Location; import java.io.Serializable; public class GeoLocation implements Serializable { private static final long serialVersionUID = -2822993513206651288L; private Double longitude; private Double latitude; public GeoLocation(Double latitude, Double longitude) { this.latitude = latitude; this.longitude = longitude; } public GeoLocation(Location location) { latitude = location.getLatitude(); longitude = location.getLongitude(); } public GeoLocation() { this(null, null); } public Double getLongitude() { return longitude; } public void setLongitude(double longitude) { this.longitude = longitude; } public Double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitude = latitude; } public boolean isValid() { return (latitude != null) && (longitude != null); } @Override public String toString() { return Double.toString(getLatitude()) + "," + Double.toString(getLongitude()); } /* * @return: Distance in kilometers between this location and the specified */ public double distance(Double lat, Double lon) { return calculateDistance(latitude, longitude, lat, lon); } /* * @return: Distance in kilometers between this src location and the specified destination */ public double calculateDistance(double srcLat, double srcLong, double destLat, double destLong) { float[] results = new float[1]; Location.distanceBetween(srcLat, srcLong, destLat, destLong, results); return results[0] / 1000; } }