PowerShell, 130 байт
Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).Start();for(;($b=$a|% Po*n|% L*)|% I*){}$b|select L*e
Ungolfed:
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
но он выводит a true
в конвейер и стоит больше, чтобы подавить это.
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, поэтому почти наверняка не вернет ваше фактическое местоположение, он вернет местоположение «по умолчанию» для вашего провайдера, и если вы запустите это через VPN будет присутствовать везде, где есть точка выхода.
Я пытался (не в качестве упражнения для игры в гольф) заставить API карт Google работать с методом геолокации беспроводных 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
что поможет вам очень бежать из леса.