コード例 #1
0
function DetResult($tp)
{
    // to google distance matrix point
    // 0 is $tp first
    // 1 is $tp second
    // 2 is driver end point
    $whichPoint;
    $tpNum = count($tp);
    if ($tpNum) {
        if ($tp[0]['type'] == 1) {
            // get in condition
            // DetGetinCar($passengerCurrentPoint, $driverCurrentPoint, $passengerGetinPoint)
            if (DetGetinCar($tp[0]['curpoint'], $GLOBALS['data']['curpoint'], $tp[0]['point'])) {
                // this passenger get in car
                // update db infomation
                // UPDATE `passenger` SET `passenger`.`getinStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = 1046779538684829
                $UpdatePassStatusSql = 'UPDATE `passenger` SET `passenger`.`getinStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = ' . $tp[0]['id'];
                $UpdatePassStatusResult = mysql_query($UpdatePassStatusSql);
                $whichPoint = $tpNum > 1 ? 1 : 2;
            } else {
                $whichPoint = 0;
            }
        } else {
            // get out off condition
            // DetGetoutoffCar($passengerCurrentPoint, $driverCurrentPoint, $passengerGetoutPoint)
            if (DetGetoutoffCar($tp[0]['curpoint'], $GLOBALS['data']['curpoint'], $tp[0]['point'])) {
                // this passenger get out off car
                // update db infomation
                // UPDATE `passenger` SET `passenger`.`getoffStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = 1046779538684829
                $UpdatePassStatusSql = 'UPDATE `passenger` SET `passenger`.`getoffStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = ' . $tp[0]['id'];
                $UpdatePassStatusResult = mysql_query($UpdatePassStatusSql);
                $whichPoint = $tpNum > 1 ? 1 : 2;
            } else {
                $whichPoint = 0;
            }
        }
    } else {
        $whichPoint = 2;
    }
    // google distance matrix api cal result
    // function getPathDistance($p1, $p2, $mode)
    // $p1 is driver curpoint in here
    // $p2 is destination mean $whichPoint in here
    // $mode could be driving (default), walking, bicycling, transit
    if ($whichPoint > 1) {
        $gdmResult = getPathDistance($GLOBALS['data']['curpoint'], end($GLOBALS['neceData']['driverPath']), "driving");
    } else {
        $gdmResult = getPathDistance($GLOBALS['data']['curpoint'], $tp[$whichPoint]['point'], "driving");
    }
    // $tp[0] point if get in or get out off
    // $whichPoint is driver page display infomation to driver by google distance matrix api
    $calResult = array();
    if (!$whichPoint) {
        // client page display point
        // one point
        // passenger state 0 is the passenger not get in or get out off
        array_push($calResult, array("id" => $tp[0]['id'], "type" => $tp[0]['type'], "curpoint" => $tp[0]['curpoint'], "gdm" => $gdmResult));
    } else {
        // two points
        // 0 is next point to show
        if ($whichPoint > 1) {
            array_push($calResult, array("id" => $GLOBALS['data']['did'], "type" => 0, "curpoint" => null, "passengerState" => null, "gdm" => $gdmResult));
        } else {
            array_push($calResult, array("id" => $tp[1]['id'], "type" => $tp[1]['type'], "curpoint" => $tp[1]['curpoint'], "gdm" => $gdmResult));
        }
        // $calResult[1] will be removed point on map
        if ($tpNum) {
            array_push($calResult, array("id" => $tp[0]['id'], "type" => $tp[0]['type'], "curpoint" => null, "gdm" => null));
        }
    }
    return $calResult;
}
コード例 #2
0
function DetResult($data)
{
    // cal distance and determine if passenger ge in or get out off car
    $getcarStatus;
    if (array_key_exists('type', $data)) {
        if (!$data['type']) {
            // get in condition
            // DetGetinCar($passengerCurrentPoint, $driverCurrentPoint, $passengerGetinPoint)
            if (DetGetinCar($GLOBALS['data']['curpoint'], $data['driversCurpoint'][0]['curpoint'], $data['targetPoint'])) {
                // this passenger get in car
                // update db infomation
                // UPDATE `passenger` SET `passenger`.`getinStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = 1046779538684829
                $UpdatePassStatusSql = 'UPDATE `passenger` SET `passenger`.`getinStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = ' . $GLOBALS['data']['pid'];
                $UpdatePassStatusResult = mysql_query($UpdatePassStatusSql);
                $getcarStatus = 0;
            } else {
                $getcarStatus = 2;
            }
        } else {
            // get out off condition
            // DetGetoutoffCar($passengerCurrentPoint, $driverCurrentPoint, $passengerGetoutPoint)
            if (DetGetoutoffCar($GLOBALS['data']['curpoint'], $data['driversCurpoint'][0]['curpoint'], $data['targetPoint'])) {
                // this passenger get out off car
                // update db infomation
                // UPDATE `passenger` SET `passenger`.`getoffStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = 1046779538684829
                $UpdatePassStatusSql = 'UPDATE `passenger` SET `passenger`.`getoffStatus` = 1 WHERE (NOT `passenger`.`finished`) AND `passenger`.`aid` = ' . $GLOBALS['data']['pid'];
                $UpdatePassStatusResult = mysql_query($UpdatePassStatusSql);
                $getcarStatus = 1;
            } else {
                // remove marker
                $getcarStatus = 0;
            }
        }
    } else {
        $getcarStatus = 1;
    }
    return $getcarStatus;
}