Στο Yui 3 Gallery: Geo

6 Μαΐου 2011 στις 16:46 από τον Nicholas C. Ζάκα | Σε Ανάπτυξης , Yui 3 Gallery | Δεν Σχόλια

Geolocation είναι ένα από τα πιο συναρπαστικό HTML5 που σχετίζονται με τεχνολογίες για να εμφανιστεί σε προγράμματα περιήγησης, και η Geo ενότητα Gallery σας δίνει πρόσβαση σε πληροφορίες τοποθεσίας. Το W3C Geolocation API παρέχει ένα απλό interface για να αποκτήσει πρόσβαση στην τοποθεσία του χρήστη από το JavaScript. Ο ακόλουθος κώδικας προσβάσεις τρέχουσα θέση του χρήστη σε ένα βοηθητικό πρόγραμμα περιήγησης:

navigator.geolocation.getCurrentPosition(function(result) { //success handler }, function (result){ //failure handler }) 

Όταν εκτελείται αυτός ο κώδικας, το πρόγραμμα περιήγησης αναδύεται ένα μήνυμα ζητώντας την άδεια του χρήστη για να αποκαλύψει την τρέχουσα θέση τους. Το παράθυρο διαλόγου που εμφανίζεται στον Firefox μοιάζει με αυτό:

Διαλόγου Geolocation στον Firefox

Εάν ο χρήστης αρνείται άδεια, ή κάποιο σφάλμα ενώ προσπαθεί να πάρει τη σημερινή κατάσταση, ο Κ αποτυχία λέγεται. Σε αντίθετη περίπτωση, ο χειριστής επιτυχία καλείται με πληροφορίες σχετικά με την τρέχουσα θέση. Η πληροφορία έρχεται με τη μορφή των συντεταγμένων γεωγραφικού πλάτους και μήκους (άλλες πληροφορίες που μπορεί να είναι διαθέσιμες, καθώς και, ανάλογα με την εφαρμογή).

Το W3C Geolocation API υποστηρίζεται στον Internet Explorer 9 +, Firefox 3.5 +, Safari 5 +, Chrome, Opera και 10,6 καθώς και στην Mobile Safari και Webkit στο Android, γεγονός που καθιστά αρκετά πανταχού παρούσα.

Η μονάδα χρησιμοποιεί την Geo API Geolocation, όταν είναι διαθέσιμα, και πέφτει πίσω σε ένα IP-based αναζήτηση μέσω του YQL pidgets.geoip ανοιχτό τραπέζι, όταν δεν είναι διαθέσιμη ή αν υπάρχει κάποιο σφάλμα. Αυτός ο πίνακας είναι εξαιρετικά χρήσιμη, επειδή μπορείτε να αναζήτηση πληροφοριών εντοπισμού θέσης για μια συγκεκριμένη διεύθυνση IP, ή μπορείτε να παραλείψετε τη διεύθυνση IP και θα σας επιστρέψει τις πληροφορίες εντοπισμού θέσης για τη διεύθυνση IP που υποβάλλει την αίτηση. Το τελευταίο μέρος εξασφαλίζει ότι θα πρέπει να κάνετε μόνο μία αίτηση για να πάρετε πληροφορίες για τη θέση, αντί των δύο (άλλες λύσεις χρησιμοποιήσετε ένα για να πάρει τη διεύθυνση IP και στη συνέχεια, ένα για να πάρετε τις πληροφορίες εντοπισμού θέσης για την εν λόγω διεύθυνση IP).

Όπως συνηθίζεται με τους Yui, η ενότητα Geo προσφέρει ένα βελτιωμένο interface για την πρόσβαση σε πληροφορίες γεωγραφικών τοποθεσιών. Αντί να παρέχει δύο λειτουργίες επανάκλησης, ένα για την επιτυχία και ένα για αποτυχία, απλά περνούν σε ένα. Το αντικείμενο αποτέλεσμα έχει μια success ιδιότητα που δείχνει αν η κλήση πέτυχε:

 YUI({ gallery: 'gallery-2011.04.27-17-14' }).use('gallery-geo', function(Y) { Y.Geo.getCurrentLocation(function(response){ //check to see if it was successful if (response.success){ console.log(response.coords.latitude); console.log(response.coords.longitude); } }); }); 

Όταν μια κλήση geolocation ολοκληρωθεί με επιτυχία, η success ιδιοκτησία είναι αλήθεια και response.coords είναι γεμάτο με τουλάχιστον δύο ιδιότητες: latitude και longitude (αν το native API χρησιμοποιείται, τότε όλα τα διαθέσιμα ακίνητα αντιγραφεί σε αυτό το αντικείμενο). Υπάρχει επίσης μια source ακίνητο στο αντικείμενο απάντηση ότι είναι είτε "αυτόχθονες", αν οι πληροφορίες που ανακτήθηκε από το native API, ή "pidgets.geoip», αν είχε ανακτηθεί από την YQL. Αν συμβεί κάποιο λάθος, ή αν ο χρήστης δεν μπορεί να παράσχει πληροφορίες για τη θέση, τότε success είναι ψευδής.

Εάν το API Geolocation έχει ένα λάθος, η ενότητα Geo θα προσπαθήσει IP-based αναζήτηση αντ 'αυτού. Αν, ωστόσο, ο χρήστης δεν μπορεί να παράσχει πληροφορίες, το IP-based αναζήτηση δεν εκτελείται.

Λάβετε υπόψη ότι η native API είναι πολύ πιο ακριβή από ό, τι IP τοποθεσία, έτσι δεν θα πάρετε τα ίδια αποτελέσματα ποιότητας σε προγράμματα περιήγησης χωρίς εγγενή υποστήριξη geolocation. Ωστόσο, η μονάδα Geo είναι ένα καλό πρώτο βήμα για την παροχή location-based εμπειρίες στους χρήστες σας.

Μοιραστείτε και να επεκτείνουν: Σελιδοδείκτης με Del.icio.us | Digg it! | reddit!

Δεν υπάρχουν ακόμη σχόλια »

RSS feed για σχόλια σχετικά με τη θέση αυτή. TrackBack URI

Αφήστε ένα σχόλιο

Σημείωση: Τα σχόλια είναι moderated για την πρώτη-χρονόμετρα. Spam διαγράφονται.

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Φιλοξενείται από το Yahoo!

Copyright © 2006-2011 Yahoo! Με επιφύλαξη παντός δικαιώματος. Πολιτική απορρήτου - Όροι Υπηρεσίας

Powered by WordPress για το Yahoo! Web Hosting .