import de.fhpotsdam.unfolding.data.ShapeFeature; //导入方法依赖的package包/类
public void setup() {
// setting up PAppler
size(800,600, OPENGL);
// setting up map and default events
map = new UnfoldingMap(this, 50, 50, 750, 550);
MapUtils.createDefaultEventDispatcher(this, map);
// get features from airport data
List features = ParseFeed.parseAirports(this, "airports.dat");
// list for markers, hashmap for quicker access when matching with routes
airportList = new ArrayList();
HashMap airports = new HashMap();
// create markers from features
for(PointFeature feature : features) {
AirportMarker m = new AirportMarker(feature);
m.setRadius(5);
airportList.add(m);
// put airport in hashmap with OpenFlights unique id for key
airports.put(Integer.parseInt(feature.getId()), feature.getLocation());
}
// parse route data
List routes = ParseFeed.parseRoutes(this, "routes.dat");
routeList = new ArrayList();
for(ShapeFeature route : routes) {
// get source and destination airportIds
int source = Integer.parseInt((String)route.getProperty("source"));
int dest = Integer.parseInt((String)route.getProperty("destination"));
// get locations for airports on route
if(airports.containsKey(source) && airports.containsKey(dest)) {
route.addLocation(airports.get(source));
route.addLocation(airports.get(dest));
}
SimpleLinesMarker sl = new SimpleLinesMarker(route.getLocations(), route.getProperties());
System.out.println(sl.getProperties());
//UNCOMMENT IF YOU WANT TO SEE ALL ROUTES
//routeList.add(sl);
}
//UNCOMMENT IF YOU WANT TO SEE ALL ROUTES
//map.addMarkers(routeList);
map.addMarkers(airportList);
}