Sa Yui 3 Gallery: Geo
Mayo 6, 2011 sa 16:46 sa pamamagitan ng Nicholas C. Zakas | Sa Development , Yui 3 Gallery | Mga Puna OffNa Geolocation ay isa ng mas kapanapanabik HTML5-kaugnay na mga teknolohiya na lumitaw sa mga browser, at ang Gallery ng Geo module ay nagbibigay sa iyo ng access sa impormasyon sa lokasyon. Ang W3C Geolocation API ay nagbibigay ng isang simpleng interface upang ma-access ang lokasyon ng gumagamit mula sa JavaScript. Ang sumusunod na code-access ang kasalukuyang lokasyon ng gumagamit sa isang sumusuporta sa browser:
navigator.geolocation.getCurrentPosition(function(result) { //success handler }, function (result){ //failure handler }) Kapag ang code na ito ay pinaandar, browser ang nagpa-pop up ng isang mensahe na humihingi ng pahintulot ng gumagamit upang ipakita ang kanilang mga kasalukuyang lokasyon. Ang dialog na ipinapakita sa Firefox ay ganito ang hitsura:

Kung ang gumagamit denies pahintulot, o ng isang error ay nangyari habang sinusubukang upang makakuha ng kasalukuyang posisyon, ang humahawak ng pagkabigo ay tinatawag na. Kung hindi man, ang humahawak ng tagumpay ay tinatawag na may impormasyon tungkol sa kasalukuyang lokasyon. Na ang impormasyon ay sa anyo ng mga coordinates ng latitude at longitude (ang iba pang impormasyon ay maaaring hindi magagamit pati na rin, depende sa pagpapatupad).
Ang W3C Geolocation API ay suportado sa Internet Explorer 9 +, Firefox 3.5 +, Safari 5 +, Chrome, at Opera 10.6 pati na rin sa Mobile Safari at WebKit sa Android, na ginagawa ito medyo nasa lahat ng pook.
Ang Geo module ay gumagamit ng Geolocation API kapag ito ay magagamit, at bumaba bumalik sa isang IP-based na lookup sa pamamagitan ng ang YQL pidgets.geoip talahanayan bukas kapag hindi magagamit o kung may isang error. Table na ito ay kapaki-pakinabang iba dahil maaari mong lookup impormasyon ng lokasyon para sa isang tiyak na IP address, o maaari mong alisin ang IP address at ito ay ibalik ang impormasyon ng lokasyon para sa mga IP address na paggawa ng kahilingan. Ang huling bahagi Tinitiyak na kailangan mo upang gumawa ng isang kahilingan lamang upang makakuha ng impormasyon ng lokasyon sa halip na dalawang (iba pang mga solusyon ay gamitin ang isa upang makuha ang IP address at pagkatapos ay upang makuha ang impormasyon ng lokasyon para sa IP address).
Sa karaniwang Yui fashion, ang Geo module ay nagbibigay ng isang streamlined interface para sa pag-access Geolocation impormasyon. Sa halip ng mga nagbibigay ng dalawang mga function ng callback, isa para sa tagumpay at ang isa para sa kabiguan, pumasa lamang sa isa. Ang resulta bagay ay may isang success ari-arian na nagpapahiwatig kung ang tawag sa nagtagumpay:
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); } }); }); Kapag ang isang tawag ng Geolocation makumpleto matagumpay, ang mga ari-arian ng success ay totoo at response.coords ay napuno ng hindi bababa sa dalawang katangian: latitude at longitude (kung ang katutubong API ay ginagamit, at pagkatapos ang lahat ng mga magagamit na mga katangian ay kinopya sa sa bagay na ito). Mayroon ding isang source ari-arian sa ang bagay ng tugon na ay alinman sa "katutubong", kung ang impormasyon ay nakuha mula sa ang katutubong API, o "pidgets.geoip", kung ito ay nakuha sa pamamagitan ng YQL. Kung ang isang error ay nangyayari, o kung ang gumagamit ay pagtanggi upang magbigay ng impormasyon sa lokasyon, pagkatapos ay success ay hindi totoo.
Kung ang Geolocation API ay may isang error, ang module ng Geo ay subukan ang IP-based na lookup sa halip. Kung, gayunpaman, gumagamit ang pagtanggi na magbigay ng impormasyon, ang mga IP-based na paghahanap ay hindi gumanap.
Isaisip na ang mga katutubong API ay mas tumpak na kaysa sa IP lokasyon, kaya hindi mo makuha ang parehong resulta sa kalidad sa mga browser na walang katutubong Geolocation support. Gayunpaman, ang Geo module ay isang magandang unang hakbang sa pagbibigay ng mga lokasyon-based na karanasan sa iyong mga gumagamit.
Ibahagi at pahabain: bookmark sa del.icio.us | Digg ito! | reddit!
Wala Komento pa
Paumanhin, ang form ng komento ay sarado sa oras na ito.

Copyright © 2006-2012 Yahoo! Inc. Lahat ng karapatan ay reserbado. Patakaran sa Privacy - Mga Tuntunin ng Serbisyo
Pinapatakbo ng WordPress sa Yahoo! Web Hosting .
