メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

Geolocationについてしらべてみた

newwebweb

Geolocationとはユーザーの位置情報を教えてくれるAPIです。Geolocationを使って経度と緯度が取得できます。自分はGeolocation以外で位置情報を取得したことがないんですけど、以前は各キャリアごとに独自の仕組みが合ったみたいで、アプリ開発する際にもそれに沿って開発する必要があったらしいです。Geolocationを使えば、統一された方法で、経度、緯度の取得が可能ですが、ブラウザが対応してないとGeolocationを使う事ができないです。

仕組み

Geolocationは無線LAN・携帯電話基地局・GPS・IPアドレス等から送信されたデータを取得します。
端末やインターネットの接続方法によって、機能の仕組みが異なります。

デスクトップPCの経度、緯度取得方法

IPアドレスから、現在地を判断します。

無線LANからの経度、緯度取得方法

Wifiアクセスポイントから現在地を判断します。

携帯電話からの経度、緯度取得方法

携帯が、一番近い電波塔のIDを含んでる場合、またはGPS機能が有効である場合、このどちらかか全部を使って、現在地を判断します。
今はこうやって取得されるデータの事を位置情報データって呼んだりしてるみたいです。

対応ブラウザ

Geolocationは以下のブラウザに対応しています。

ブラウザ 対応バージョン
Internet Explorer 9以降
Firefox 3.5以降
Google Chrome 5以降
Safari 5以降
Opera 10以降

取得できる情報

リクエストが成功すると、Geopositionオブジェクトが返ってきます。
その中に時間とか、位置情報が入ってます。

cordsプロパティ
latitude 緯度
longitude 経度
altitude 高度
accuracy 緯度/経度の誤差
altitudeAccuracy 高度の誤差
heading 方向

cordsの中にはこれだけの情報が入っています。

経度、緯度の取得方法

GeolocationAPIを使うにはJavaScriptを使います。こうやって書くと、経度と緯度が取得できます。

</p>
<p>&lt;script&gt;</p>
<p>//Geolocationが使用できるかどうかチェック<br />
navigator.geolocation.getCurrentPosition(okCallback, erCallback);</p>
<p>//成功時に実行される<br />
function okCallback(pos) {</p>
<p>//posに経度と緯度が入ってくる</p>
<p>  lat = pos.coords.latitude;<br />
  lng = pos.coords.longitude;</p>
<p>//経度と緯度を変数に入れる</p>
<p>  document.write(&quot;緯度  &quot;+lat+&quot;&lt;Br /&gt;&quot;)<br />
  document.write(&quot;経度  &quot;+lng)<br />
}</p>
<p>//エラー時に実行される<br />
function erCallback(er) {<br />
  errorCode = er.code;<br />
}</p>
<p>&lt;/script&gt;</p>
<p>

タイムアウトなどのオプションも指定できるので、マニュアルをチェックしてみて下さい。

参考

Geolocation 機能の仕組み
Geolocation.getCurrentPosition() MDN

関連記事

コメントをお待ちしております