package tsp.shortestpath; import java.util.ArrayList; import java.util.Collections; public class Location { private String name; private double latitude; private double longitude; private Location[] neighbors; private Location from; private double distance; private int positionHeap; private boolean visited = false; public Location(String name, double latitude, double longitude) { this.name = name; this.latitude = (Math.PI * latitude) / 180; this.longitude = (Math.PI * longitude) /180; this.distance = Double.POSITIVE_INFINITY; this.positionHeap = -1; } public double distanceTo(Location to) { return 6378 * (Math.PI/2 - Math.asin( Math.sin(to.latitude) * Math.sin(latitude) + Math.cos(to.longitude - longitude) * Math.cos(to.latitude) * Math.cos(latitude))); } public void setNeighbors(Location... neighbors) { this.neighbors = neighbors; } public double getDistance() { return distance; } public void reinit() { if(distance != Double.POSITIVE_INFINITY) { distance = Double.POSITIVE_INFINITY; for(int i=0; i