All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aima.core.environment.map.SimplifiedRoadMapOfAustralia Maven / Gradle / Ivy

package aima.core.environment.map;

/**
 * Represents a simplified road map of Australia. The initialization method is
 * declared static. So it can also be used to initialize other specialized
 * subclasses of {@link ExtendableMap} with road map data from Australia. The
 * data was extracted from a class developed by Felix Knittel.
 * 
 * @author Ruediger Lunde
 */
public class SimplifiedRoadMapOfAustralia extends ExtendableMap {

	public SimplifiedRoadMapOfAustralia() {
		initMap(this);
	}

	// Locations
	public static final String ADELAIDE = "Adelaide";
	public static final String ALBANY = "Albany";
	public static final String ALICE_SPRINGS = "AliceSprings";
	public static final String BRISBANE = "Brisbane";
	public static final String BROKEN_HILL = "BrokenHill";
	public static final String BROOME = "Broome";
	public static final String CAIRNS = "Cairns";
	public static final String CAMARVON = "Camarvon";
	public static final String CANBERRA = "Canberra";
	public static final String CHARLEVILLE = "Charleville";
	public static final String COOBER_PEDY = "CooberPedy";
	public static final String DARWIN = "Darwin";
	public static final String DUBBO = "Dubbo";
	public static final String ESPERANCE = "Esperance";
	public static final String GERALDTON = "Geraldton";
	public static final String HALLS_CREEK = "HallsCreek";
	public static final String HAY = "Hay";
	public static final String KALGOORLIE = "Kalgoorlie";
	public static final String KATHERINE = "Katherine";
	public static final String LAKES_ENTRANCE = "LakesEntrance";
	public static final String LONGREACH = "Longreach";
	public static final String MACKAY = "Mackay";
	public static final String MELBOURNE = "Melbourne";
	public static final String MOUNT_GAMBIER = "MountGambier";
	public static final String MT_ISA = "MtIsa";
	public static final String NEWCASTLE = "Newcastle";
	public static final String NORSEMAN = "Norseman";
	public static final String NYNGAN = "Nyngan";
	public static final String PERTH = "Perth";
	public static final String PORT_AUGUSTA = "PortAugusta";
	public static final String PORT_HEDLAND = "PortHedland";
	public static final String PORT_LINCOLN = "PortLincoln";
	public static final String PORT_MACQUARIE = "PortMacquarie";
	public static final String ROCKHAMPTON = "Rockhampton";
	public static final String SYDNEY = "Sydney";
	public static final String TAMWORTH = "Tamworth";
	public static final String TENNANT_CREEK = "TennantCreek";
	public static final String TOWNSVILLE = "Townsville";
	public static final String WAGGA_WAGGA = "WaggaWagga";
	public static final String WARNAMBOOL = "Warnambool";
	public static final String WYNDHAM = "Wyndham";

	/**
	 * Initializes a map with a simplified road map of Australia.
	 */
	public static void initMap(ExtendableMap map) {
		map.clear();
		// Add links
		// Distances from http://maps.google.com
		map.addBidirectionalLink(PERTH, ALBANY, 417.0);
		map.addBidirectionalLink(PERTH, KALGOORLIE, 593.0);
		map.addBidirectionalLink(PERTH, GERALDTON, 424.0);
		map.addBidirectionalLink(PERTH, PORT_HEDLAND, 1637.0);
		map.addBidirectionalLink(ALBANY, ESPERANCE, 478.0);
		map.addBidirectionalLink(KALGOORLIE, NORSEMAN, 187.0);
		map.addBidirectionalLink(ESPERANCE, NORSEMAN, 204.0);
		map.addBidirectionalLink(NORSEMAN, PORT_AUGUSTA, 1668.0);
		map.addBidirectionalLink(GERALDTON, CAMARVON, 479.0);
		map.addBidirectionalLink(CAMARVON, PORT_HEDLAND, 872.0);
		map.addBidirectionalLink(PORT_HEDLAND, BROOME, 589.0);
		map.addBidirectionalLink(BROOME, HALLS_CREEK, 685.0);
		map.addBidirectionalLink(HALLS_CREEK, WYNDHAM, 370.0);
		map.addBidirectionalLink(HALLS_CREEK, KATHERINE, 874.0);
		map.addBidirectionalLink(WYNDHAM, KATHERINE, 613.0);
		map.addBidirectionalLink(KATHERINE, DARWIN, 317.0);
		map.addBidirectionalLink(KATHERINE, TENNANT_CREEK, 673.0);
		map.addBidirectionalLink(TENNANT_CREEK, MT_ISA, 663.0);
		map.addBidirectionalLink(TENNANT_CREEK, ALICE_SPRINGS, 508.0);
		map.addBidirectionalLink(ALICE_SPRINGS, COOBER_PEDY, 688.0);
		map.addBidirectionalLink(COOBER_PEDY, PORT_AUGUSTA, 539.0);
		map.addBidirectionalLink(MT_ISA, TOWNSVILLE, 918.0);
		map.addBidirectionalLink(TOWNSVILLE, CAIRNS, 346.0);
		map.addBidirectionalLink(MT_ISA, LONGREACH, 647.0);
		map.addBidirectionalLink(TOWNSVILLE, MACKAY, 388.0);
		map.addBidirectionalLink(MACKAY, ROCKHAMPTON, 336.0);
		map.addBidirectionalLink(LONGREACH, ROCKHAMPTON, 687.0);
		map.addBidirectionalLink(ROCKHAMPTON, BRISBANE, 616.0);
		map.addBidirectionalLink(LONGREACH, CHARLEVILLE, 515.0);
		map.addBidirectionalLink(CHARLEVILLE, BRISBANE, 744.0);
		map.addBidirectionalLink(CHARLEVILLE, NYNGAN, 657.0);
		map.addBidirectionalLink(NYNGAN, BROKEN_HILL, 588.0);
		map.addBidirectionalLink(BROKEN_HILL, PORT_AUGUSTA, 415.0);
		map.addBidirectionalLink(NYNGAN, DUBBO, 166.0);
		map.addBidirectionalLink(DUBBO, BRISBANE, 860.0);
		map.addBidirectionalLink(DUBBO, SYDNEY, 466.0);
		map.addBidirectionalLink(BRISBANE, TAMWORTH, 576.0);
		map.addBidirectionalLink(BRISBANE, PORT_MACQUARIE, 555.0);
		map.addBidirectionalLink(PORT_MACQUARIE, NEWCASTLE, 245.0);
		map.addBidirectionalLink(TAMWORTH, NEWCASTLE, 284.0);
		map.addBidirectionalLink(NEWCASTLE, SYDNEY, 159.0);
		map.addBidirectionalLink(SYDNEY, CANBERRA, 287.0);
		map.addBidirectionalLink(CANBERRA, WAGGA_WAGGA, 243.0);
		map.addBidirectionalLink(DUBBO, WAGGA_WAGGA, 400.0);
		map.addBidirectionalLink(SYDNEY, LAKES_ENTRANCE, 706.0);
		map.addBidirectionalLink(LAKES_ENTRANCE, MELBOURNE, 317.0);
		map.addBidirectionalLink(WAGGA_WAGGA, MELBOURNE, 476.0);
		map.addBidirectionalLink(WAGGA_WAGGA, HAY, 269.0);
		map.addBidirectionalLink(MELBOURNE, WARNAMBOOL, 269.0);
		map.addBidirectionalLink(WARNAMBOOL, MOUNT_GAMBIER, 185.0);
		map.addBidirectionalLink(MOUNT_GAMBIER, ADELAIDE, 449.0);
		map.addBidirectionalLink(HAY, ADELAIDE, 655.0);
		map.addBidirectionalLink(PORT_AUGUSTA, ADELAIDE, 306.0);
		map.addBidirectionalLink(MELBOURNE, ADELAIDE, 728.0);
		map.addBidirectionalLink(PORT_AUGUSTA, PORT_LINCOLN, 341.0);

		// Locations coordinates
		// Alice Springs is taken as central point with coordinates (0|0)
		// Therefore x and y coordinates refer to Alice Springs. Note that
		// the coordinates are not very precise and partly modified to
		// get a more real shape of Australia.
		map.setPosition(ADELAIDE, 417, 1289);
		map.setPosition(ALBANY, -1559, 1231);
		map.setPosition(ALICE_SPRINGS, 0, 0);
		map.setPosition(BRISBANE, 1882, 415);
		map.setPosition(BROKEN_HILL, 709, 873);
		map.setPosition(BROOME, -1189, -645);
		map.setPosition(CAIRNS, 1211, -791);
		map.setPosition(CAMARVON, -2004, -34);
		map.setPosition(CANBERRA, 1524, 1189);
		map.setPosition(CHARLEVILLE, 1256, 268);
		map.setPosition(COOBER_PEDY, 86, 593);
		map.setPosition(DARWIN, -328, -1237);
		map.setPosition(DUBBO, 1474, 881);
		map.setPosition(ESPERANCE, -1182, 1132);
		map.setPosition(GERALDTON, -1958, 405);
		map.setPosition(HALLS_CREEK, -630, -624);
		map.setPosition(HAY, 985, 1143);
		map.setPosition(KALGOORLIE, -1187, 729);
		map.setPosition(KATHERINE, -183, -1025);
		map.setPosition(LAKES_ENTRANCE, 1412, 1609);
		map.setPosition(LONGREACH, 1057, -49);
		map.setPosition(MACKAY, 1553, -316);
		map.setPosition(MELBOURNE, 1118, 1570);
		map.setPosition(MOUNT_GAMBIER, 602, 1531);
		map.setPosition(MT_ISA, 563, -344);
		map.setPosition(NEWCASTLE, 1841, 979);
		map.setPosition(NORSEMAN, -1162, 881);
		map.setPosition(NYNGAN, 1312, 781);
		map.setPosition(PERTH, -1827, 814);
		map.setPosition(PORT_AUGUSTA, 358, 996);
		map.setPosition(PORT_HEDLAND, -1558, -438);
		map.setPosition(PORT_LINCOLN, 169, 1205);
		map.setPosition(PORT_MACQUARIE, 1884, 849);
		map.setPosition(ROCKHAMPTON, 1693, -59);
		map.setPosition(SYDNEY, 1778, 1079);
		map.setPosition(TAMWORTH, 1752, 722);
		map.setPosition(TENNANT_CREEK, 30, -445);
		map.setPosition(TOWNSVILLE, 1318, -520);
		map.setPosition(WAGGA_WAGGA, 1322, 1125);
		map.setPosition(WARNAMBOOL, 761, 1665);
		map.setPosition(WYNDHAM, -572, -932);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy