PowerShell、130バイト
Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).Start();for(;($b=$a|% Po*n|% L*)|% I*){}$b|select L*e
ゴルフをしていない:
Add-Type -AssemblyName System.Device #Required to access System.Device.Location namespace
$GeoWatcher = New-Object System.Device.Location.GeoCoordinateWatcher #Create the required object
$GeoWatcher.Start() #Begin resolving current locaton
whille ($GeoWatcher.Status -ne "Ready") do { sleep -Milliseconds 100 } #Wait for discovery.
$GeoWatcher.Position.Location | Select Latitude,Longitude #Select the relevent results.
戻り値:
PS C:\users\sweeneyc\Desktop> Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).Start();for(;($b=$a|% Po*n|% L*)|% I*){}$b|select L*e
Latitude Longitude
-------- ---------
53.4064177191653 -6.36202495701332
これを行う方法はありますが、それほどきれいではありません。
ボーナス:現在地でGoogleマップを開きます。
Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).Start();for(;($b=$a|% Po*n|% L*)|% I*){};saps "https://www.google.ie/maps/@$($b.Latitude),$($b.Longitude)z"
を使用して3バイト節約できますTryStart
がtrue
、パイプラインにa を出力し、それを抑制するためにさらにコストがかかります。
Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).TryStart($true,[int]9e8);$a|% Po*n|% L*|select L*e
PowerShell(非競合)、44バイト
(irm freegeoip.net/xml).Response|select *ude
PowerShellには「現在の場所」の内部ビルトインがないため、外部サービスを使用します-これはIPベースのGeolocationであるため、実際の場所はほとんど間違いなく返されず、ISPの「デフォルト」の場所が返されます。これは、VPNを介して、出口ポイントのある場所に表示されます。
私は(ゴルフの練習としてではなく)google-maps APIをワイヤレスMACアドレスジオロケーション方式で動作させようとしましたが、正確またはゴルフにはほど遠いです。
結果が不正確であるため、非競合としてマークされています。
PS C:\Users\sweeneyc> (irm freegeoip.net/xml).Response|select *ude
Latitude Longitude
-------- ---------
53.3472 -6.2439
これはCentral Dublin, Ireland
検索すると表示されますが、現在は市内中心部から少し外れているため、返された地点から約8マイルです。
gl
はGet-Location
、残念C:\Users\Connor
ながら、森からの脱出にあまり役立つとは思わない。