Jump to content



διάβασμα GPS συντεταγμένων κινητού


neuromancer

Recommended Posts

Posted

Υπάρχει τρόπος να διαβάσει κανείς μέσω non-native-app τις συντεταγμένες GPS ενός κινητού?

Για παράδειγμα, μέσω JavaScript ή με βοήθεια κάποιας άλλης (native) εφαρμογής που θα επιτρέψει σε μια (non-native) web εφαρμογή να διαβάζει lat και log του GPS?

Posted

Για ποιο λόγο να χρησιμοποιήσεις library για κάτι τέτοιο...? Είναι απλό stream parsing του NMEA-0183... Ανοίγεις την σειριακή πόρτα στην οποία στέλνει το gps και κάνεις parsing όποια πληροφορία θες... κάθε γραμμή είναι cr+lf terminated με comma separator, οπότε είναι εύκολο να γράψεις έναν parser...

Posted
Για ποιο λόγο να χρησιμοποιήσεις library για κάτι τέτοιο...? Είναι απλό stream parsing του NMEA-0183... Ανοίγεις την σειριακή πόρτα στην οποία στέλνει το gps και κάνεις parsing όποια πληροφορία θες... κάθε γραμμή είναι cr+lf terminated με comma separator, οπότε είναι εύκολο να γράψεις έναν parser...

Μπορώ με JavaScript να διαβάσω αυτό το NMEA-0183 (σειριακή πόρτα) που λες? Υποτείθεται ότι αυτός που πρέπει να το διαβάσει είναι μια ιστοσελίδα που έχει κατέβει στον browser του κινητού.

Posted

Αυτό μπορείς να το κάνεις μόνο με κάποια γλώσσα που να υποστηρίζει το άνοιγμα την σειριακής θύρας... Χρειάζεσαι δηλαδή κάποιο proxy το οποίο να ανοίγει την θύρα και να κάνει απλά forward σε ένα ajax socket που θα το ενεργοποιεί η javascript...

Αν δεν θες να το κάνεις μόνος σου, υπάρχουν frameworks που κάνουν ακριβώς αυτό το πράγμα αυτόματα από πίσω χωρίς όμως να έχεις εσύ επαφή και συ απλά γράφεις σε javascript... Ένα τέτοιο framework είναι το sencha και νομίζω και το phonegap (και κατά πάσα πιθανότητα και άλλα πλέον)...

Προσωπικά προτιμώ την πρώτη λύση, δηλαδή δικό μου ajax proxy σε C/java ή δεν ξέρω τι άλλο υποστηρίζει το κινητό και μετά απλά ajax requests από την javascript...

Posted

Το διαπίστωσα ήδη ότι κάπως έτσι γίνεται αλλά αντιλαμβάνομαι ότι επί της ουσίας μιλάμε για cross-site-scripting (η προερχόμενη από τον Χ server σελίδα και Javascript ανοίγει παρτίδες με κάποιο proxy που βρίσκεται σε άλλο domain (BTW, αυτό το proxy που θα τρέχει στο κινητό, που υποτίθεται ότι βρίσκεται? στον localhost?) ).

Έχω την εντύπωση ότι το XMLHttpRequest που αποτελεί τη βάση AJAX κλήσεων δεν επιτρέπει cross-scripting.... Μου διαφεύγει κάτι?

Posted

Σκέψου αυτό

GPS -><- serial port -><- software proxy --><- TCP/Ajax -><-- Web

To software proxy είναι μια εφαρμογή δική σου πχ η οποία απλά κάνει repeat (ή κάνει και το parsing αν θες, το οποίο θα ήταν και καλύτερο βασικά) τα δεδομένα του σειριακού σε ένα ajax tcp connection... Είναι δηλαδή ένα είδους redirector...

Posted

Αυτό που ξέρω είναι ότι το javascript μιας σελίδας προερχόμενης από το domain A δεν μπορεί να μιλήσει με AJAX με σελίδα/service/whatever άλλου server. Η σελίδα που θέλει να ξέρει τη θέση του browser στον οποίο κατέβηκε, προέρχεται από τον server A. Το proxy που τρεχει στο κινητό και δίνει το GPS στίγμα δεν είναι από server A. Είναι απο το κινητό. Άρα cross-scripting!

Εκτός αν υπάρχει τρόπος να παρακαμφθεί αυτό, κάποιο mode του XMLHttpRequest που επιτρέπει να μιλήσεις με άλλο domain από αυτό που προέρχεται η σελίδα που σηκώνει την AJAX υποδομή του browser.

Πρέπει να το δω στην πράξη... thanks

Posted

Ναι δοκίμασέ το, δεν νομίζω ότι δεν μπορείς να ανοίξεις socket στον localhost όσο είσαι συνδεδεμένος σε άλλο server όμως... πχ αν δεν κάνω λάθος, όλοι οι trackers (όπως της google) έτσι δουλεύουν, δηλαδή ναι μεν συνδέεσαι σε έναν server, αλλά πάλι ανοίγεις ajax sockets σε trackers που είναι σε άλλο domain... όπως και επίσης αν κατεβάζεις εικόνες και αρχεία που είναι σε άλλο domain από αυτό που είσαι, πάλι μπορείς να το κάνεις... Δοκίμασε και βλέπεις...

  • 3 months later...
Posted

Οι τελευταίες JavaScript engines / browsers παρέχουν API για το GPS. Δεν χρειάζεται τίποτε extra πλέον. Σε πρόσφατο update ο default browser σε Android 2.3 πήρε επιτέλους χαμπάρι και το script δουλεύει ΟΚ. Προβλέπονται όλα από HTML5. Όλη η αλήθεια εδώ:

https://developers.google.com/maps/

navigator.geolocation.getCurrentPosition

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.