GEO:YUI 3ギャラリーで
ニコラスC. Zakasによって16:46に2011年5月6日|での開発 、 YUI 3ギャラリー |はコメント無し位置情報は、ブラウザに表示される、よりエキサイティングなHTML5関連技術の一つであり、 ジオギャラリーモジュールでは、位置情報にアクセスすることができます。 W3CジオロケーションAPIが JavaScriptからユーザーの場所にアクセスするためのシンプルなインターフェイスを提供します。 次のコードは、対応のブラウザでのユーザーの現在の場所にアクセスします。
navigator.geolocation.getCurrentPosition(function(result) { //success handler }, function (result){ //failure handler }) このコードが実行されると、ブラウザが現在の場所を明らかにするためにユーザーのアクセス許可を求めるメッセージがポップアップ表示されます。 Firefoxで表示されるダイアログは次のようになります。
![Firefoxで位置情報]ダイアログ](http://www.yuiblog.com/blog/wp-content/uploads/2011/05/geo.png)
ユーザーが権限を拒否し、または現在位置を取得しようとしているときにエラーが発生した場合は、エラーハンドラが呼び出されます。 そうでなければ、成功ハンドラが現在の場所に関する情報が呼び出されます。 その情報は、緯度と経度の座標(他の情報は、実装に応じて、同様に利用できるかもしれません)の形式で提供されます。
W3CジオロケーションAPIは、それはかなりユビキタス作る以上、Firefox 3.5 +、Safariの5 +、クロム、およびOpera 10.6と同様にAndroid上でモバイルSafariとWebkitの上のInternet Explorer 9でサポートされています。
ジオ·モジュールは、それが利用可能なときにジオロケーションAPIを使用し、YQLを経由してIPベースのルックアップにフォールバックpidgets.geoipないときは開いているテーブル使用可能、またはエラーがある場合。 あなたが特定のIPアドレスの位置情報を検索するか、またはIPアドレスを省略することができ、それがリクエストを行うIPアドレスの位置情報を返すので、この表は非常に便利です。 後者の部分は、あなたが代わりに2つの位置情報を(他のソリューションでは、そのIPアドレスの位置情報を取得するためにIPアドレスを取得するいずれかを使用して、1つ)を取得する1つの要求だけを行う必要があることを保証します。
典型的なYUIのファッションでは、ジオ·モジュールは、ジオロケーション情報にアクセスするための合理化されたインタフェースを提供します。 代わりに2つのコールバック関数、失敗の成功と1対1を提供するのでは、一つに渡します。 結果オブジェクトには、 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少なくとも2つのプロパティで満たされている: latitudeとlongitude (ネイティブAPIが使用されている場合は、使用可能なすべてのプロパティがこのオブジェクトにコピーされます)。 もありsourceはYQLによって取得された場合、情報は、ネイティブAPI、または"pidgets.geoip"から取得された場合のどちらかが"ネイティブ"は、応答オブジェクトのプロパティは、。 エラーが発生した場合、ユーザーは位置情報を提供することを拒否した場合、または、その後success falseです。
ジオロケーションAPIがエラーを持っている場合は、ジオモジュールではなく、IPベースのルックアップをしようとします。 しかし、ユーザーが情報を提供するために辞退した場合、IPベースのルックアップが実行されません。
ネイティブAPIは、はるかに正確なIPアドレスの場所以外であることに注意してくださいので、あなたは、ネイティブジオロケーションをサポートしていないブラウザでも同じ品質の結果を得ることはできません。 しかし、ジオ·モジュールは、ユーザーにロケーションベースのエクスペリエンスを提供するために良い最初のステップです。
共有および拡張: del.icio.usでブックマーク | Diggそれ! | reddit!

