पॉवरशेल, 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लेकिन यह trueपाइपलाइन को आउटपुट देता है और इसे दबाने के लिए अधिक लागत आती है।
Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).TryStart($true,[int]9e8);$a|% Po*n|% L*|select L*e
पॉवरशेल (गैर-प्रतिस्पर्धात्मक), 44 बाइट्स
(irm freegeoip.net/xml).Response|select *ude
किसी बाहरी सेवा का उपयोग करता है क्योंकि PowerShell में 'वर्तमान स्थान' के लिए कोई आंतरिक भवन नहीं है - यह IP- आधारित जियोलोकेशन है, इसलिए लगभग निश्चित रूप से आपके वास्तविक स्थान को वापस नहीं करेगा, यह आपके ISP के लिए 'डिफ़ॉल्ट' स्थान लौटाएगा, और यदि आप चलते हैं वीपीएन पर यह बाहर निकलने के बिंदु पर जहां भी मौजूद होगा।
मैंने वायरलेस-मैक-एड्रेस जियोलोकेशन विधि के साथ काम करने के लिए गूगल मैप्स एपीआई प्राप्त करने की कोशिश की है (गोल्फ अभ्यास के रूप में नहीं), लेकिन यह सटीक या गोल्फ से बहुत दूर है।
परिणामों की अशुद्धि के कारण गैर-प्रतिस्पर्धी के रूप में चिह्नित।
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आपको जंगल से बचने में मदद मिलेगी।