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; }
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; }