コンソールから位置情報を取得する
Windows PowerShellを開いたら、以下のコマンドを実行する。
Add-Type -AssemblyName System.Device ; $GeoWatcher = New-Object System.Device.Location.GeoCoordinateWatcher
これで、$GeoWatcherに位置情報をアクセスするためのオブジェクトが設定された。
まずは位置情報サービス(ロケーションサービス)の状態を確認する。それには「status」プロパティを見る。最初は停止状態なので、「NoData」が返って来るはずだ。「Disabled」の場合には、アプリケーションに位置情報サービスの利用許可がなされていないので、前記の設定を見なおす必要がある。
次に「Start()」メソッドを使って、位置情報サービスを動作させる。これでステータスが「Ready」に変わるはずだ。なお、GPSがある場合には、位置測定(測位)に時間がかかることがあるため、しばらく待つ必要がある。マップアプリで現在位置が正しく表示されれば「Ready」になるはずだ。
状態を確認したら、$GeoWatcher.Position.Locationプロパティを表示させると、位置情報が取得できているはずだ。「Latitude」が緯度、「Longitude」が経度で、単位は「度」の10進数表示だ。このコマンドで得られるのは、緯度がプラスマイナス90度の範囲で、赤道が0度、北半球がプラス、南半球がマイナスの値になり、経度はプラスマイナス180度の範囲で、子午線(イギリスのグリニッジ天文台を通る線)の東側がプラス、西側がマイナスである。日本は子午線の東側になる。緯度経度には、時分秒を使うものなど、いくつかパターンがある。同じ10進数の度を使うものでも、正負ではなく「北緯、南緯」「東経、西経」を使う場合もある。
位置情報を利用する場合、デバイスから緯度経度などの情報を得て、この情報を使って別のサービスなどからさらに情報を得ることが多いが、サービスにより位置情報の形式に違いがあることに注意が必要だ。
得られた緯度経度を用いて地図を開く
.NET Frameworkには、緯度経度から住所を検索する「CivicAddressResolver」クラスも用意されているのだが、これが実はちゃんと動いていない(Windows 7あたりでは動作していた記憶があるのだが……)。
同様の機能は、GoogleマップやBingマップでAPIを使うと可能なのだが、原則的にユーザー登録してAPIキーなどを得る必要がある(利用方法によっては有料)。これは面倒なので、今回はURLに埋め込んで、地図を開く程度にしておく。
GoogleマップのURLは、以下のような構造になっている。
https://www.google.co.jp/maps/@〈緯度〉,〈経度〉,13z?hl=ja
経度の後ろの「13z」は、表示倍率である。大きな値を指定することでより拡大した(狭い範囲)を表示できる。Windows PowerShellからは、以下のコマンドで、測定した緯度経度でGoogle Mapsを開くことができる。
start "https://www.google.co.jp/maps/@$($GeoWatcher.Position.Location.Latitude),$($GeoWatcher.Position.Location.Longitude),13z?hl=ja"
Windows付属のマップアプリは、URI起動が利用できるので、以下のようにして開くことができる。
start "bingmaps:?cp=$($GeoWatcher.Position.Location.Latitude)~$($GeoWatcher.Position.Location.Longitude)"
無線LANがあれば、GPSがなくても比較的簡単に位置情報が入手できる。すでに分かっている座標(たとえば自宅や職場など)があれば、現在位置と比較して「自宅にいるとき」、「職場にいるとき」といった条件をスクリプトなどから調べることも可能だ。
この連載の記事
-
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 -
第430回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る - この連載の一覧へ