AUXNET Weblog
Zur Zeit wird gefiltert nach: php
Filter zurücksetzen
Codeschnippsel: PNG-Weltkugel per Generic Mapping Tools in PHP-Skript erzeugen (Linux/Ubuntu)
Wichtig ist, dass der Rechner, auf dem das Skript ausgeführt wird, bestimmte Voraussetzungen mitbringt:
- GMT muss klarerweise installiert sein. Eine Anleitung gibt es hier im Blog. Windows-Dateien können von der GMT-Homepage heruntergeladen werden. Ob das Skript unten auf Windows funktioniert, weiß ich nicht.
- Gegebenenfalls müssen die Pfade angepasst werden. Die meisten Distributionen verwenden inzwischen den GMT-Wrapper „GMT”. Falls das nicht der Fall ist, muss die Variable
$gmtWrappergelöscht werden und die Variablen$gmtCoast,$gmtXYund$gmtTextmit Pfadnamen versehen werden.
Nachdem man alles eingestellt hat (unter Ubuntu sollte das Skript Out-of-the-Box funktionieren), kann man von es von der Kommandozeile ausprobieren: php $gmt_globe.php. Dazu muss php-cli installiert sein.
Das Ergebnis kann sich durchaus sehen lassen:

Die Größe der Weltkugel ist im Skript festgesetzt. Durch Ändern der Variable $dpi lässt sich bestimmen, wie groß das resultierende PNG ist.
- Quelltext: Alles auswählen | Zeilennummerierung an/aus
-
- <?php
- //gmt_globe.php - Code-Schnippsel
- //Copyright (c) 1010, Maximilian Kalus, auxnet.de
- //Ausgabe:
- $lon = '11.566667'; //Längengrad
- $lat = '48.133333'; //Breitengrad
- $name = 'München'; //Name des Ortes
- $output = '/tmp/globus'; //Pfad und Namensteil für Ausgabedatei
- $is_utf8 = true; //System ist UTF-8?
- $dpi = 150; //DPI der Ausgabe: 72 oder 96 ist gut für den Bildschirm, 300 oder 600 für den Druck
- //Umgebung:
- $convert = '/usr/bin/convert'; //Pfad zu ImageMagick convert (oder GraphicsMagick Wrapper)
- $gmtWrapper = '/usr/bin/GMT'; //GMT-Wrapper oder leer
- $gmtCoast = 'pscoast'; //Name oder Pfad zu pscoast
- $gmtXY = 'psxy'; //Name oder Pfad zu psxy
- $gmtText = 'pstext'; //Name oder Pfad zu pstext
- ); //ggf. Umgebungsvariablen für GMT (PHP5)
- //Ausgabe-namen
- $tmpname = $output.'.ps'; //Ausgabe in PS-Datei
- //GMT-Generierung starten
- //Prozess-Pipes erzeugen
- $pipes = null;
- // in die geschrieben wird
- );
- //Globus selbst erstellen
- //PHP-Versionen unterscheiden sich...
- if (phpversion() < 5) $process = proc_open($gmtWrapper.' '.$gmtCoast.' -Rg -JG'.$lon.'/'.$lat.'/16c -B15g15 -Dc -A5000 -W0.3pt -G230 -P -K', $descriptorspec, $pipes);
- else $process = proc_open($gmtWrapper.' '.$gmtCoast.' -Rg -JG'.$lon.'/'.$lat.'/16c -B15g15 -Dc -A5000 -W0.3pt -G230 -P -K', $descriptorspec, $pipes, $cwd, $env);
- }
- //Punkt eintragen
- if (phpversion() < 5) $process = proc_open($gmtWrapper.' '.$gmtXY.' -Rg -JG'.$lon.'/'.$lat.'/16c -Ss0.15 -G255/0/0 -O -K', $descriptorspec, $pipes);
- else $process = proc_open($gmtWrapper.' '.$gmtXY.' -Rg -JG'.$lon.'/'.$lat.'/16c -Ss0.15 -G255/0/0 -O -K', $descriptorspec, $pipes, $cwd, $env);
- }
- //Titel eintragen
- if (phpversion() < 5) $process = proc_open($gmtWrapper.' '.$gmtText.' -Rg -JG'.$lon.'/'.$lat.'/16c -G0/0/0 -Dj0.06/0.06 -O', $descriptorspec, $pipes);
- else $process = proc_open($gmtWrapper.' '.$gmtText.' -Rg -JG'.$lon.'/'.$lat.'/16c -G0/0/0 -Dj0.06/0.06 -O', $descriptorspec, $pipes, $cwd, $env);
- }
- //GMT ist abgeschlossen
- //PNG erzeugen
- //PS-Datei löschen
- ?>
[mehr]
eaccelerator unter Ubuntu installieren (als deb-Paket)
eaccelerator ist ein Caching Enginge für PHP, der die Ausführung von PHP um einen Faktor von bis zu zehn erhöhen kann. Leider wird der Accelerator nicht Ubuntu ausgeliefert. Hier wird gezeigt, wie man ihn zum Laufen bringt.[mehr]