/** * Updates tracking info for one sheep, then analyses distances from Shepherd * - can trigger lost sheep message if distance is > maxRadius. * @author Tim Tyler */ if (isset($_POST)) { $flockTable = new FlockTable(); $sheepTable = new SheepTable(); $geoDistance = new GeoDataSource(); $sheepMobile = '44' . substr($_POST['mobile'], 1); // Locate flock and sheep. $sheep = $sheepTable->getSheepUsingSheepMobile($sheepMobile); $flock = $flockTable->getFlockUsingFlockID($sheep->getFlockID()); $newX = $_POST['longtitude']; $newY = $_POST['latitude']; $sheepTable->updateSheepCoordinates($sheep->getSheepID(), $newX, $newY); $shepherd = $flock->getShepherd(); $shepherdX = $shepherd->getSheepLongtitude(); $shepherdY = $shepherd->getSheepLatitude(); $flockMaxRadius = $flock->getFlockRadius(); $distanceFromShepherd = $geoDistance->distance($newY, $newX, $shepherdY, $shepherdX, "M"); if ($distanceFromShepherd > $flockMaxRadius) { // SEND MESSAGE. // TODO limit to 160 characters $lostSheepNumber = $sheep->getSheepMobile(); $lostSheepMessage = "Oh little sheep, you have gone astray! Your Shepherd is currently " . (int) $distanceFromShepherd . "m away! You can catch up with them if you open this link " . "www.google.com/maps/place/" . $shepherdY . "," . $shepherdX . ". Or why not give them a ring on +" . $shepherd->getSheepMobile() . " so you can explain what a silly Sheep you are. To suspend tracking, text 'SUSPEND' to 84433 (Texts cost 10p)." . " Confused? Find out more at www.flockbuddy.com"; try { // Create a Clockwork object using your API key $clockwork = new Clockwork('787b4673e0ac4b043aab8a4764f0205ab06dc309'); // Setup and send a message $message = array('to' => $lostSheepNumber, 'message' => $lostSheepMessage);