Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Locatable (für die Profis hier) - Lokalisierung im Hintergrund
#1

Hallo Community.

Ich bin schon seit längerem auf der Suche nach einem Programm, dass meinen Freunden oder auch mir die aktuelle Location meines IPHONES mitteilt.

Das wäre z.B. sinnvoll, wenn das iphone geklaut wurde. Dann kann man sehen, wo es sich jetzt befindet. Weitere Anwendungsbeispiele kann sich jeder selbst ausdenken.

Im Appstore gibt es allerdings nur Porgramme, die die aktuelle Position als E-Mail verschicken können. Dies aber auch nicht automatisch. D.h. ich muss das Porgramm starten und die E-Mail versenden.

Das Programm Locatable bzw. Relocatable bietet die Möglichkeit die Location im Hintergrund zu ermitteln und sogar auf einen Server / Webseite auszugeben.

Allerdings blicke ich nicht ganz durch die Anleitung auf der Seite durch und hoffe, dass hier pfiffige Leute sind, die genügend Tech-KnowHow haben um mir dabei zu helfen.

Ich hätte gerne, dass auf meinem iPHONE Locatable bzw. Relocatable (der Hintergrund-Prozess) läuft und beispielsweise alle 10 Minuten meine Location bestimmt und auf (m)eine Webseite hochlädt, damit ich und andere gucken können, wo ich mich befinden. Optimal wäre es, wenn ein Google Maps Link ausgegeben wird, an dem meine Location angehängt wird (etwa: http://maps.google.com/maps?q=51.444560,+7.005904).

Folgende Anleitung gibt es auf der Herstellerwebseite, die ich aber leider nicht nachvollziehen bzw. nachbauen kann:

Code:
Several of you have asked if there's a way to do a scheduled publish of your location to a destination server of your choice based on the data that Relocatable collects. The answer is a definite yes, and Mike Carambat emailed me the following solution:

    Requirements
    1. Jailbroken iPhone
    2. Install "Locatable" from Cydia
    3. Make sure you have "SQLLite" from Cydia
    4. Make sure you have "cURL" from Cydia
    5. A server based facility to store the data captured from your phone

    Concept
    Basically, "Locatable" is a springboard app which uses Core Location to capture GPS coordinates. The cool thing about it, is that it stores them in a SQLite database which is then easily accessible. You query this database via the sqlite3 command and pipe its results to cURL which forwards the data to your server.

    Instructions
    1. Create a shell script called "pushgps" on your iphone which you will invoke on a periodic basis. Put it in the /usr/bin/ on your iphone.

    This shell script looks like this:

    ---------- start ----------

    #! /bin/sh

    curl -d POS="`sqlite3 /var/mobile/Library/WebKit/Databases/http_lbs.tralfamadore.com_0/*.db 'select latitude, longitude from location where tag = "Current"'`" http://www.yourserverhere.com/path_to_gps_recorder

    ----------- end -----------

    (replace the "yourserverhere" and "path_to_gps_recorder" with YOUR server and recording software. (see below for ideas on doing this)

    Don't forget to: chmod 755 pushgps


    2. Next, create a plist file

    /System/Library/LaunchDaemons/com.whatever.pushgps.plist

    which contains:

    ---------- start ----------


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Label</key>
    <string>com.whatever.pushgps</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/bin/pushgps</string>
    </array>
    <key>StartInterval</key>
    <integer>600</integer>
    </dict>
    </plist>

    ----------- end -----------

    (replace the "whatever"s with your name, company name, domain, or whatever. This is just an identifier. the 600 refers to every 10 minutes. change if needed. Locatable's interval defaults to 10 minutes, but can be changed as well in its plist file (same directory))

    3. Create software to record the GPS data

    You'll need to post the coordinate data to *somewhere* online. No, I'm not gonna do it for you. Get your own server ;) Maybe the folks at www.instamapper.com would be open at some point to do this for us.

    I wrote a simple perl script called gps.pl which runs on my server which simply records and time/date stamps the data. Something like this:

    ---------- start ----------


    #!/usr/bin/perl
    # GPS Recorder

    $maxhistory=1000; # Total number of locations to store

    if ($ENV{"REQUEST_METHOD"} eq 'GET') {$buffer=$ENV{"QUERY_STRING"};}
    else {read (STDIN, $buffer, $ENV{"CONTENT_LENGTH"});}

    @vars=split(/&/,$buffer);
    foreach $var (@vars) {
    ($name, $value)=split (/=/,$var);
    $name =~ tr/+/ /;
    $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    chomp($name);
    chomp($value);
    $stuff{$name}=$value;
    }
    if (exists ($stuff{'POS'})) {
    ($lat,$long)=split(/\|/,$stuff{'POS'});
    chomp($lat);
    chomp($long);

    &GetDateTime;

    open (STUFF, "gpslocation.txt");
    @lines=;
    close (STUFF);

    $numlines=@lines;
    $sp=0;

    if (($numlines-$maxhistory)>-1) {
    $sp=$numlines-$maxhistory;
    }
    open (STUFF, ">gpslocation.txt");

    for ($i=$sp; $i<$numlines; $i++) { chomp($lines[$i]);
    print STUFF "$lines[$i]\n";

    }
    print STUFF "$date\t$time\t$lat\t$long\n";
    close (STUFF);

    print "Content-type: text/plain\n\n";
    print "Latitude: $lat\n";
    print "Longitude: $long\n";
    exit(0);
    }
    print "Content-type: text/plain\n\n";
    print "ERROR";
    exit(0);

    sub GetDateTime {
    ($second, $minute, $hour, $dayofmonth, $month, $year, $weekday, $dayofyear, $isdst) = localtime(time);
    $year=($year+1900);
    $month++;
    $date=sprintf("%02D",$month)."/".sprintf("%02D",$dayofmonth)."/".sprintf("%04D",$year);
    $time=sprintf("%02D",$hour).":".sprintf("%02D",$minute).":".sprintf("%02D",$second);
    }


    ----------- end -----------

Thanks Mike!

Update (1 Sep 08): While this method still works (and it provides a good example of a server-side script to handle the data), as of version 0.3 Relocatable allows you to specify a command to execute each time a location fix is acquired, so there's no need to use the pushgps part. See this post for details.
Quelle: http://www.tralfamadore.com

Es wäre super, wenn mir jemand helfen könnte und erklären würde, wie ich mein Anliegen, wie oben beschriebe, umsetzen kann.

Vielen Dank schonmal.
Zitieren
#2

Ok und was verstehst du daran nicht? Smiley

Ist doch im Prinzip alles erklärt.

1. Du lädst das Script mit dem Inhalt auf dein iPhone in den Ordner /usr/bin
2. Als nächstes erstellest du ein File mit der Endlung plist im Ordner /System/Library/LaunchDaemons/ mit dem Inhalt wie beschrieben.
3. Als nächstes wäre es von Vorteil, du hättest deinen eigenen Root-Server ( also Linux Server Online ), der die Daten dann ausgibt wo du sie dir dann zb. im Browser anschauen kannst. Das in der Anleitung gepostete Skript liest dir aber nur Uhrzeit Datum usw. aus. Damit dies auf einem Webserver dargestellt wird, wo du es dann im Browser anschauen kannst sind noch mehr Schritte notwendig.
4. That's it.

Für nicht Informatiker vermutlich nicht ganz ohne zu bewältigen...
Zitieren
#3

@IcedEarth

offtopic
gute band
Zitieren
#4

(18.09.2008, 12:31)IcedEarth schrieb:  Ok und was verstehst du daran nicht? Smiley

Ist doch im Prinzip alles erklärt.

1. Du lädst das Script mit dem Inhalt auf dein iPhone in den Ordner /usr/bin
2. Als nächstes erstellest du ein File mit der Endlung plist im Ordner /System/Library/LaunchDaemons/ mit dem Inhalt wie beschrieben.
3. Als nächstes wäre es von Vorteil, du hättest deinen eigenen Root-Server ( also Linux Server Online ), der die Daten dann ausgibt wo du sie dir dann zb. im Browser anschauen kannst. Das in der Anleitung gepostete Skript liest dir aber nur Uhrzeit Datum usw. aus. Damit dies auf einem Webserver dargestellt wird, wo du es dann im Browser anschauen kannst sind noch mehr Schritte notwendig.
4. That's it.

Für nicht Informatiker vermutlich nicht ganz ohne zu bewältigen...


1. und 2. habe ich gemacht. Allerdings kann man leider nicht überprüfen ob es funktioniert :/

3. Nen Root-Server habe ich nicht. Allerdings nen Webserver der Perl-Skripte ausführen kann. Das sollte doch reichen, oder? Das mit dem Im Browser anschauen sollte kein Problem sein, da das Skript ja die Location in eine .txt Datei schreibt, die man ja auslesen kann.

Allerdings funktioniert es bei mir nicht....keine Ahnung warum!? Sad

Zitat:@IcedEarth

offtopic
gute band

Qualifizierter Beitrag....den hätte man sich auch sparen können. Da möchte wohl jemand ganz schenll Beiträge zusammenbekommen.... :thumbdown:
Zitieren
#5

zu 1.
Du hast den Server in den Link wohl eingetragen. Was hast du dann als "Recording Software" eingetragen?
Auch nicht die Rechte vergessen!

zu 2.
Das zweite Skript ruft dann das erste auf und "pusht" es alle 600 Zeiteinheiten (alle 10 Minuten) auf den Server. Somit sollte es sich jetzt auf dem Server befinden.

Das 3. ist jetzt erstmal egal. Wenn du ersten zwei Schritte nicht klappen, brauchen wir den 3. gar nicht machen.
Zitieren
#6

Als Recording Software habe ich den Link zu dem Pers Skript eingetragen, dass der Auto der Tools vorgeschlagen hat. Dieses liegt auf meinem Webserver.
Zitieren
#7

Ok das passt.
Den iPhone sollte eigentlich (sofern) es Internet Verbindung haben die Datei hochladen.

Das Problem (wie ich vermute) liegt an Zeile des ersten Skripts:

"Current"'`" http://www.yourserverhere.com/path_to_gps_recorder

yourserverhere.com = ???

Du musst dich irgendwie auf deinem Server authentifizieren, wie sonst soll das iPhone Berechtigung erhalten, das Ding hochzuladen. Ich denke, da solltest du mal schauen oder posten was du da eingetragen hast. (Mach es einfach unkenntlich, nicht jeder braucht dein Domain-Namen oder Passwort zu wissen... ) Biggrin
Zitieren
#8

Mhhhh.....da habe ich bisher nichts besonderes reingeschrieben. Da steht halte einfach mein Serve rmit Pfad drin:

"Current"'`" http://www.meineurl.com/tracking/gps.pl
Zitieren
#9

@Moodler

Ich bin 35 und kein kiddi was Beiträge sammelt ... zumal da auch steht offtopic ... das ist regelgerechtes posten!
Zitieren
#10

Dieses curl Skript aus Punkt 1 versucht Verbindung mit deinem Server aufzunehmen. Ich versteh jetzt zwar nicht ganz wie das gehen soll, aber egal.

Fakt ist: Das Skript kann keine Verbindung zu einem Server aufnehmen, wo man sich zuerst authentifiezieren muss. Sprich Name und Passwort eingeben.
Wenn du irgendwas auf einen Webserver hochlädst, tust du dies vermutlich über FTP. Ich kann hier kein Protokoll oder Anmeldungsversuch erkennen. Kann man da etwas in Locatable einstellen? Ich kenn das Programm nicht.
Zitieren
#11

Also wen das so funktioniert wie oben beschrieben wäre das einfach mal geil....
Zitieren
#12

(19.09.2008, 11:10)*R@zor* schrieb:  Also wen das so funktioniert wie oben beschrieben wäre das einfach mal geil....

Also es soll so funktionieren...aber leider bekomme ich es nicht hin.

@ IcedEarth: ich bin mir nicht sicher, ob man sich überhaupt authentifizieren muss. Vorgesehen ist es vom Programm nicht. Und eigentlich (laienhaft gesagt) füllt der Iphone Hintergrundprozess ja nur nen Formular auf dem Webserver aus (das Perl Skript) welches wiederrum die Daten in eine Textdatei schreibt.

Ich wäre es dankbar, wenn jemand auch Nutzen in dem Programm sieht und es mal ausprobiert und hoffentlich hinbekommt...
Zitieren
#13

(19.09.2008, 14:48)Moodler schrieb:  @ IcedEarth: ich bin mir nicht sicher, ob man sich überhaupt authentifizieren muss. Vorgesehen ist es vom Programm nicht. Und eigentlich (laienhaft gesagt) füllt der Iphone Hintergrundprozess ja nur nen Formular auf dem Webserver aus (das Perl Skript) welches wiederrum die Daten in eine Textdatei schreibt.

Ich wäre es dankbar, wenn jemand auch Nutzen in dem Programm sieht und es mal ausprobiert und hoffentlich hinbekommt...

Jo nur für das Schreiben brauchst du doch auch noch rechte oder?
Zitieren
#14

Die vergibst du auf dem Server....
Zitieren
#15

Die Rechte zum schreiben per chmod werden auf dem Server vergeben, soweit richtig.

Aber vorher, damit das iPhone überhaupt die Datei auf den Server schreiben darf, muss man sich doch irgendwie authentifizieren.

Vielleicht kann man das im Skript so angeben: http://MeinServer.de:Benutzername:Passwort/PfadZumSkript
Zitieren
#16

So wie ich das bisher verstanden habe füllt das Script nur ein Formular aus. Das Perl-Script auf dem Server schreibt die entsprechende Datei dann. Wenn das richtig ist, benötigst du keine Authentifizierung.
Zitieren
#17

(19.09.2008, 20:42)3opaH schrieb:  So wie ich das bisher verstanden habe füllt das Script nur ein Formular aus. Das Perl-Script auf dem Server schreibt die entsprechende Datei dann. Wenn das richtig ist, benötigst du keine Authentifizierung.

Jau...so sehe ich das auch.
Zitieren
#18

Schau mal das Programm Private I aus dem Store an. Wäre das nicht, was du suchst?
Zitieren
#19

(19.09.2008, 21:02)stas2000 schrieb:  Schau mal das Programm Private I aus dem Store an. Wäre das nicht, was du suchst?

Absolut nicht. Man muss das Programm öffnen und außerdem muss man der LOkalisierung zustimmen. Relocatable läuft im Hintergrund (ohne eine Programm zu öffnen) und man muss auch die Lokalisierung nicht bestätigen.
Zitieren
#20

@ Moodler
Ich kann es schon verstehen....
Aber verändert man das Icon (PhotoShop) und den Schriftzug dazu so kann sich der "ehrliche" Finder gerade dazu bewgt werden mit dem Finger auf das Icon zu tippen. Dabei denke ich an solche Umwandlung wie
- wichtige Daten / Bankonline
- Porno-Sammlung
oder ähnliches
Zitieren




Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste