Ejemplo n.º 1
0
/**
 * 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);