Liste der Anhänge anzeigen (Anzahl: 1)
[Anleitung] Druckplugin inkl. Karte
Hallo,
ich möchte euch gerne mal meine Variante vorstellen, mit der es möglich ist eine Google Map auf den Alarmausdruck mit Hilfe des Druckplugins zu bekommen.
Dazu habe ich mir ein php-Script gebastelt, welches dann lokal auf dem Rechner läuft. Eine virtuelle Testumgebung, wie z.B. XAMPP ist dazu erforderlich.
Das Script ist für unseren Alarmtext gebastelt und muss dann evtl. angepasst werden.
Diese Seite ist zum Erstellen der Maps sehr hilfreich: https://developers.google.com/maps/d...aticmaps/index
So nun zur eigentlichen Sache:
Unser Alarmtext sieht z.B. wie folgt aus:
b *Musterstadt *MusterS 112 *Heckenbrand *123456
Die Adresserkennung aus FE erfasst jetzt als Parameter "location_dest": "Musterstadt Musterstraße 112"
1. Jetzt rufe ich mit einer Batch mein php Script auf:
Code:
:: Der Befehl öffnet das Script, welches aus dem Einsatzort eine Google Map erstellt. Der Speicherort des Bildes hat den Pfad F:\Druck. Speicherort des Scriptes F:\xampp\htdocs\map
:: wget --spider -q lässt die Batch im Hintergrund ausführen und arbeitet das php-Script ab.
:: %1% übergibt den Einsatzort aus firEmergency
wget --spider -q localhost/map/Mapgenerator.php?ort=%1%
exit
2. Das php-Script sieht wie folgt aus:
Code:
<?php
// Dieses Script dient als Zusatztool für firEmergency. Es bekommt die Einsatzadresse per Batch übergeben, erstellt eine Google Map und speichert sie als .png ab. In iReport fügt man die Map dann als Bild ein. Bei jedem neuen Alarm wird das Bild durch eine neue Map ersetzt.
// Der Parametet $GET["ort"] wird von der Batch aufgerufen. Z.B. localhost/map/Mapgenerator.php?ort=Musterstadt-Musterstraße-112
$source = 'http://maps.googleapis.com/maps/api/staticmap?center'.$_GET["ort"].'&zoom=15&size=550x400&scale=2&markers=color:red%7Clabel:%7C'.$_GET["ort"].'&sensor=false';
// Das Bild wird unter dem angegeben Pfad gespeichert.
$dest = 'F:\Druck\ort.png';
copy($source, $dest);
?>
3. In iReport fügt man nun ein Bild ein, an der Stelle, wo die Karte später dargestellt werden soll. Der Pfad lautet dann z.B. F:\Druck\ort.png
4.
Konfiguration der Alarmpipeline
-Alarmtext[eigene Parameter]
--Textersetzung
---Batch
----Verzögerung
-----Alarmdruck
5.
-Das Alarmtextplugin bekommt unter &1& den Parameter "location_dest". Mehr nicht.
-Die Textersetzung muss nun Umlaute und Leerzeichen beseitigen. Z.B. so:
ä;ae
Ä;Ae
ö;oe
Ö;Oe
ü;ue
Ü;Ue
ß;ss
;-
-Das Batch Plugin bekommt den Pfad, wo die Batch zu finden ist. Z.B. F:\Druck\Mapgenerator.bat Im Hintergrund
-Ich habe 5 Sekunden verzögert, damit das Bild auch in Ruhe gespeichert werden kann.
-Dann im Druckplugin euern Drucker usw. angeben.
Eine Internetverbindung ist natürlich auch immer erforderlich. Das Script ist im Moment noch sehr einfach gehalten und führt keine Aktionen durch, wenn Fehler auftreten. Getestet wurde das mit FE 1.4.1. Funktioniert bisher auch ganz gut.
Aussehen tut das ganze dann z.B. so:
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
feodor
Kannst du die Datei nicht direkt mit wget auch lokal speichern?
Da muss ich mich nochmal schlau lesen.
Zitat:
Zitat von
Hausen
kannst Du vielleicht die Dateien (Batch + PHP-Script + iReport) hier direkt hochladen? Also als Datei meine ich?!
Bitteschön.
Liste der Anhänge anzeigen (Anzahl: 1)
Hier,
ohne XAMPP, PHP und dergleichen
wget -O bild.png "http://maps.googleapis.com/maps/api/staticmap?center&zoom=15&size=550x400&scale=2&mark ers=color:red|label:|%27.Augsburg.%27&sensor=false "
Speichert den Aufruf in der Datei bild.png
(Den Aufruf hab ich jetzt nicht wirklich angeschaut, aber es kommt ein Bild von Augsburg zurück, das heißt um das Einlesen in die API kommt man nicht wirklich drum herum. Also bitte nicht an diesem Aufruf orientieren, sondern selbst anpassen)
Die verwendete Exe habe ich angehängt, irgendwie findet man sehr viele Versionen im Netz. Nehmt diese :-)
Gruß
Liste der Anhänge anzeigen (Anzahl: 1)
Hier nun eine kleine Anleitung nur für die Generierung des Bildes
1) Pipeline konfigurieren wie im Anhang
2) Batch Datei anpassen, siehe Kommentare innerhalb der .bat Datei
!!!Etwas Grundwissen in der Bearbeitung von .bat Dateien wird vorausgesetzt!!!
@Heinz
Du kannst die Anleitung und die .bat Datei gerne weiter verwenden und deine Anleitung darauf aufbauen