-
- return itr->second;
-}
-
-// search for the airport nearest the specified position
-FGAirport* FGAirportList::search(double lon_deg, double lat_deg, double max_range)
-{
- static FGAirportSearchFilter accept_any;
- return search(lon_deg, lat_deg, max_range, accept_any);
-}
-
-
-// search for the airport nearest the specified position and
-// passing the filter
-FGAirport* FGAirportList::search(double lon_deg, double lat_deg,
- double max_range,
- FGAirportSearchFilter& filter)
-{
- double min_dist = max_range;
-
- airport_list_iterator it = airports_array.begin();
- airport_list_iterator end = airports_array.end();
- airport_list_iterator closest = end;
- for (; it != end; ++it) {
- if (!filter.pass(*it))
- continue;
-
- // crude manhatten distance based on lat/lon difference
- double d = fabs(lon_deg - (*it)->getLongitude())
- + fabs(lat_deg - (*it)->getLatitude());
- if (d < min_dist) {
- closest = it;
- min_dist = d;
- }
- }
- return closest != end ? *closest : 0;
-}
-
-
-int
-FGAirportList::size () const
-{
- return airports_array.size();