示例#1
0
unsigned test_location(const Waypoints& waypoints, bool good)
{
    GeoPoint loc; // at 0,0
    if (!good) {
        loc.Longitude = Angle::degrees(fixed(-23.4));
    }
    const Waypoint *r = waypoints.lookup_location(loc);
    if (r) {
        WaypointVisitorPrint v;
        v.Visit(*r);
        return good;
    } else {
        return !good;
    }
}
/**
 * Opens up the WaypointDetails window of the nearest
 * waypoint to location
 * @param way_points Waypoints including all possible
 * waypoints for the calculation
 * @param location Location where to search
 * @param range Maximum range to search
 * @param pan True if in Pan mode
 * @return True if a waypoint was found
 */
bool
PopupNearestWaypointDetails(const Waypoints &way_points,
                            const GeoPoint &location,
                            double range, bool scalefilter)
{
  const Waypoint *way_point;
  way_point = way_points.lookup_location(location, fixed(range));

  if (way_point &&
      (!scalefilter ||
       XCSoarInterface::main_window.map->VisibleProjection().WaypointInScaleFilter(*way_point))) {
    dlgWaypointSelectAddToLastUsed(*way_point);
    dlgWaypointDetailsShowModal(XCSoarInterface::main_window, *way_point);
    return true;
  }
  return false;
}