package edu.fsu.cs.contextprovider.map; import com.google.android.maps.GeoPoint; public class FloatingPointGeoPoint { private static final long serialVersionUID = -3659066238832850779L; private double latitude; private double longitude; public FloatingPointGeoPoint(GeoPoint point) { this.latitude = point.getLatitudeE6() / 1E6f; this.longitude = point.getLongitudeE6() / 1E6f; } public FloatingPointGeoPoint(double latitude, double longitude) { this.latitude = latitude; this.longitude = longitude; } public FloatingPointGeoPoint (String stringRep) { String[] parts = stringRep.split("x"); if (parts.length != 2) { return; } try { Double latitude = Double.parseDouble(parts[0]); Double longitude = Double.parseDouble(parts[1]); this.latitude = latitude; this.longitude = longitude; } catch (NumberFormatException e) { return; } } public double getLatitude() { return latitude; } public double getLongitude() { return longitude; } public void setLatitude(double latitude) { this.latitude = latitude; } public void setLongitude(double longitude) { this.longitude = longitude; } public GeoPoint getGeoPoint() { return new GeoPoint((int) Math.round(getLatitude() * 1E6), (int) Math .round(getLongitude() * 1E6)); } /** * Deprecated in favor of {@link #toString(double, double)}. */ @Deprecated public String toString() { return toString(latitude, longitude); } public static String toString(double lat, double lon) { StringBuilder builder = new StringBuilder(); builder.append(lat); builder.append("x"); builder.append(lon); return builder.toString(); } public static FloatingPointGeoPoint fromString(String stringRep) { String[] parts = stringRep.split("x"); if (parts.length != 2) { return null; } try { Double latitude = Double.parseDouble(parts[0]); Double longitude = Double.parseDouble(parts[1]); return new FloatingPointGeoPoint(latitude, longitude); } catch (NumberFormatException e) { return null; } } }