neuromancer Δημοσιεύτηκε Μάϊος 9, 2012 #1 Κοινοποίηση Δημοσιεύτηκε Μάϊος 9, 2012 Υπάρχει τρόπος να διαβάσει κανείς μέσω non-native-app τις συντεταγμένες GPS ενός κινητού? Για παράδειγμα, μέσω JavaScript ή με βοήθεια κάποιας άλλης (native) εφαρμογής που θα επιτρέψει σε μια (non-native) web εφαρμογή να διαβάζει lat και log του GPS? Link to comment Share on other sites More sharing options...
neuromancer Μάϊος 9, 2012 Author #2 Κοινοποίηση Μάϊος 9, 2012 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 More sharing options...
Jaco Μάϊος 10, 2012 #3 Κοινοποίηση Μάϊος 10, 2012 Για ποιο λόγο να χρησιμοποιήσεις library για κάτι τέτοιο...? Είναι απλό stream parsing του NMEA-0183... Ανοίγεις την σειριακή πόρτα στην οποία στέλνει το gps και κάνεις parsing όποια πληροφορία θες... κάθε γραμμή είναι cr+lf terminated με comma separator, οπότε είναι εύκολο να γράψεις έναν parser... Link to comment Share on other sites More sharing options...
neuromancer Μάϊος 10, 2012 Author #4 Κοινοποίηση Μάϊος 10, 2012 Για ποιο λόγο να χρησιμοποιήσεις library για κάτι τέτοιο...? Είναι απλό stream parsing του NMEA-0183... Ανοίγεις την σειριακή πόρτα στην οποία στέλνει το gps και κάνεις parsing όποια πληροφορία θες... κάθε γραμμή είναι cr+lf terminated με comma separator, οπότε είναι εύκολο να γράψεις έναν parser...Μπορώ με JavaScript να διαβάσω αυτό το NMEA-0183 (σειριακή πόρτα) που λες? Υποτείθεται ότι αυτός που πρέπει να το διαβάσει είναι μια ιστοσελίδα που έχει κατέβει στον browser του κινητού. Link to comment Share on other sites More sharing options...
Jaco Μάϊος 10, 2012 #5 Κοινοποίηση Μάϊος 10, 2012 Αυτό μπορείς να το κάνεις μόνο με κάποια γλώσσα που να υποστηρίζει το άνοιγμα την σειριακής θύρας... Χρειάζεσαι δηλαδή κάποιο proxy το οποίο να ανοίγει την θύρα και να κάνει απλά forward σε ένα ajax socket που θα το ενεργοποιεί η javascript...Αν δεν θες να το κάνεις μόνος σου, υπάρχουν frameworks που κάνουν ακριβώς αυτό το πράγμα αυτόματα από πίσω χωρίς όμως να έχεις εσύ επαφή και συ απλά γράφεις σε javascript... Ένα τέτοιο framework είναι το sencha και νομίζω και το phonegap (και κατά πάσα πιθανότητα και άλλα πλέον)...Προσωπικά προτιμώ την πρώτη λύση, δηλαδή δικό μου ajax proxy σε C/java ή δεν ξέρω τι άλλο υποστηρίζει το κινητό και μετά απλά ajax requests από την javascript... Link to comment Share on other sites More sharing options...
neuromancer Μάϊος 10, 2012 Author #6 Κοινοποίηση Μάϊος 10, 2012 Το διαπίστωσα ήδη ότι κάπως έτσι γίνεται αλλά αντιλαμβάνομαι ότι επί της ουσίας μιλάμε για cross-site-scripting (η προερχόμενη από τον Χ server σελίδα και Javascript ανοίγει παρτίδες με κάποιο proxy που βρίσκεται σε άλλο domain (BTW, αυτό το proxy που θα τρέχει στο κινητό, που υποτίθεται ότι βρίσκεται? στον localhost?) ). Έχω την εντύπωση ότι το XMLHttpRequest που αποτελεί τη βάση AJAX κλήσεων δεν επιτρέπει cross-scripting.... Μου διαφεύγει κάτι? Link to comment Share on other sites More sharing options...
Jaco Μάϊος 10, 2012 #7 Κοινοποίηση Μάϊος 10, 2012 Σκέψου αυτόGPS -><- serial port -><- software proxy --><- TCP/Ajax -><-- WebTo software proxy είναι μια εφαρμογή δική σου πχ η οποία απλά κάνει repeat (ή κάνει και το parsing αν θες, το οποίο θα ήταν και καλύτερο βασικά) τα δεδομένα του σειριακού σε ένα ajax tcp connection... Είναι δηλαδή ένα είδους redirector... Link to comment Share on other sites More sharing options...
neuromancer Μάϊος 10, 2012 Author #8 Κοινοποίηση Μάϊος 10, 2012 Αυτό που ξέρω είναι ότι το 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 More sharing options...
Jaco Μάϊος 10, 2012 #9 Κοινοποίηση Μάϊος 10, 2012 Ναι δοκίμασέ το, δεν νομίζω ότι δεν μπορείς να ανοίξεις socket στον localhost όσο είσαι συνδεδεμένος σε άλλο server όμως... πχ αν δεν κάνω λάθος, όλοι οι trackers (όπως της google) έτσι δουλεύουν, δηλαδή ναι μεν συνδέεσαι σε έναν server, αλλά πάλι ανοίγεις ajax sockets σε trackers που είναι σε άλλο domain... όπως και επίσης αν κατεβάζεις εικόνες και αρχεία που είναι σε άλλο domain από αυτό που είσαι, πάλι μπορείς να το κάνεις... Δοκίμασε και βλέπεις... Link to comment Share on other sites More sharing options...
neuromancer Αύγουστος 12, 2012 Author #10 Κοινοποίηση Αύγουστος 12, 2012 Οι τελευταίες 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.