調べて分かる道具箱

いまいる場所の緯度経度

測り方
測った結果

上の「いまいる場所を調べる」を押すと、ここに出ます。

「細かく測る」は電池をよけいに使い、答えが返るのも遅くなります。 仕様にもそう書かれている注意です。細かく測っても、端末が細かく測れないときは変わりません。

押すと、ブラウザが「位置情報の使用を許可しますか」と聞いてきます。 聞いてくるのはブラウザで、ページとは別の仕組みです。断っても構いません ── 断ったときに何が起きるかも、画面に出るようにしてあります。

測った場所はこの画面の中だけにあります。どこにも送っていませんし、 保存もしていません。数字だけを見せています(地図を出すと、 地図の絵を持っている相手に「このあたりを見ている」と伝わるからです)。 ページを閉じたり読み込み直したりすると消えます。

よくある質問

緯度と経度だけ分かればいいのに、精度も見ないといけないのはなぜですか?

緯度と経度は、それだけでは「どれくらい確かな値なのか」が分からないからです。精度(accuracy)は、その座標を中心とした半径何メートルの円のどこかにいる、という意味の数で、単位はメートルです。精度が1000メートルなら町がまるごと入る広さなので、小数第5位まで並んでいても下の桁は測れていません。精度を出さずに座標だけを見せると、実際より正確に分かったように読めてしまいます。

精度の数字は、どういう意味の数ですか?

W3C の仕様は、精度を「95パーセントの確からしさをメートルで表した値」と決めています。半径がその長さの円の中に本当の場所が入る見込みが95パーセント、という意味です。裏を返すと20回に1回くらいはその円の外にいます。また、円の真ん中にいるという意味でもありません。円のどこかにいる、が正しい読み方です。

どうやって場所を測っているのですか?

測り方は何通りもあります。W3C の仕様は、位置の出どころの例として、衛星測位(GPS)、IPアドレス、RFID、WiFi や Bluetooth の機器の番号、携帯電話の基地局の番号、そして利用者が自分で入力した値を挙げています。そのうえで「このAPIは位置の出どころには関与せず、本当の場所を返すことも保証しない」と書いています。つまり、どの方法で測ったのかはブラウザから返ってきません。方法によって精度は大きく違うので、返ってきた精度の数から読むしかありません。

なぜ地図を出さないのですか?

地図を出すには、地図の絵(タイル画像)を持っている相手にその場所を伝えなければならないからです。地図を表示した時点で、相手のサーバーには「この座標のあたりを見に来た人がいる」と伝わります。地図サービスへのリンクを作るだけでも、押した瞬間に同じことが起きます。このページは場所をどこにも送らないことを大事にしているので、地図もリンクも省いています。座標が分かれば、自分の選んだ地図アプリに手で入れることはできます。

高さが「教えてもらえませんでした」になるのはなぜですか?

高さ(altitude)は、仕様の上で「端末が出せないときは空(null)になる」と決められている項目だからです。出せない端末やときがあります。ここで大事なのは、空だったときに0メートルと書かないことです。0メートルは「海面の高さにいる」という意味になってしまい、「分からない」とはまったく違います。なお高さが出たときも、それは楕円体という地球をならした形の面からの高さで、地図に書いてある標高とは基準が違います。

「細かく測る」にすると何が変わりますか?

細かく測ってほしい、という希望をブラウザに伝えます。仕様には、この指定をすると答えが返るのが遅くなったり電池をよけいに使ったりすることがある、と注意が書かれています。逆に指定しなければ、ブラウザは電池を多く使う測り方を避けてよいことになっています。また、利用者がその機能を切っていたり、端末がそれ以上細かく測れなかったりすると、指定しても結果は変わりません。

ボタンを押すと、いまいる場所の緯度・経度を小数と度分秒で出します。 いちばん大事なのは一緒に出る精度で、その数だと小数第何位まで意味があるかまで計算します。 場所はどこにも送りませんし、地図も出しません。

緯度経度の答えの半分は、精度が持っています

緯度と経度は、それだけでは「どれくらい確かな値か」が分かりません。 いっしょに返ってくる精度(accuracy)が、その答えを持っています。 単位はメートルで、「その座標を中心とした半径この長さの円のどこかにいる」という意味です。

しかも仕様は、この数を95パーセントの確からしさと決めています。20回に1回くらいは、その円からも外れます。そして円の真ん中にいるという意味ではありません。 ここを飛ばして座標だけを見せると、実際より正確に分かったように読めてしまいます。

たとえば精度が1000メートルなら、町がまるごと入る広さです。 画面に 35.68943 と5桁並んでいても、意味があるのは小数第2位くらいまでで、 残りの桁は測れていません。 このページが桁を切って見せているのは、そのためです。

どうやって測ったかは、ブラウザも教えてくれません

場所の求め方は何通りもあります。仕様は、位置の出どころの例として衛星測位(GPS)・IPアドレス・RFID・WiFi や Bluetooth の機器の番号・ 携帯電話の基地局の番号、そして利用者が自分で入力した値まで挙げています。

そのうえで、こう書いてあります。「このAPIは、位置の出どころには関与しない。本当の場所を返すことも保証しない」。つまりどの方法で測ったのかは、返ってきません。 方法によって精度は大きく変わるので、返ってきた精度の数から読むしかないのです。

実際、位置といっしょに返ってくる項目は次の7つですべてです。 測り方を教えてくれる項目は1つもありません。

項目何を表すか空になる
緯度latitude赤道から南北にどれだけか。北が正、南が負。単位は度。—
経度longitudeイギリスのグリニッジから東西にどれだけか。東が正、西が負。単位は度。—
精度accuracy緯度・経度がどれくらい確かか。95パーセントの確からしさの半径をメートルで。—
高さaltitudeWGS84 という楕円体の面からの高さ。地図に載っている標高とは基準が違う。◯
高さの精度altitudeAccuracy高さがどれくらい確かか。こちらも95パーセントの確からしさ。◯
向きheadingどちらを向いて動いているか。北から時計回りの度。◯
速さspeed1秒あたり何メートル進んでいるか。◯

「空になる」に◯が付いた項目は、端末が出せないときに0ではなく「空(null)」が返ります。 ここで0を書いてしまうと「高さは0メートルだった」と読めてしまうので、 このページは「教えてもらえませんでした」と書き分けています。

地図を出さないのは、地図を出すと場所が外に伝わるからです

いまいる場所を出すページの多くは、地図や「地図で開く」リンクをいっしょに出します。 便利ですが、地図の絵は自分では作れません。 地図を出すということは、地図の絵を持っている相手に「このあたりを見せてください」と頼むことです。

つまり地図が出た時点で、その相手にはだいたいの場所が伝わっています。 リンクを作るだけの場合も、押した瞬間に同じことが起きます。

このページは場所をどこにも送らないことを大事にしているので、 地図もリンクも出していません。座標を自分の選んだ地図アプリに手で入れるのは、もちろん自由です。 ただそこから先は、その相手に伝わるということだけ、 分かったうえで押してほしいのです。

経度1度の長さは、緯度によって変わります

緯度1度ぶんの長さはどこでも約111キロメートルです。 ところが経度1度ぶんは、緯度によってまるで違います。 赤道でいちばん長く、北や南へ行くほど短くなり、極ではゼロになります── 北極点では、東経も西経も同じ1点だからです。

場所緯度1度経度1度
赤道緯度0度110.574キロメートル111.319キロメートル
日本のあたり北緯35度110.941キロメートル91.288キロメートル
ヨーロッパの北のほう北緯60度111.412キロメートル55.800キロメートル
北極点北緯90度111.694キロメートル0.000キロメートル

この表の数は、地球の形(GRS80)から計算したものです。 長半径 6,378,137メートル・扁平率 298.257222101分の1 という値は、測量法施行令 第三条が定めています。 計算した値が国土地理院の「距離と方位角の計算」(新しいタブで開きます)の答えと一致することは、単体テストが毎回確かめています。

緯度1度も、じつは同じではありません

「どこでも約111キロメートル」と書きましたが、正確には赤道で110.574キロメートル、極で111.694キロメートル。極のほうが1キロメートルあまり長いのです。

ここから地球の形が分かりました。18世紀の前半、フランスは低緯度のペルーと高緯度の北欧に測量隊を送り、緯度1度あたりの距離を測りました。 その結果高緯度のほうが1キロメートルあまり長いと分かり、地球は真ん丸ではなく、南北につぶれた形をしていると決まったのです (国土地理院の資料による)。 いま使っている地球の形も、この「つぶれ具合」を扁平率という数で持っています。

高さが出ないことがあります。出ても標高とは違います

高さ(altitude)は、端末が出せないときは空になると仕様が決めています。 そのときこのページは「教えてもらえませんでした」と書きます。0メートルとは書きません。0メートルは「海面の高さにいる」という意味になってしまい、「分からない」とはまったく違うからです。

出てきたときも、そのまま標高として読むことはできません。 仕様が言っている高さは「WGS84 という楕円体の面からの高さ」で、 地図や山の看板に書いてある標高は平均海面をもとにした高さです。ものさしの0の位置がそもそも違います。どれだけ違うかは場所によって変わるので、ここでは数を書きません。

細かく測ると、電池をよけいに使います

「細かく測る」のつまみ(enableHighAccuracy)は、細かく測ってほしいという希望をブラウザに伝えるだけのものです。 仕様には、この指定をすると答えが返るのが遅くなったり、電池をよけいに使ったりすることがあると注意が書かれています。

逆に、指定しなければブラウザは電池を多く使う測り方を避けてよいことになっています。 つまり細かさと電池は取り引きです。 だからこのページはつまみにして選べるようにしてあります。

なお、指定しても必ず細かくなるわけではありません。 利用者がその機能を切っていたり、端末がそれ以上細かく測れなかったりすれば、 結果は変わりません。

安全な接続(HTTPS)でないと、聞くことすらできません

場所を聞けるのは安全な接続のページだけ、と仕様が決めています。 アドレスが http で始まるページでは、許可の窓すら出ません。

やっかいなのは、そのときに返ってくる番号が「断られた」と同じ1番だということです。 番号だけを見て「許可してください」と案内すると、いつまでも直りません。 このページは安全な接続かどうかを別に調べて、 どちらの話なのかを書き分けています。

出どころ: 精度・高さ・エラーの番号・つまみの説明はW3C の Geolocation API 仕様(新しいタブで開きます)から。地球の形(長半径と扁平率)は測量法施行令 第三条、 1度あたりの長さの答え合わせと、緯度1度の差から地球の形が分かった話は国土地理院「地球の形と経度・緯度」(新しいタブで開きます)から取っています。測り方ごとの精度の目安は、確かめられる出どころが無いので書いていません。