ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

HTML5 チュートリアル

HTML5 ホーム
HTML5 概要
HTML5 新しい要素
HTML5 ビデオ
HTML5 ビデオ/DOM
HTML5 オーディオ
HTML5 キャンバス
HTML5 Geolocation
HTML5 Web ストレージ

HTML5 フォーム

HTML5 Input タイプ
HTML5 フォーム要素
HTML5 フォーム属性

HTML5 リファレンス

HTML5 タグ
HTML5 属性
HTML5 イベント
HTML5 キャンバス 2d
HTML 妥当な DTD

HTML5 タグ

<!-->
<a>
<abbr>
<acronym>
<address>
<applet>
<area>
<article>
<aside>
<audio>
<b>
<base>
<basefont>
<bdi>
<bdo>
<big>
<blockquote>
<body>
<br>
<button>
<canvas>
<caption>
<center>
<cite>
<code>
<col>
<colgroup>
<command>
<datalist>
<dd>
<del>
<details>
<dfn>
<dir>
<div>
<dl>
<dt>
<em>
<embed>
<fieldset>
<figcaption>
<figure>
<font>
<footer>
<form>
<frame>
<frameset>
<h1> - <h6>
<head>
<header>
<hgroup>
<hr>
<html>
<i>
<iframe>
<img>
<input>
<ins>
<keygen>
<kbd>
<label>
<legend>
<li>
<link>
<map>
<mark>
<menu>
<meta>
<meter>
<nav>
<noframes>
<noscript>
<object>
<ol>
<optgroup>
<option>
<output>
<p>
<param>
<pre>
<progress>
<q>
<rp>
<rt>
<ruby>
<s>
<samp>
<script>
<section>
<select>
<small>
<source>
<span>
<strike>
<strong>
<style>
<sub>
<summary>
<sup>
<table>
<tbody>
<td>
<textarea>
<tfoot>
<th>
<thead>
<time>
<title>
<tr>
<track>
<tt>
<u>
<ul>
<var>
<video>
<wbr>

HTML5 Geolocation


HTML5 のジオロケーションは、ユーザの位置(場所)を取得するために使用します


ユーザの位置を探します

HTML5 ジオロケーション API は、ユーザの地理的な位置を取得するために使用します。

これはユーザーのプライバシーを侵害するかもしれないので、ユーザ承認がない限り位置を取得できません。


ブラウザ・サポート

Internet Explorer Firefox Opera Google Chrome Safari

Internet Explorer 9、Firefox、Chrome、Safari、Opera はジオロケーションをサポートしています。

注: ジオロケーションは、iPhone のような GPS を備えたデバイスに対してはるかに正確です。


ジオロケーションの利用

ユーザの位置を取得するためには getCurrentPosition() メソッドを使用します。

以下の例は、ユーザの位置の緯度と経度を返す単純なジオロケーションの例です:

<script>
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showPosition);
    }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
  }
function showPosition(position)
  {
  x.innerHTML="Latitude: " + position.coords.latitude +
  "<br />Longitude: " + position.coords.longitude;
  }
</script>

Try it yourself »

例の説明:

  • ジオロケーションがサポートされているか確認する
  • サポートされている場合は、getCurrentPosition() メソッドを実行し、 サポートされていない場合は、ユーザへメッセージを表示する
  • getCurrentPosition() メソッドが成功した場合、パラメータ(showPosition)で 指定された関数に座標のオブジェクトを返します。
  • showPosition() 関数は、緯度と経度を表示します。

上記例は、エラー処理のない、非常に基本的なジオロケーション・スクリプトです。


エラー処理とリジェクション

getCurrentPosition() メソッドの第2パラメータは、エラー処理のために使用されます。 ユーザ位置の取得に失敗した場合に実行する関数を指定します:

function showError(error)
  {
  switch(error.code)
    {
    case error.PERMISSION_DENIED:
      x.innerHTML="User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML="Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML="The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML="An unknown error occurred."
      break;
    }
  }

Try it yourself »

エラーコード:

  • Permission denied - ユーザはジオロケーションを許可しませんでした
  • Position unavailable - 現在の位置を取得することができません
  • Timeout - 操作がタイムアウトしました

マップの結果を表示

マップの結果を表示するには、Googleマップと同様に、緯度と経度を使用することができる マップサービスにアクセスする必要があります:

function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;

var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";

document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />";
}

Try it yourself »

上記例は、Googleマップ(静止画像を使用して)の場所を表示するために、 返された緯度と経度のデータを使用します。

Google マップスクリプト
マーカ、ズームとドラッグオプションを持つインタラクティブな地図を表示するスクリプトを使用方法。


場所固有の情報

このページは、マップ上のユーザの位置を表示する方法を示しています。 しかし、ジオロケーションは位置固有の情報にも非常に便利です。

例:

  • 最新のローカル情報
  • ユーザ近くの興味あるポイントの表示
  • ターン・バイ・ターン ナビゲーション (GPS)

getCurrentPosition() メソッド - データの戻し

getCurrentPosition() メソッドは、成功した場合、オブジェクトを返します。 latitude(緯度)、longitude(経度)及び accuracy(精度)プロパティは常に返されます。 使用できる場合は、以下のその他のプロパティが返されます。

プロパティ 説明
coords.latitude 10進表記の緯度
coords.longitude 10進表記の経度
coords.accuracy 位置の精度
coords.altitude 平均海水面からの標高
coords.altitudeAccuracy 位置の標高精度
coords.heading 方位(北から時計回りの度数)
coords.speed 速度(m/s)
timestamp 応答の日付/時刻


ジオロケーション・オブジェクト - その他の興味深いメソッド

watchPosition() - ユーザの現在位置を返し、ユーザの移動(車の GPS のように)に伴って 更新された位置を返し続けます。

clearWatch() - watchPosition() メソッドを停止します。

以下の例は、watchPosition() メソッドを示しています。これをテストするためには、 (iPhoneのような)正確な GPS デバイスが必要です:

<script>
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
    navigator.geolocation.watchPosition(showPosition);
    }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
  }
function showPosition(position)
  {
  x.innerHTML="Latitude: " + position.coords.latitude +
  "<br />Longitude: " + position.coords.longitude;
  }
</script>

Try it yourself »