Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Geographischer Zaun / GEOFence [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Geographischer Zaun / GEOFence


 
Ghostrider28
24-05-2010, 21:48 
 
Hallöchen,

irgendwie fehlt mir ein Ansatz.
Folgender Sachverhalt. Ich habe mir ein kleines Tool geschrieben, was in meinem Mobiltelefon Daten am COM Port abgreift. An besagtem COM Port liegt ein GPS Chip. Die Daten werden anschliessend an einen Server gesandt, der die Daten bzw. den NMEA Datensatz auswertet und die Koordinaten in einer MySQL DB speichert.

Nun möchte ich aber, dass bei jedem Ankommen eines Datensatzes überprüft wird, ob die Koordinate innerhalb eines vorgegeben Bereiches liegt, oder ausserhalb, sprich das, was man gerne auch mal als Geofencing bezeichnet.

Ich frage eher weniger nach Code sondern vielmehr nach einem Ansatz, wie ich an die Geschichte herangehen kann.

Hat vielleicht jemand eine Idee?

Danke im Voraus ;-)

Boris

 
AmicaNoctis
25-05-2010, 00:09 
 
Hallo,

sieh dir mal das hier an: Point in polygon - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Point_in_polygon#Ray_casting_algorithm)

Gruß,

Amica

 
Quetschi
25-05-2010, 09:36 
 
Das hier könnte auch interessant sein:

MySQL :: MySQL 5.1 Referenzhandbuch :: 18 Raumbezogene Erweiterungen in MySQL (http://dev.mysql.com/doc/refman/5.1/de/spatial-extensions.html)

 
Ghostrider28
25-05-2010, 14:16 
 
Vielen Dank für die Antworten.
Habe mich da gestern abend nochmal drangesetzt und festgestellt, die banalsten Lösungen sind manchmal die, die zum Ziel führen, statt sich stundenlang mit komplexen Funktionen zu befassen.

Man nehme sich ein Blatt Papier, zeichne sich ein Rechteck auf, definiere die Ecke oben links mit Koordinaten und die unten rechts, und schaue sich einfach die Koordinaten an, wie sie aussehen, wenn sie sich entweder im oder ausserhalb des Rechteckes befinden.

Der Rest waren dann 18 Zeilen VB :beer:

 
AmicaNoctis
25-05-2010, 14:25 
 
Achso, dass deine Fläche immer rechteckig ist, hast du aber nicht dazugesagt ;)

 
Quetschi
25-05-2010, 14:27 
 
Ist eh immer nur die Position innerhalb eines Rechtecks gefragt, oder kann aus auch um Polygone gehen die andere Formen als ein Rechteck darstellen?

Beim Rechteck versagt die Methode übrigens auch, wenn sich das Rechteck über eine größere Fläche erstreckt - das nennt sich dann Abweitung ? Wikipedia (http://de.wikipedia.org/wiki/Abweitung)

Wenn sich die Rechtecke über kleinere Flächen erstrecken (wenige Km) dann ist das zu vernachlässigen - in Deutschland beträgt die Abweitung von der nördlichsten bis zur südlichsten Koordinate glaub ich um die 500m!

 
Ghostrider28
26-05-2010, 15:56 
 
Moin Moin,

hatte völlig vergessen zu erwähnen, dass die Fläche grundsätzlich immer rechteckig zu sein hat ;-)
Das macht die Sache dann doch recht einfach, wäre es ein Polygon gewesen, wäre es (zumindest für mich) doch erheblich schwieriger geworden.

Abweitung kann vernachlässigt werden, da sicvh die Zone (Rechteck) eher auf Stadtgebietsgröße beziehen wird.

 
Quetschi
26-05-2010, 16:20 
 
Das macht die Sache dann doch recht einfach, wäre es ein Polygon gewesen, wäre es (zumindest für mich) doch erheblich schwieriger geworden.Eine Google-Suche nach "Punkt in Polygon" bringt genügend Ergebnisse, die z.T. auch Codebeispiele enthalten - wenn auch aus anderen Sprachen, aber die paar Zeilen nach PHP umzuschreiben ist kein großes Unterfangen. ;)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:11 Uhr.