if ($_SERVER['REMOTE_ADDR'] != '127.0.0.1') { print "Forbidden! Access only from localhost!\n"; exit(0); } print "# gettracks.php result, trackversion={$trackversion}\n"; if ($maxdistance != 0) { print "# will extract node pairs longer than {$maxdistance} km.\n"; } print "# Format: <trackId>\t<penalty>\t<num-of-points>\t<lat1 lon1 lat2 lon2>\t<loop>\t<transferNodes>\n"; $result = mysqli_query($global_mysqli_link, "SELECT trackTypeId, trackId, AsText(geodata), pathloop, penalty, transferNodes FROM tracks WHERE geodata IS NOT NULL ORDER BY trackId") or die_nice("Can't retrieve the track infromation from database: " . mysqli_error($global_mysqli_link)); while ($row = mysqli_fetch_row($result)) { if (!file_exists('../../public_html/images/means/' . $row[0] . '/' . $row[1] . $means_image_extension)) { print "# WARNING: couldn't find image file for this route: " . $row[0] . '.' . $row[1] . "\n"; } // Setup track info $tracks = lineStringToLatLngArray($row[2]); $tracksize = sizeof($tracks); $transitnodes = $row[5] == '' ? array('0-' . ($tracksize - 1)) : split(',', $row[5]); $transitnodes_count = count($transitnodes); for ($i = 0; $i < $transitnodes_count; $i++) { $transitnodes[$i] = rangestr_to_array($transitnodes[$i]); } $trackstring = ''; $inserted_nodes = 0; $transfernodes_offset = array(); // Print tracks for ($i = 0, $length = sizeof($tracks); $i < $length; $i++) { // Process the list list($lat, $lon) = explode(',', $tracks[$i]); // several actions if we are higher than 1st element if ($i > 0) {
} // Construct json. $json = array($proto_status => $proto_status_ok, $proto_trackslist => $track_list, $proto_tracktypeslist => $tracktype_list); deinit_mysql(); print json_encode($json); } elseif ($mode == $proto_mode_getdetails_track) { check_privilege($privilege_route); $trackid = addslashes(retrieve_from_post($proto_trackid)); // Retrieve result from database and construct in XML format $result = mysqli_query($global_mysqli_link, "SELECT trackTypeId, trackName, internalInfo, AsText(geodata), pathloop, penalty, transferNodes FROM tracks WHERE trackId='{$trackid}'") or die_nice("Can't retrieve the track details from database: " . mysqli_error($global_mysqli_link), true); $i = 0; $row = mysqli_fetch_row($result); if ($row == FALSE) { die_nice("Can't find track information for '{$trackid}'", true); } $geodata = lineStringToLatLngArray($row[3]); // Construct json. $json = array($proto_status => $proto_status_ok, $proto_trackid => $trackid, $proto_tracktype => $row[0], $proto_trackname => $row[1], $proto_internalinfo => $row[2], $proto_geodata => $geodata, $proto_pathloop => $row[4] > 0 ? true : false, $proto_penalty => doubleval($row[5]), $proto_transfernodes => is_null($row[6]) ? array('0-' . (count($geodata) - 1)) : split(',', $row[6])); deinit_mysql(); print json_encode($json); } elseif ($mode == $proto_mode_cleargeodata) { check_privilege($privilege_route); $trackid = addslashes(retrieve_from_post($proto_trackid)); mysqli_query($global_mysqli_link, "UPDATE tracks SET geodata=NULL, transferNodes=NULL WHERE trackId='{$trackid}'") or die_nice('Failed to clear the geodata: ' . mysqli_error($global_mysqli_link), true); deinit_mysql(); well_done(); } elseif ($mode == $proto_mode_importkml) { check_privilege($privilege_route); $trackid = addslashes(retrieve_from_post($proto_trackid)); // Import KML file into a geodata in database if ($_FILES[$proto_uploadedfile]['error'] != UPLOAD_ERR_OK) {