在YUI 3畫廊:地理
5月6日,2011年由Nicholas C. Zakas在下午04:46,在發展中, YUI 3圖庫 | 評論關閉地理位置是在瀏覽器中出現一個更令人興奮的HTML5相關技術, 地理圖庫模塊,您可以訪問的位置信息。 W3C的地理定位API提供了一個簡單的界面,從JavaScript訪問用戶的位置。 下面的代碼訪問用戶的支持的瀏覽器中的當前位置:
navigator.geolocation.getCurrentPosition(function(result) { //success handler }, function (result){ //failure handler }) 執行此代碼時,瀏覽器彈出一個消息,要求用戶的權限,以顯示其當前位置。 在Firefox中顯示的對話框看起來像這樣:

如果用戶拒絕的權限,或者試圖獲得當前的位置時發生錯誤,故障處理程序被調用。 否則,被稱為成功處理與當前位置的信息。 這一信息來自經度和緯度坐標(其他信息以及可能取決於執行)的形式。
W3C的地理定位API支持在Internet Explorer 9 +,火狐3.5 +,Safari 5的+,鉻,和Opera 10.6以及移動Safari和Android上的Webkit,使得它相當無處不在。
可用時,它的地緣模塊使用的地理定位API,並通過YQL的下降,回到一個基於IP的查找pidgets.geoip打開表時,不可用,或者如果有一個錯誤。 此表是特別有用的,因為你可以為一個特定的IP地址查詢位置信息,或可以省略的IP地址,它將返回的位置信息,提出請求的IP地址。 確保後者的一部分,你需要做只有一個要求得到位置信息(其他解決方案使用一個獲得IP地址,然後得到該IP地址的位置信息),而不是兩個。
在典型的銳時尚,地理模塊提供了一個簡化的界面訪問地理位置信息。 提供兩個回調函數,一個成功和失敗,而不是只通過一個。 結果對象有一個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); } }); }); 當一個地理位置調用成功完成, success屬性為true和response.coords是充滿至少有兩個屬性: latitude和longitude (如果使用原生API,然後所有可用的屬性複製到這個對象)。 還有一個source的響應對象的屬性,要么是“本土”,如果信息檢索從原生API,或“pidgets.geoip”,如果它是由YQL的檢索。 如果出現錯誤,或者如果用戶拒絕提供位置信息,然後success是假的。
地理定位API,如果有錯誤,地理模塊將嘗試查找,而不是基於IP的。 但是,如果用戶拒絕提供信息,不執行基於IP查找。
牢記本機API是IP位置的準確得多,所以你不會不支持本地地理位置在瀏覽器中的相同質量的結果。 然而,地緣模塊為用戶提供基於位置的經驗是一個很好的第一步。
共享和擴展: 書籤del.icio.us Digg它! | reddit!
還沒有評論
很抱歉,評論已被封閉,在這個時候。

