コンソールから位置情報を取得する
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がなくても比較的簡単に位置情報が入手できる。すでに分かっている座標(たとえば自宅や職場など)があれば、現在位置と比較して「自宅にいるとき」、「職場にいるとき」といった条件をスクリプトなどから調べることも可能だ。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ












