GPS位置情報の取得

GPS 位置情報の取得

HTML5 では navigator.geolocation インターフェースが提供されており、ブラウザ上でユーザーの地理的位置情報をリクエストできます。呼び出すとブラウザに権限確認が表示され、ユーザーが許可した場合にのみ緯度や経度などの情報を読み取れます。

注意点として、最近のブラウザでは通常、ページが HTTPS 環境で動作していること、またはローカル開発環境の localhost でテストしていることが求められます。そうでない場合、コードが正しくても位置情報を取得できないことがあります。

<script type="text/javascript">
if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(onSuccess, onError);
} else {
  alert("您的浏览器不支持使用 HTML5 来获取地理位置服务");
}

// 定位数据获取成功响应
function onSuccess(position) {
  alert('纬度: ' + position.coords.latitude + 'n' +
    '经度: ' + position.coords.longitude + 'n' +
    '海拔: ' + position.coords.altitude + 'n' +
    '水平精度: ' + position.coords.accuracy + 'n' +
    '垂直精度: ' + position.coords.altitudeAccuracy);
}

// 定位数据获取失败响应
function onError(error) {
  switch (error.code) {
    case error.PERMISSION_DENIED:
      alert("您拒绝了获取地理位置的请求");
      break;
    case error.POSITION_UNAVAILABLE:
      alert("位置信息不可用");
      break;
    case error.TIMEOUT:
      alert("请求您的地理位置超时");
      break;
    case error.UNKNOWN_ERROR:
      alert("未知错误");
      break;
  }
}
</script>

フィールド説明

  • position.coords.latitude:緯度。
  • position.coords.longitude:経度。
  • position.coords.altitude:高度。デバイスまたはブラウザが提供できない場合は null になることがあります。
  • position.coords.accuracy:水平精度。単位は通常メートルです。
  • position.coords.altitudeAccuracy:垂直精度。提供できない場合は null になることがあります。

再現可能な確認

上記のコードを HTML ファイルとして保存し、位置情報の権限に対応したブラウザで開きます。ブラウザが位置情報リクエストをブロックする場合は、まずページが HTTPS 経由でアクセスされているかを確認し、ブラウザとシステムの位置情報権限設定も確認してください。

Leave a Reply