source: subversion/applications/rendering/osm-atlas/osm-atlas.php @ 29168

Last change on this file since 29168 was 20793, checked in by avantman42, 10 years ago
  • Property svn:executable set to *
File size: 17.7 KB
Line 
1#!/usr/bin/env php
2<?php
3/*
4 * This file is part of OSM-Atlas, a script to create an atlas from
5 * OpenStreetMap (www.openstreetmap.org) data.
6*/
7
8// This script works with OSM API v0.6
9
10// Program version
11$VERSION = "1.1-DEV";
12// Page where maps start
13$START_PAGE_NUMBER = 2;
14
15//Get config files
16require ("inc_config.php");
17require ($argv [1]);
18
19// Rotate logs
20if (file_exists ($LOG_FILE))
21        if (filesize ($LOG_FILE) > 10240) {
22                if (file_exists ("$LOG_FILE.old"))
23                        unlink ("$LOG_FILE.old");
24                rename ($LOG_FILE, "$LOG_FILE.old");
25        }
26
27/*
28 * Function to make a map tile. Arguments:
29 * $tLeft: westerly longitude
30 * $tRight: easterly longitude
31 * $tTop: northerly latitude
32 * $tBottom: southerly latitude
33 * $tRow
34 * $tCol
35 * $PageNumber: page number. Used for indexes
36*/
37function tile ($tLeft, $tRight, $tTop, $tBottom, $tRow, $tCol, $PageNumber) {
38        //Define global variables
39        global $OSMOSIS_DIR;
40        global $DATA_FILE;
41        global $OUTPUT_DIR;
42        global $OSMARENDER_DIR;
43        global $STYLESHEET;
44        global $STYLESHEET_THUMBS;
45        global $INDEX_STREET_NAMES;
46        global $INDEX_PLACE_NAMES;
47        global $asStreetNameIndex;
48        global $asPlaceNameIndex;
49        global $INKSCAPE_DPI;
50        global $CurrentProgress;
51        global $DEBUG;
52        global $LOG_FILE;
53
54        // Run osmosis to extract tile area
55        Progress ($CurrentProgress, "Running osmosis for tile row=$tRow, col=$tCol");
56        chdir ($OSMOSIS_DIR);
57        if (!file_exists ($DATA_FILE))
58                die_error ("Data file $DATA_FILE does not exist");
59        $cmd = "./osmosis --read-xml $DATA_FILE --bounding-box left=$tLeft top=$tTop right=$tRight bottom=$tBottom completeWays=yes --write-xml file=$OUTPUT_DIR/osm-temp-$tRow-$tCol.osm";
60        if ($DEBUG === True)
61                file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
62        shell_exec ("$cmd 2>/dev/null >/dev/null");
63        if (!file_exists ("$OUTPUT_DIR/osm-temp-$tRow-$tCol.osm"))
64                die_error ("osmosis output file $OUTPUT_DIR/osm-temp-$tRow-$tCol.osm does not exist\nCommand:\n$cmd");
65
66        // Set bounds of data.osm
67        $bounds .= "minlat='$tBottom' minlon='$tLeft' maxlat='$tTop' maxlon='$tRight'";
68        Progress ($CurrentProgress, "Setting bounds for tile row=$tRow, col=$tCol");
69        chdir ($OUTPUT_DIR);
70        $cmd = "sed -i -e \"2 s/^<osm .*$/<osm><bounds $bounds \/>/\" osm-temp-$tRow-$tCol.osm";
71        if ($DEBUG === True)
72                file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
73        shell_exec ("$cmd 2>/dev/null >/dev/null");
74
75        // Run osmarender
76        Progress ($CurrentProgress, "Running osmarender for tile row=$tRow, col=$tCol");
77        if (!file_exists ("$OUTPUT_DIR/osm-temp-$tRow-$tCol.osm"))
78                die_error ("$OUTPUT_DIR/osm-temp-$tRow-$tCol.osm does not exist");
79        if (!copy ("$OUTPUT_DIR/osm-temp-$tRow-$tCol.osm", "$OSMARENDER_DIR/data.osm"))
80                die_error ("Error copying $OUTPUT_DIR/osm-temp-$tRow-$tCol.osm to $OSMARENDER_DIR/data.osm");
81        chdir ($OSMARENDER_DIR);
82        //Create image for main map page
83        $cmd = "xsltproc osmarender.xsl $STYLESHEET > $OUTPUT_DIR/osm-temp-$tRow-$tCol.svg";
84        if ($DEBUG === True)
85                file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
86        shell_exec ("$cmd 2>/dev/null");
87        //Create image for overview page
88        $cmd = "xsltproc osmarender.xsl $STYLESHEET_THUMBS > $OUTPUT_DIR/osm-temp-thumb-$tRow-$tCol.svg";
89        if ($DEBUG === True)
90                file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
91        shell_exec ("$cmd 2>/dev/null");
92
93        // Add names to indexes
94        Progress ($CurrentProgress, "Extracting names for index, tile row=$tRow, col=$tCol");
95        //Load .osm file into a SimpleXML object
96        $xml = simplexml_load_file ("$OUTPUT_DIR/osm-temp-$tRow-$tCol.osm");
97        //Street name index
98        if ($INDEX_STREET_NAMES == True) {
99                //Loop through ways
100                foreach ($xml->way as $way) {
101                        //Initialise $bName & $sName
102                        $bName = False;
103                        $sName = "";
104                        foreach ($way->tag as $tag) {
105                                //If way is a highway, set $bName to True, get name if found
106                                if ($tag ['k'] == 'highway')
107                                        $bName = True;
108                                elseif ($tag ['k'] == 'name')
109                                        $sName = trim ($tag ['v']);
110                        }
111                        //If way is a highway *and* it has a name, add to index
112                        if ($bName == True && $sName != "") {
113                                if (array_key_exists ($sName, $asStreetNameIndex))
114                                        $asStreetNameIndex [$sName] .= ", $PageNumber";
115                                else
116                                        $asStreetNameIndex [$sName] = " $PageNumber";
117                        }
118                }
119        }
120        //Place name index
121        if ($INDEX_PLACE_NAMES == True) {
122                //Loop through ways
123                foreach ($xml->node as $node) {
124                        //Initialise $bName & $sName
125                        $bName = False;
126                        $sName = "";
127                        foreach ($node->tag as $tag) {
128                                //If node is a place, set $bName to True, get name if found
129                                if ($tag ['k'] == 'place')
130                                        $bName = True;
131                                elseif ($tag ['k'] == 'name')
132                                        $sName = trim ($tag ['v']);
133                        }
134                        //If node is a place *and* it has a name, add to index
135                        if ($bName == True && $sName != "") {
136                                if (array_key_exists ($sName, $asPlaceNameIndex))
137                                        $asPlaceNameIndex [$sName] .= ", $PageNumber";
138                                else
139                                        $asPlaceNameIndex [$sName] = " $PageNumber";
140                        }
141                }
142        }
143
144        Progress ($CurrentProgress, "Running Inkscape to create .png for tile row=$tRow, col=$tCol");
145        // Run inkscape to create PNG for main map page
146        $cmd = "inkscape --without-gui --file=$OUTPUT_DIR/osm-temp-$tRow-$tCol.svg --export-png=$OUTPUT_DIR/osm-temp-$tRow-$tCol.png --export-dpi=$INKSCAPE_DPI";
147        if ($DEBUG === True)
148                file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
149        shell_exec ("$cmd 2>/dev/null >/dev/null");
150        // Run inkscape to create PNG for overview page
151        $cmd = "inkscape --without-gui --file=$OUTPUT_DIR/osm-temp-thumb-$tRow-$tCol.svg --export-png=$OUTPUT_DIR/osm-temp-thumb-$tRow-$tCol.png --export-dpi=$INKSCAPE_DPI";
152        if ($DEBUG === True)
153                file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
154        shell_exec ("$cmd 2>/dev/null >/dev/null");
155
156        if (file_exists ("$OSMARENDER_DIR/data.osm"))
157                unlink ("$OSMARENDER_DIR/data.osm");
158}
159
160/*
161 * Function to delete files specified with wildcard
162*/
163function delfile ($s) {
164        global $LOG_FILE;
165        global $DEBUG;
166        foreach (glob ($s) as $f) {
167                if ($DEBUG === True)
168                        file_put_contents ($LOG_FILE, "deleting $f\n", FILE_APPEND);
169                unlink ($f);
170        }
171}
172
173/*
174 * Function to update progress display
175*/
176function Progress (&$CurrentProgress, $Description) {
177        global $TotalSteps;
178        global $LOG_FILE;
179        $CurrentProgress++;
180
181        $progress = ceil (($CurrentProgress / $TotalSteps) * 100);
182        $progress = str_pad ($progress, 3, " ", STR_PAD_LEFT);
183        ncurses_mvaddstr (2, 2, "Progress: $progress%");
184
185        $Description = str_pad ($Description, 60, " ");
186        ncurses_mvaddstr (3, 3, $Description);
187        ncurses_refresh();
188
189        file_put_contents ($LOG_FILE, "Step $CurrentProgress of $TotalSteps - $Description\n", FILE_APPEND);
190}
191
192/*
193 * Function to exit with error
194*/
195function die_error ($ErrorMessage) {
196        global $LOG_FILE;
197        file_put_contents ($LOG_FILE, "osm-atlas exited with the following error:\n", FILE_APPEND);
198        file_put_contents ($LOG_FILE, "\t$ErrorMessage\n", FILE_APPEND);
199        ncurses_end();
200        die ("$ErrorMessage\n");
201}
202
203//Log start
204file_put_contents ($LOG_FILE, "\nOSM-Atlas.php started at " . date ("H:i jS M Y") . "\n", FILE_APPEND);
205//Check files & directories exist
206if (! file_exists ($OUTPUT_DIR))
207        die_error ("OUTPUT_DIR ($OUTPUT_DIR) does not exist");
208if (! file_exists ($OSMARENDER_DIR))
209        die_error ("OSMARENDER_DIR ($OSMARENDER_DIR) does not exist");
210if (! file_exists ("$OSMARENDER_DIR/$STYLESHEET"))
211        die_error ("STYLESHEET ($STYLESHEET) does not exist");
212//Delete .tex file if it already exists
213if (file_exists ("$OUTPUT_DIR/OSM_Atlas.tex"))
214        if (unlink ("$OUTPUT_DIR/OSM_Atlas.tex") === False)
215                die_error ("Unable to delete $OUTPUT_DIR/OSM_Atlas.tex");
216
217//Check data file exists
218if (!file_exists ($DATA_FILE))
219        die_error ("Data file $DATA_FILE does not exist.");
220//Set up ncurses display
221$ncurse = ncurses_init();
222// let ncurses know we wish to use the whole screen
223$fullscreen = ncurses_newwin ( 0, 0, 0, 0);
224// draw a border around the whole thing.
225ncurses_border(0,0, 0,0, 0,0, 0,0);
226// Write text to screen
227ncurses_mvaddstr (0, 2, "OSM-Atlas v$VERSION");
228// GPL notice
229ncurses_mvaddstr (5, 2, "OSM-Atlas Copyright 2009 Russ Phillips");
230ncurses_mvaddstr (6, 2, "This program comes with ABSOLUTELY NO WARRANTY.");
231ncurses_mvaddstr (7, 2, "This is free software, and you are welcome to redistribute it");
232ncurses_mvaddstr (8, 2, "under certain conditions; see the LICENCE.txt file for details.");
233
234// Hide cursor
235ncurses_curs_set (0);
236ncurses_refresh();
237
238//Calculate number of steps to be done & initialise $CurrentProgress
239if ($DELETE_WORKING_FILES)
240        $TotalSteps = 5 + ($HORIZ_TILES * $VERT_TILES * 7);
241else
242        $TotalSteps = 4 + ($HORIZ_TILES * $VERT_TILES * 7);
243$CurrentProgress = 0;
244
245//Set up arrays for index of names. Key is name, value is map number
246$asStreetNameIndex = array ();
247$asPlaceNameIndex = array ();
248//Copy logo image
249copy ("osm-logo.png", "$OUTPUT_DIR/osm-logo.png");
250if (! file_exists ("$OUTPUT_DIR/osm-logo.png"))
251        die_error ("osm-logo.png does not exist");
252
253Progress ($CurrentProgress, "Creating LaTeX file headers");
254$latexheader = "\\documentclass[a4paper]{article}\n" .
255        "\\usepackage[hmargin=3cm,vmargin=3cm]{geometry}\n" .
256        "\\usepackage{array}\n" .
257        "\\usepackage{graphicx}\n" .
258        "\\usepackage{multicol}\n" .
259        "\\usepackage{hyperref}\n" .
260        "\\hypersetup{%\n" .
261        "pdftitle={" . $PDFTITLE . "},%\n" .
262        "pdfauthor={" . $PDFAUTHOR. "},%\n" .
263        "pdfsubject={" . $PDFSUBJECT. "},%\n" .
264        "pdfcreator={OSM-Atlas (wiki.openstreetmap.org/wiki/OSM-Atlas)},%\n" .
265        "pdfkeywords={" . $PDFKEYWORDS . "},%\n" .
266        "pdfborder = {0 0 0 0}%\n" .
267        "}\n" .
268        "\\DeclareGraphicsExtensions{.png}\n" .
269        "\\begin{document}\n" .
270        "\\begin{titlepage}\n" .
271        "\\begin{center}\n" .
272        "{\\Huge $TITLE}\n" .
273        "\\vfill\n" .
274        "\\includegraphics{osm-logo}\n\n" .
275        "Created using data from OpenStreetMap\n\n" .
276        "\\href{http://www.openstreetmap.org/}{www.openstreetmap.org}\n" .
277        "\\end{center}\n" .
278        "\\end{titlepage}\n";
279        file_put_contents ("$OUTPUT_DIR/OSM_Atlas.tex", $latexheader, FILE_APPEND);
280
281// Create tiles
282$tilewidth = ($RIGHT - $LEFT) / $HORIZ_TILES;
283$tileheight = ($TOP - $BOTTOM) / $VERT_TILES;
284$tTop = $TOP;
285$tBottom = $tTop - $tileheight;
286
287//Initialise page counter
288$PageNumber = $START_PAGE_NUMBER;
289
290//Generate images
291for ($tRow = 1; $tRow <= $VERT_TILES; $tRow++) {
292        //New row: reset $tLeft & $tRight
293        $tLeft = $LEFT;
294        $tRight = $tLeft + $tilewidth;
295        for ($tCol = 1; $tCol <= $HORIZ_TILES; $tCol++) {
296                $tRight = $tLeft + $tilewidth;
297
298                //Generate images etc for this tile
299                tile ($tLeft, $tRight, $tTop, $tBottom, $tRow, $tCol, $PageNumber);
300
301                $tLeft += $tilewidth;
302                $PageNumber++;
303        }
304        //End of row: Set new $tTop & $tBottom
305        $tTop -= $tileheight;
306        $tBottom = $tTop - $tileheight;
307}
308
309//Generate LaTeX for overview map
310$latex = "\\begin{tabular}{|";
311for ($i = 1; $i <= $HORIZ_TILES; $i++)
312        $latex .= "c|";
313$latex .= "}\n\\hline\n";
314$width = 13 / $HORIZ_TILES;
315
316//Initialise page counter
317$PageNumber = $START_PAGE_NUMBER;
318
319//Overview map - thumbnails
320for ($tRow = 1; $tRow <= $VERT_TILES; $tRow++) {
321        for ($tCol = 1; $tCol <= $HORIZ_TILES; $tCol++) {
322                Progress ($CurrentProgress, "Generating overview images for tile $tRow-$tCol");
323                //Add number to image
324                $imsize = getimagesize ("$OUTPUT_DIR/osm-temp-thumb-" . "$tRow-$tCol.png");
325                $im = @imagecreatefrompng ("$OUTPUT_DIR/osm-temp-thumb-" . "$tRow-$tCol.png");
326                $bg = imagecolorallocate ($im, 255, 255, 255);
327                $textcolor = imagecolorallocate ($im, 0, 0, 0);
328
329                //Get size of text
330                $aTxtSize = imagettfbbox ($OV_FONT_SIZE, 0, $OV_FONT, trim ($PageNumber));
331                $iTxtWidth = abs ($aTxtSize [2] - $aTxtSize [0]);
332                $iTxtHeight = abs ($aTxtSize [1] - $aTxtSize [7]);
333                //Get position for text
334                $iTxtLeft = ($imsize [0] - $iTxtWidth) / 2;
335                //Note that bottom has to be offset by height of image
336                $iTxtBottom = (($imsize [1] - $iTxtHeight) / 2) + $iTxtHeight;
337
338                imagettftext($im, $OV_FONT_SIZE, 0, $iTxtLeft, $iTxtBottom, $textcolor, $OV_FONT, $PageNumber);
339                imagepng ($im, "$OUTPUT_DIR/osm-temp-ov-" . "$tRow-$tCol.png");
340                imagedestroy ($im);
341                //Write LaTeX code for the thumbnail
342                $latex .= "\\includegraphics[width={$width}cm]{osm-temp-ov-$tRow-$tCol.png}\n";
343                $PageNumber++;
344        }
345        // newline
346        $latex .= "\\\\\n";
347}
348
349// Add horizontal line at end of table
350$latex .= "\\hline\n";
351$latex .= "\\end{tabular}\n\\newpage\n";
352file_put_contents ("$OUTPUT_DIR/OSM_Atlas.tex", $latex, FILE_APPEND);
353
354//Initialise page counter
355$PageNumber = $START_PAGE_NUMBER;
356
357//Create LaTeX for map pages
358for ($tRow = 1; $tRow <= $VERT_TILES; $tRow++) {
359        for ($tCol = 1; $tCol <= $HORIZ_TILES; $tCol++) {
360                Progress ($CurrentProgress, "Generating LaTeX for tile $tRow-$tCol");
361                //Calculate N/E/S/W page numbers
362                $npage = $PageNumber - $HORIZ_TILES;
363                if ($npage < $START_PAGE_NUMBER)
364                        $npage = "-";
365                if ($tCol == $HORIZ_TILES)
366                        $epage = "-";
367                else
368                        $epage = (string) $PageNumber + 1;
369                $spage = $PageNumber + $HORIZ_TILES;
370                if ($spage > ($HORIZ_TILES * $VERT_TILES) + ($START_PAGE_NUMBER - 1))
371                        $spage = "-";
372                if ($tCol == 1)
373                        $wpage = "-";
374                else
375                        $wpage = (string) $PageNumber - 1;
376                //Write LaTeX code for table with image & N/E/S/W page numbers
377                $latex = "\\begin{tabular}{m{1cm}m{13cm}m{1cm}}\n" .
378                        " &\begin{center}{$npage}\end{center}& \\\\\n" .
379                        "$wpage &" .
380                        "\\includegraphics[width=13cm]{osm-temp" . "-$tRow-$tCol.png}&" .
381                        " $epage \\\\\n" .
382                        " &\begin{center}{$spage}\end{center}& \\\\\n" .
383                        "\\end{tabular}\n" .
384                        "\\newpage\n";
385                file_put_contents ("$OUTPUT_DIR/OSM_Atlas.tex", $latex, FILE_APPEND);
386                $PageNumber++;
387        }
388}
389
390Progress ($CurrentProgress, "Creating index");
391if ($INDEX_PLACE_NAMES == True) {
392        // Sort index, remove duplicate lines
393        natcasesort ($asPlaceNameIndex);
394        $asPlaceNameIndex = array_unique ($asPlaceNameIndex);
395        /* Write place index to LaTeX file
396         * Each index entry is a seperate paragraph, with first line not indented
397         * and subsequent lines indented. This makes it easier to read entries
398         * that are too long to fit on a single line
399        */
400        $latexfile = fopen ("$OUTPUT_DIR/OSM_Atlas.tex", "a");
401        fwrite ($latexfile, "\\begin{center}\n" .
402                "{\\Large Index of Place Names}\n" .
403                "\\end{center}\n" .
404                "\\setlength{\columnseprule}{0.5pt}\n" .
405                "\\setlength{\columnsep}{20pt}\n" .
406                "\\begin{multicols}{4}\n" .
407                "\\begin{footnotesize}\n" .
408                "\\begin{raggedright}\n");
409        $para_indent = "\\hangindent=0.25cm\n\\hangafter=1\n";
410        foreach ($asPlaceNameIndex as $name => $page) {
411                $line = html_entity_decode ($name);
412                //PHP does not recognise &apos; - so do it by hand
413                $line = str_replace ("&apos;", "'", $line);
414                //Replace & with \\&
415                $line = str_replace ("&", "\\&", $line);
416                //Remove duplicates of page numbers
417                $numbers = explode (",", $page);
418                $numbers = array_unique ($numbers);
419                //Put page numbers back into a comma-seperated string
420                $pages = implode (", ", $numbers);
421                fwrite ($latexfile, "$para_indent$name\t$pages\n\n");
422        }
423        fwrite ($latexfile, "\\end{raggedright}\n" .
424                "\\end{footnotesize}\n" .
425                "\\end{multicols}\n" .
426                "\\newpage\n");
427}
428
429if ($INDEX_STREET_NAMES == True) {
430        // Sort index
431        ksort ($asStreetNameIndex);
432        /* Write street index to LaTeX file
433         * Each index entry is a seperate paragraph, with first line not indented
434         * and subsequent lines indented. This makes it easier to read entries
435         * that are too long to fit on a single line
436        */
437        $latexfile = fopen ("$OUTPUT_DIR/OSM_Atlas.tex", "a");
438        fwrite ($latexfile, "\\begin{center}\n" .
439                "{\\Large Index of Street Names}\n" .
440                "\\end{center}\n" .
441                "\\setlength{\columnseprule}{0.5pt}\n" .
442                "\\setlength{\columnsep}{20pt}\n" .
443                "\\begin{multicols}{4}\n" .
444                "\\begin{footnotesize}\n" .
445                "\\begin{raggedright}\n");
446        $para_indent = "\\hangindent=0.25cm\n\\hangafter=1\n";
447        foreach ($asStreetNameIndex as $name => $page) {
448                $name = html_entity_decode ($name);
449                //PHP does not recognise &apos; - so do it by hand
450                $name = str_replace ("&apos;", "'", $name);
451                //Replace & with \\&
452                $name = str_replace ("&", "\\&", $name);
453                //Remove duplicates of page numbers
454                $numbers = explode (",", $page);
455                $numbers = array_unique ($numbers);
456                //Put page numbers back into a comma-seperated string
457                $pages = implode (", ", $numbers);
458                fwrite ($latexfile, "$para_indent$name\t$pages\n\n");
459        }
460        fwrite ($latexfile, "\\end{raggedright}\n" .
461                "\\end{footnotesize}\n" .
462                "\\end{multicols}\n" .
463                "\\newpage\n");
464}
465
466fwrite ($latexfile, "\\begin{titlepage}\n" .
467        "This atlas was created by OSM-Atlas " .
468        "(\\href{http://www.mappage.org/atlas/}{www.mappage.org/atlas}) " .
469        "using data from OpenStreetMap. OpenStreetMap " .
470        "creates and provides free geographic data such as street maps to " .
471        "anyone who wants them. The project was started because most maps " .
472        "you think of as free actually have legal or technical restrictions " .
473        "on their use, holding back people from using them in creative, productive," .
474        " or unexpected ways.\n\n" .
475        "OpenStreetMap data, and this atlas, is licensed under the Creative " .
476        "Commons Attribution-Share Alike 2.0 Generic License. To view a " .
477        "copy of this license, visit " .
478        "\\href{http://creativecommons.org/licenses/by-sa/2.0/}" .
479        "{http://creativecommons.org/licenses/by-sa/2.0/} or send a letter " .
480        "to: Creative Commons, 171 Second Street, Suite 300, San " .
481        "Francisco, California, 94105, USA.\n" .
482        "\\begin{center}\n" .
483        "\\includegraphics{osm-logo}\n\n" .
484        "\\href{http://www.openstreetmap.org/}{www.openstreetmap.org}\n" .
485        "\\end{center}\n" .
486        "\\end{titlepage}\n" .
487        "\\end{document}\n");
488fclose ($latexfile);
489
490// Create PDF file
491chdir ($OUTPUT_DIR);
492Progress ($CurrentProgress, "Running pdflatex to create PDF file");
493$cmd = "pdflatex -interaction=batchmode OSM_Atlas.tex";
494if ($DEBUG === True)
495        file_put_contents ($LOG_FILE, "\tRunning `$cmd`\n", FILE_APPEND);
496shell_exec ("$cmd 2>/dev/null >/dev/null");
497
498// Clean up
499chdir ($OUTPUT_DIR);
500if ($DELETE_WORKING_FILES) {
501        //pause for 5 seconds
502        Progress ($CurrentProgress, "Deleting working files");
503        delfile ("*.osm");
504        delfile ("*.svg");
505        delfile ("*.png");
506        delfile ("*.aux");
507        delfile ("*.tex");
508        delfile ("*.out");
509        //Delete LaTeX log file
510        delfile (ereg_replace ("\.tex$", ".log", OSM_Atlas.tex));
511}
512
513//Log finish & clean up ncurses
514file_put_contents ($LOG_FILE, "Finished at " . date ("H:i jS M Y") . "\n", FILE_APPEND);
515ncurses_end();
516?>
Note: See TracBrowser for help on using the repository browser.