diff options
Diffstat (limited to 'bigtop-data-generators/bigtop-location-data/src/main/java/org/apache/bigtop/datagenerators/locations/Location.java')
-rw-r--r-- | bigtop-data-generators/bigtop-location-data/src/main/java/org/apache/bigtop/datagenerators/locations/Location.java | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/bigtop-data-generators/bigtop-location-data/src/main/java/org/apache/bigtop/datagenerators/locations/Location.java b/bigtop-data-generators/bigtop-location-data/src/main/java/org/apache/bigtop/datagenerators/locations/Location.java index 62afc0a8..58f6cdf0 100644 --- a/bigtop-data-generators/bigtop-location-data/src/main/java/org/apache/bigtop/datagenerators/locations/Location.java +++ b/bigtop-data-generators/bigtop-location-data/src/main/java/org/apache/bigtop/datagenerators/locations/Location.java @@ -19,72 +19,72 @@ import java.io.Serializable; import org.apache.commons.lang3.tuple.Pair; -public class Location implements Serializable -{ - private static final long serialVersionUID = 1769986686070108470L; - - final String zipcode; - final Pair<Double, Double> coordinates; - final String city; - final String state; - final double medianHouseholdIncome; - final long population; - - public Location(String zipcode, Pair<Double, Double> coordinates, - String city, String state, double medianHouseholdIncome, long population) - { - this.city = city; - this.state = state; - this.zipcode = zipcode; - this.coordinates = coordinates; - this.medianHouseholdIncome = medianHouseholdIncome; - this.population = population; - } - - public String getZipcode() - { - return zipcode; - } - - public Pair<Double, Double> getCoordinates() - { - return coordinates; - } - - public double getMedianHouseholdIncome() - { - return medianHouseholdIncome; - } - - public long getPopulation() - { - return population; - } - - public double distance(Location other) - { - if(other.getZipcode().equals(zipcode)) - return 0.0; - - Pair<Double, Double> otherCoords = other.getCoordinates(); - - double dist = Math.sin(Math.toRadians(coordinates.getLeft())) * - Math.sin(Math.toRadians(otherCoords.getLeft())) + - Math.cos(Math.toRadians(coordinates.getLeft())) * - Math.cos(Math.toRadians(otherCoords.getLeft())) * - Math.cos(Math.toRadians(coordinates.getRight() - otherCoords.getRight())); - dist = Math.toDegrees(Math.acos(dist)) * 69.09; - - return dist; - } - - public String getCity() - { - return city; - } - - public String getState() - { - return state; - } +public class Location implements Serializable { + private static final long serialVersionUID = 1769986686070108470L; + + final String zipcode; + final Pair<Double, Double> coordinates; + final String city; + final String state; + final double medianHouseholdIncome; + final long population; + + public Location(String zipcode, Pair<Double, Double> coordinates, String city, + String state, double medianHouseholdIncome, long population) { + this.city = city; + this.state = state; + this.zipcode = zipcode; + this.coordinates = coordinates; + this.medianHouseholdIncome = medianHouseholdIncome; + this.population = population; + } + + public String getZipcode() { + return zipcode; + } + + public Pair<Double, Double> getCoordinates() { + return coordinates; + } + + public double getMedianHouseholdIncome() { + return medianHouseholdIncome; + } + + public long getPopulation() { + return population; + } + + public double distance(Pair<Double, Double> otherCoords) { + if (Math.abs(coordinates.getLeft() - otherCoords.getLeft()) < 1e-5 + || Math.abs(coordinates.getRight() - otherCoords.getRight()) < 1e-5) + return 0.0; + + double dist = Math.sin(Math.toRadians(coordinates.getLeft())) + * Math.sin(Math.toRadians(otherCoords.getLeft())) + + Math.cos(Math.toRadians(coordinates.getLeft())) + * Math.cos(Math.toRadians(otherCoords.getLeft())) + * Math.cos(Math.toRadians( + coordinates.getRight() - otherCoords.getRight())); + dist = Math.toDegrees(Math.acos(dist)) * 69.09; + + return dist; + } + + public double distance(Location other) { + if (other.getZipcode().equals(zipcode)) + return 0.0; + + Pair<Double, Double> otherCoords = other.getCoordinates(); + + return distance(otherCoords); + } + + public String getCity() { + return city; + } + + public String getState() { + return state; + } } |