package com.schneeloch.bostonbusmap_library.data; import java.util.Comparator; import com.schneeloch.bostonbusmap_library.math.Geometry; public class LocationComparator implements Comparator<com.schneeloch.bostonbusmap_library.data.Location> { private final double centerLatitudeAsRadians; private final double centerLongitudeAsRadians; public LocationComparator(double centerLatitudeAsDegrees, double centerLongitudeAsDegrees) { centerLatitudeAsRadians = centerLatitudeAsDegrees * Geometry.degreesToRadians; centerLongitudeAsRadians = centerLongitudeAsDegrees * Geometry.degreesToRadians; } public int compare(Location a, Location b) { double dist = a.distanceFrom(centerLatitudeAsRadians, centerLongitudeAsRadians); double otherDist = b.distanceFrom(centerLatitudeAsRadians, centerLongitudeAsRadians); return java.lang.Double.compare(dist, otherDist); } }