function findNearestWaypoint($lat, $lon) { global $waypoints; $point = new GpsPoint(); $point->setLat($lat); $point->setLon($lon); if (count($waypoints) == 0) { $waypoints = getWaypoints(); } $nearestID = 0; $minDistance = 1000000; foreach ($waypoints as $waypoint) { $distance = $point->calcDistance($waypoint); if ($distance < $minDistance) { $minDistance = $distance; $nearestID = $waypoint->waypointID; } } return array($nearestID, $minDistance); }