Jump to content



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


neuromancer

Recommended Posts

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

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

Link to comment
Share on other sites

Get GPS position from a browser using javascript

ΑΚΥΡΟ, ο client είναι μόνο για windows. Πάντως δουλεύει όπως φαντάστηκα:

"GPS in browser" uses cross scripting. GpsGate runs a small local web server from which your page can request GPS information. A javascript library is included to make this really simple.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

Σκέψου αυτό

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 3 months later...

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

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

navigator.geolocation.getCurrentPosition

Link to comment
Share on other sites

Archived

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

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.