PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aus POCSAG Text per PHP Strasse + Ort auslesen



optimist
01.08.2006, 17:57
Hallo !

Bei Google-Maps ist es möglich eine Route mittels URL aufzurufen:

Beispiel:

http://maps.google.de/maps?f=d&hl=de&saddr=bahnhof+alzey+de&daddr=Ernst-Ludwig-Stra%C3%9Fe,+55232+Alzey,+Alzey-Worms,+Rheinland-Pfalz,+Deutschland&ie=UTF8&om=1

Praktisch wäre es, wenn man hier aus der POCSAG Meldung den Text ausließt und die URL generiert und per PHP dann in eine Seite einbindet.
Dann hätte man zu dem Alarmtext auch eine Karte zur leichteren Anfahrt auf einer Seite !

Es gibt doch bestimmt schon einige die die gleiche Idee hatten !
Wie habt ihr sowas gelöst ?

Fabpicard
02.08.2006, 13:30
Falls du die POCSAG-Meldung in eine Datei speichers, dann müsstest du in dieser Datei die erforderlichen Angaben immer an der selben Stelle der Datei stehen haben.

Solch eine Datei könnte dann so aussehen:

---
Internistischer Notfall
Blablastraße
3 <--- hausnummer
Irgendeinort
eventuelle-PLZ
Zusatzinfos
---

Dann könntest du mit PHP die erforderlichen Angaben aus der Datei als Variable übernehmen und diese dann in eine Meter-Angabe übernehmen, die bei Aufruf der .php direkt gestartet wird.

Was aber vorraussetzen würde, dass wie gesagt die nötigen Angaben IMMER an der selben stelle stehen würden.

Das wäre jetzt mein vorschlag, kannst ja mal sagen, wie die POCSAG-Meldung vorliegt, also in welchem Vormat...

MfG Fabsi

optimist
02.08.2006, 21:33
Hallo !

Ich bekomme fogende Textmeldung zur Weitervearbeitung:

"H1/Hilfe für Tiere/Mz-Neustadt/Necktarstraße 122// * 01.01.01 21:28 *[NULL][NULL]"

Müßte man doch an den / teilen können oder ?

Aber wie bau ich das in die Url ein ? Mit include ?

felix000
02.08.2006, 22:13
Du baust es mit einer Variable in die URL ein.

$meldung übergibst du am besten per Adressleiste:



$teile = explode("/", $meldung);
\\ Dann kriegst du ein Array mit den Teilen der Meldung:Array ( [0] => H1 [1] => Hilfe für Tiere [2] => Mz-Neustadt [3] => Necktarstraße 122 [4] => [5] => * 01.01.01 21:28 *[NULL][NULL] )

\\ Jetzt kannst du die URL generieren:
echo "http://maps.google.de/maps?f=d&hl=de&saddr=vonHierDaheim&daddr=$teile[3]+$teile[2]&ie=UTF8&om=1";


Folgende Probleme bestehen noch:
- Abkürzungen wie z.B. "Mz" müssen vollständig an Google-Maps übergeben werden
- Umlaute und "ß" müssen anders geschrieben werden

Fabpicard
03.08.2006, 10:01
Folgende Probleme bestehen noch:
- Abkürzungen wie z.B. "Mz" müssen vollständig an Google-Maps übergeben werden
- Umlaute und "ß" müssen anders geschrieben werden

- Das mit dem "Mz" kannste eventuell durch bearbeiten des Array raus bekommen, mit "wenn "Mz"- in bestimmtem array-teil, dann schneide dies raus" zwar sehr umständlich nur nur für ein paar stück zu filtern empfehlenswert, aber es funzt... Falls du den Code brauchst, hab des Buch jetz nit hier zum nachschlagen ;)

- Umlaute und "ß" kannste doch auch filtern lassen, dazu fällt mir die funktion jetzt nicht ein ;)

MfG Fabsi

optimist
03.08.2006, 19:32
@Fabpicard

Hast Du das Buch jetzt zur Hand ? UNd ist Dir vielleicht die Funktion eingefallen ???

@alle

Ich bin auch offen für andere Vorschläge um eine Karte zu erhalten.
Da haben sich doch bestimmt schon mehrere daran versucht, oder ?

Wäre es besser auf eine MySQL DB auszuweichen?
Eigentlich bin ich eher der Freund von CSV Dateien, kenne mich nämlich nur mit access aus !

death22
16.02.2007, 18:14
Hi,

na, seid ihr schon weitergekommen? Hätte an so einem Tool/Frontend auch interresse.

MfG
Death

Shinzon
16.02.2007, 21:33
Ich könnte mir da nen XML-Ansatz vorstellen .. Werde während der
Nachtschicht mal basteln..

FlorianMI
18.02.2007, 10:59
Hallo,


schau mal hier, in bos2web ist das schon integriert, muss lediglich für die ortsübliche Codierung angepasst werden.


http://www.bos2web.de

marwoo
17.04.2007, 12:14
Hallo!

Ich hol das Thema jetzt noch mal hoch. Hat inzwischen mal jemand ne Lösung für das Problem von optimist? Also bei uns sind die Texte genauso formatiert bzw. mit "/" getrennt.

Also, wenn da jemand ne Idee hätte wäre das echt klasse.

death22
03.05.2007, 21:52
also ich habe mir jetzt ein eigenes PHP script geschrieben was eine TXT datei ausließt und dann in Arrays speichert.

Diese arrays optimiere ich dann (wegen umlaute und so)
füge die einer URL von google Maps hinzu und bekomme dies als Link auf der seite raus.


$datum=date("d-m-Y");
$dateiname = "P:\\Programme\\xampp\\htdocs\\Meldungen$datum.txt";
//$handle = fopen($dateiname, "rb");
$file=file($dateiname);

$dateiInhalt =$file[$i];
<-- i wird als variable übergen sodass ich zwischen den Meldungen hin und her schalten kann

$teile = explode(" ",$dateiInhalt);

^^die ganze verareitung de rumlaute und so

und zu guter letzte

echo "<a href='http://maps.google.de/maps?f=q&hl=de&q=$teile[1]+$teile[2]+$teile[3]' target='_blank'>MAP</a>";http://maps.google.de/maps?f=q&hl=de&q=$teile[1]+$teile[2]+$teile[3]


wobei
$teile[1] = Ort
$teile[2] = Strasse
$teile[3] = Haus Nr.

und zusätzlich habe ich auf der seite wo mir der link ausgegeben wird nochmal die komplette meldung ausgegeben, sodass ich auch noch nachschauen kann was das jetzt ist ob Hilfe1 oder Feuer2 ...


ich hoffe das konnte euch etwas weiter helfen...

Falls wer das genauso machen will und probleme dabei hat, kann sich gerne per mail bei mir melden

PS: Wegen abkürzungen und so die kann man mit preg_replace() rausfiltern und dann ausschreiben

genauso verfahre ich auch mit den ä,ö,ü,ß

RicoGr
08.03.2008, 11:59
Hallo zusammen,

für eine Auswertung und Filterung der Meldungen mittels PHP brauche ich eine Serversoftware, mit der PHP zusammen arbeiten kann. Diese hab ich nicht, und möchte sie auch nur ungern allein für diesen Zweck installieren.

Aber das Problem bleibt das gleiche: Ich möchte ebenfalls die Adressdaten ausfiltern und an google.maps übergeben.

Hat hierfür jemand schon eine andere Lösung gefunden?

Bis bald
Rico

Shinzon
09.03.2008, 08:54
Moin..

Wo steht denn, das PHP ne "Serversoftware" braucht ?

Installier dir PHP und nutze es von der Kommandozeile - fertig ..
(nennt sich dann im Fachbegriff "php-cli" (cli=command line interface=Kommandozeile) ..

Da ich bei solchen Aussagen automatisch an Windows erinnert werde,
PHP.EXE <dateiname> sollte als Ausgabe an die Kommandozeile das zurückgeben, was
das PHP Skript "return"-t ..

Gruss,
Tim

Beatzler
14.12.2009, 16:19
Hey,

diesbezüglich nochmal ein paar Fragen...

Wie genau habt ihr das mit der Trennung der Nachrichten gelöst ? Also das Quasi nur die relevanten Daten für die Maps Suche herausgenommen und bereitgestellt werden ?

Bei uns ist es z.B. so das die Meldung So reinkommt:

Alarmkürzel*Ort*Straße+ggf. Hausnummer*weitere Infos etc.

Wie genau nehmt ihr euch dann nur die 2. und 3. Stelle hinter dem Trennzeichen * raus ?

MFG Beatzler

felix000
14.12.2009, 21:08
Schau dir mal die Seite (inkl. der Beispiele) an: http://de.php.net/explode

Beatzler
14.12.2009, 23:47
Hey Felix,

Super vielen Dank das scheint zu klappen !

Bin leider kein PHP Profi könnte mir ggf. jemand nochmal bissle helfen ?

Habe nun folgendes:



<?php
//Mapinput für Google Map´s

$mapinput = "C:\\xampp\\php\\Alarm.txt ";
$handle = fopen($mapinput, "rb");
$file=file($mapinput);

//Testweise direkt zuweisen ....
//$mapinput = "BMA*Musterstadt*Musterstrasse 23*Musterhaus XY Melder 12*";


//* wird als Teiler deklariert um die einzelnen Abschnitte abrufen zu können
$teile = explode("*", $mapinput);

// Leerzeichen zwischen Straße + Hausnummer entfernen:
$suchmuster[0] = '/ /';
$ersetzungen[0] = '';
$strasse=preg_replace($suchmuster, $ersetzungen, $teile[2]);



//Ausgabe Ort + Strasse direkt zusammen
echo "$teile[1]+$strasse";

echo "<a href='http://maps.google.de/maps?f=q&hl=de&q=$teile[1]+$strasse' target='_blank'>MAP</a>";http://maps.google.de/maps?f=q&hl=de&q=$teile[1]+$strasse";

?>


Leider klappt das aber nicht so ganz mit dem einlesen / verarbeiten von dem Textfile kann mir jemand sagen warum ?

In der Alarm.txt steht in der 1. Zeile das:

BMA*Musterstadt*Musterstrasse 23*Musterhaus XY Melder 12*

Wenn ich aber z.B. $mapinput direkt deklariere anstatt es über das Textdokument zu machen klappt es ($mapinput = "BMA*Musterstadt*Musterstrasse 23*Musterhaus XY Melder 12*"; )


Dann vermute ich mal muss ich wie in der letzten Echo angabe mal angedeutet den ganzen link auch als variable speichern und dann mittels Html aus der PHP Datei auslesen lassen richtig ? Wie ruft man das am besten auf ?


Vielen Dank für jeden Tipp !

MFG Beatzler

Shinzon
15.12.2009, 03:26
Du musst das Dateihandle nicht nur öffnen, sondern auch die Daten aus dem Handle
lesen und DIESE Daten verarbeiten.

In deinem Beispiel "verarbeitest" du nicht den Dateiinhalt, sondern den Dateinamen.

.. f_read() liegt mir auf der Zunge, aber das ist wohl eher ein Echo aus der ANSI-C-Zeit..

In der PHP Referenz gibt's aber doch ein Beispiel zum "Datei lesen", wenn ich mich recht
entsinne..

Gruss,
Tim

felix000
15.12.2009, 23:06
fopen kannst dir sparen, dazu nimmst du doch file()...

implode() is nur da für den Fall, dass mehrere Zeilen in der Datei stehen.


<?php
//Mapinput für Google Map´s

$mapinput = "C:\\xampp\\php\\Alarm.txt ";
$file=file($mapinput);

//Testweise direkt zuweisen ....
//$mapinput = "BMA*Musterstadt*Musterstrasse 23*Musterhaus XY Melder 12*";


//* wird als Teiler deklariert um die einzelnen Abschnitte abrufen zu können
$teile = explode("*", implode("",$file));

// Leerzeichen zwischen Straße + Hausnummer entfernen:
$suchmuster[0] = '/ /';
$ersetzungen[0] = '';
$strasse=preg_replace($suchmuster, $ersetzungen, $teile[2]);



//Ausgabe Ort + Strasse direkt zusammen
echo "$teile[1]+$strasse";

echo "<a href='http://maps.google.de/maps?f=q&hl=de&q=$teile[1]+$strasse' target='_blank'>MAP</a>";http://maps.google.de/maps?f=q&hl=de&q=$teile[1]+$strasse";

?>

Beatzler
16.12.2009, 22:18
Hey,

vielen Dank euch beiden ! Hat nun geklappt.

Habe auch noch die Stadt "filtern" lassen falls es dort zum Beispiel auch noch ein Leerzeichen oder eine Zahl gibt oder so:

Aktueller Code:



<?php
//Mapinput für Google Map´s

$mapinput = "C:\\xampp\\php\\Alarm.txt ";
$file=file($mapinput);




// wird als Teiler zwischen * deklariert um die einzelnen Abschnitte abrufen zu können
//implode() is nur da für den Fall, dass mehrere Zeilen in der Datei stehen.
$teile1 = explode("*", implode("",$file));

// Leerzeichen zwischen Straße + Hausnummer entfernen und durch + ersetzen:
$suchmuster[0] = '/ /';
$ersetzungen[0] = '+';
$strasse=preg_replace($suchmuster, $ersetzungen, $teile1[2]);


// Leerzeichen zwischen Stadtangabe entfernen und durch + ersetzen:
$teile2 = explode("*", implode("",$file));
$suchmuster2[0] = '/ /';
$ersetzungen2[0] = '+';
$stadt=preg_replace($suchmuster2, $ersetzungen2, $teile2[1]);


//Ausgabe Ort + Strasse direkt zusammen
echo "$stadt+$strasse";


?>


Soweit so gut scheint es jetzt in der Command Box zu klappen.

Hättet ihr nochmal nen Tipp wie ich Ihr das ganze nun am besten direkt mit Google Maps aufrufen würdet ?Denke mal das müsste den ja wieder im HTML Teil ablaufen oder ? Das ich dann halt direkt im Link die Paramter &Strasse+&stadt eintrage, quasi so:

http://maps.google.de/maps?f=q&hl=de&q=$stadt+$strasse

wie würdet ihr das ganze dann direkt aufrufen ? Über Html mittels Popup ( z.B. Javaskript) oder gibs da direkt irgend ne PHP Funktion für welche nur eine Seite öffnet und denn halt direkt mit dem Link ohne nochmal nen PopUp zu öffnen oder so ?

Vielen Dank nochmals für eure Tipps :)

MFG Beatzler

Beatzler
18.12.2009, 16:20
Hey,

ich habs nun so hinbekommen wie ich es gerne hätte und es läuft wunderbar :-)

Danke nochmals für die Hilfestellungen !



<?php
//Mapinput für Google Map´s

$mapinput = "C:\\xampp\\php\\Alarm.txt ";
$file=file($mapinput);

// wird als Teiler zwischen * deklariert um die einzelnen Abschnitte abrufen zu können
// implode() is nur da für den Fall, dass mehrere Zeilen in der Datei stehen.
$teile1 = explode("*", implode("",$file));

// Leerzeichen zwischen Straße + Hausnummer entfernen und durch + ersetzen:
$suchmuster[0] = '/ /';
$ersetzungen[0] = '+';
$strasse=preg_replace($suchmuster, $ersetzungen, $teile1[2]);

// Leerzeichen zwischen Stadtangabe entfernen und durch + ersetzen:
$teile2 = explode("*", implode("",$file));
$suchmuster2[0] = '/ /';
$ersetzungen2[0] = '+';
$stadt=preg_replace($suchmuster2, $ersetzungen2, $teile2[1]);

$googlemapURL="http://maps.google.de/maps?&hl=de&t=k&z=18&view=text&output=embed&q=$stadt+$strasse";
header("Location: $googlemapURL");

?>


Weiß einer reinzufällig den LINK Parameter um in der Satelliten Ansicht direkt immer die Labels mit den Straßen einzublenden ?! Das ist der einzigste der mir aktuell noch fehlt....


MFG Beatzler

carlcarlert
03.05.2010, 09:21
Does this work today? I´ve tryed but cant get it to work.