boundingCoordinates($radius, "miles"); ob_flush(); $people = $database->debug()->select("accounts", [ "publicid", "name", "username", "verified", "latitude", "longitude" ], [ "AND" => [ 'latitude[<>]' => [$searchbounds[0]->getLatitudeInDegrees(), $searchbounds[1]->getLatitudeInDegrees()], 'longitude[<>]' => [$searchbounds[0]->getLongitudeInDegrees(), $searchbounds[1]->getLongitudeInDegrees()], "lastgpsfix[>]" => date("Y-m-d H:i:s", strtotime("-1 hour")), "type" => 2 ], "LIMIT" => 100 ] ); $query = ob_get_contents(); ob_clean(); $people = $database->query($query)->fetchAll(); $nearby = []; if (!empty($VARS["format"]) && $VARS["format"] == "geojson") { $geojson = [ "name" => "Nearby People", "type" => "FeatureCollection", "features" => [] ]; foreach ($people as $person) { $geojson["features"][] = [ "type" => "Feature", "geometry" => [ "type" => "Point", "coordinates" => [ $person["longitude"] * 1.0, $person["latitude"] * 1.0 ] ], "properties" => [ "id" => $person["publicid"], "name" => utf8_encode(empty($person["name"]) ? $person["username"] : $person["name"]), "username" => $person["username"], "verified" => $person["verified"] == 1 ] ]; } exitWithJson($geojson); } foreach ($people as $person) { $nearby[] = [ "name" => (empty($person["name"]) ? $person["username"] : $person["name"]), "username" => $person["username"], "verified" => $person["verified"] == 1, "publicid" => $person["publicid"], "latitude" => $person["latitude"] * 1.0, "longitude" => $person["longitude"] * 1.0 ]; } exitWithJson([ "status" => "OK", "radius" => $radius, "bounds" => [ 0 => [ "latitude" => $searchbounds[0]->getLatitudeInDegrees(), "longitude" => $searchbounds[0]->getLongitudeInDegrees() ], 1 => [ "latitude" => $searchbounds[1]->getLatitudeInDegrees(), "longitude" => $searchbounds[1]->getLongitudeInDegrees() ], ], "nearby" => $nearby ]);