मैं कहाँ हूँ?


26

अरे नहीं! मैं एक बड़े जंगल में फंसा हुआ हूं (ठीक है, वास्तव में नहीं, लेकिन बस इसे मान लीजिए) और मुझे नहीं पता कि मैं कहां हूं!

शुक्र है, मैं अपना लैपटॉप लाया। लेकिन जब मैंने 'मैप्स' को खोजा, तो उसने कहा 'कोई परिणाम नहीं', और मैं इसे अंतिम उपाय के रूप में पूछ रहा हूं।

कृपया एक कार्यक्रम बनाएं जो मेरे स्थान के देशांतर और अक्षांश को किसी भी दो नंबर प्रारूप में आउटपुट करता है। any two number formatमें शामिल हैं:

  • एक टपल।
  • देशांतर और अक्षांश सहित एक तार।
  • A JSON ऑब्जेक्ट।
  • आदि..

किसी भी एपीआई या पुस्तकालय का उपयोग किया जा सकता है। यही है, आप Google मैप्स इत्यादि को क्वेरी कर सकते हैं (मुझे लगता है, उन्होंने अपने एपीआई को कचरा नहीं किया: \)


19
PowerShell के glलिए Get-Location, दुख की बात है कि मुझे नहीं लगता कि C:\Users\Connorआपको जंगल से बचने में मदद मिलेगी।
colsw

C: \ Users \ @Connor> sudo हाँ
मैथ्यू रो

जवाबों:


72

गणितज्ञ, 4 बाइट्स

इर, मैं कहां हूं?

Here

का मूल्यांकन करता है GeoPosition[{latitude, longitude}]


5
o_O मैथमेटिका में इसके लिए एक बेसिन था?
मैथ्यू रो

4
@SIGSEGV का कोर्स ... (स्निपेट # 4)
मार्टिन

33
मैथेमेटिका में सब कुछ के लिए एक
बेसिन है

10
इससे भी बेहतर: कमांड Sunset[Here] - Nowसूर्यास्त तक सही समय पर राशि लौटाता है।
ग्रेग मार्टिन

4
मुझे इस प्रश्न से अधिक वोट वाले उत्तर को देखने में खुशी हो रही है। बधाई 0
मैथ्यू रो

11

जावास्क्रिप्ट (ईएस 6), 89 82 बाइट्स

navigator.geolocation.watchPosition(x=>alert([(y=x.coords).latitude,y.longitude]))

इसे ऑनलाइन आज़माएं! (किसी कारण से, यह स्निपेट में काम नहीं कर रहा था)।

व्याख्या

navigatorऑब्जेक्ट BOM का एक हिस्सा है । geolocationइसकी एक संपत्ति है और यह एक वस्तु भी है, जिसमें उपयोगकर्ता का भू-स्थानिक डेटा होता है। वस्तु watchPosition()का एक तरीका है geolocation। यह एक कॉलबैक फ़ंक्शन में लेता है जिसे जियोलोकेशनल डेटा को पुनर्प्राप्त करने के बाद निष्पादित किया जाता है। कॉलबैक फ़ंक्शन x=>alert((y=x.coords).latitude+","+y.longitude)एक गुमनाम (लैम्ब्डा) समारोह है कि एक वस्तु में ले जाता है xऔर alert()है latitudeऔर longitudeके गुणों x.coordsअल्पविराम से अलग। ध्यान दें कि कॉलबैक फ़ंक्शन को कॉल xकरने पर ऑब्जेक्ट watchPosition()कॉलबैक फ़ंक्शन में जाता है (यानी जियोलोकेशनल डेटा की पुनर्प्राप्ति के बाद)।


नोट: यदि जीपीएस उपलब्ध है, तो जियोलोकेशनल डेटा जीपीएस आधारित है, अन्यथा यह आईपी पर आधारित है।


2
watchPositionके बजाय getCurrentPosition5 बाइट बचाता है। alert([(y=x.coords).latitude,y.longitude])2 और बचाता है
जोहान कार्लसन

1 चरित्र छोटा, एक त्रुटि फेंकता है:for(f in r=navigator.geolocation)r=r[f](x=>alert((y=x.coords).latitude+","+y.longitude))
user2428118

3
यह वास्तव में एक दुर्लभ अवसर है जब जेएस अपने लंबे समय तक संपत्ति के नामों पर भरोसा करते हुए प्रतिस्पर्धी हो सकता है।
झबरा

@JohanKarlsson धन्यवाद! इसे लागू किया!
अर्जुन

@ शांगी सच, वास्तव में।
अर्जुन

8

अनुरोधों के साथ अजगर, 101 100 75 बाइट्स

4 बाइट्स ने @ КириллМалышев को धन्यवाद दिया

21 बाइट्स @Rod की बदौलत बच गए

from requests import*;print(get('http://su0.ru/auls').text.split(',')[5:7])

यदि यह पायथन 2 है, तो आप कोष्ठक को हटाकर 1 बाइट बचा सकते हैं
वंडरक्रिकेट

हो सकता है कि शॉर्ट यूआरएल का इस्तेमाल करना बेहतर हो? उदाहरण के लिए, su0.ru/auls । तो आप 4 बाइट बचाएंगे।
Кирилл Малышев

आपको यह सब प्रारूपण की आवश्यकता नहीं है, from requests import*;print(get('http://ip-api.com/json').text.split(',')[5:7])पर्याप्त होना चाहिए
रॉड

लिंक टूट गया है! यदि आप एक URL शॉर्टनर का उपयोग करने जा रहे हैं, तो स्थापित एक का उपयोग करना सबसे अच्छा है।
जैकब

5

पॉवरशेल, 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 मील की दूरी पर।


C # GeoCoordinateWatcherमें एक ऐसा TryStartतरीका है जिसे आप आजमा सकते हैं जो ऐसा लगता है कि जब यह स्थिति Readyलूपिंग के बजाय है तो यह वापस आ जाएगी । अगर वह तरीका स्पष्ट रूप से उपलब्ध है।
TheLethalCoder

1
@ TheLethalCoder पहली चीज थी जिसे मैंने देखा था, उदाहरण में जोड़ा गया है, यह केवल कुल मिलाकर 3 बाइट्स बचाती है, लेकिन trueइससे पहले कि मैं लेट / लॉन्ग आउटपुट कर सकूं, इससे पहले पाइपलाइन को डंप कर देता हूं, और मुझे लगता है कि यह आउटपुट के होने पर संभवतः इसका उल्लंघन करता है। ।
colsw

@ TheLethalCoder संभवत: उस समय पर एक बाइट (ओं) को सहेज सकता है [int]9e8जब आप टाइमआउट सेट करते हैं, TryStartलेकिन मैं इसके साथ काम करने के लिए नहीं मिल सकता है 9999999और [int]9e8एक अतिरिक्त 9 को जोड़ने के समान है।
कॉल्व्स

2

(गैर-प्रतिस्पर्धात्मक) एंगोल्फ , 110 107 बाइट्स

❦™navigator.geolocation.getCurrentPosition#x=>™alert##y=x.coords▷.latitude+","+y.longitude▷▷●
    ❦                                   Define an IIFE
       ™                                Get the scope
         navigator                      Get JavaScript's navigator object from the scope
             geolocation                Get the geolocation property of the navigator object
                 getCurrentPosition     Get the current position and execute a function
                     x=>                Define a function with x as a parameter
                         ™              Get the scope
                            alert       Call alert and alert the following string:
                         #y=x.coords▷ Define y with the value of the coordinates of x
                         latitude       Get y's latitude
                         +","           Append "," to the string
                         +y.longitude   Append the longitude to the string
    ●                                   Close the IIFE and call it with the scope

1
साइट पर आपका स्वागत है! मुझे अंगोल्फ के बारे में कोई जानकारी नहीं मिल रही है; क्या आप इसकी वेबसाइट को लिंक करना चाहेंगे?
ETHproductions

github.com/XtremePlayzCODE/angled/blob/master/angolf.js , देर से जवाब के लिए क्षमा करें
thatoneuser

1
साइट पर आपका स्वागत है! क्या आपके पास इससे पुराना लिंक है? यदि नहीं, तो भाषा को चुनौती की तुलना में नया माना जाता है। शीर्षक में (गैर-प्रतिस्पर्धा) के साथ चुनौती की तुलना में नई भाषाओं में जवाबों को चिह्नित करने का रिवाज है
विनाशकारी नींबू

मेरे पास अभी 3 महीने का एंगोल्फ है, लेकिन मैंने अभी इसे GitHub पर अपलोड किया है क्योंकि इसमें पहले लिंक नहीं था
thatoneuser

इस दृष्टि से दुर्भाग्यवश @thatoneuser को "प्रतिस्पर्धा" के रूप में चिह्नित करने के लिए भाषाओं को प्रकाशित करने की आवश्यकता है, कृपया इसे नॉनकंपेटिंग के रूप में चिह्नित करें (इसका मतलब है कि आप भाग ले सकते हैं और अपवर्जित कर सकते हैं, लेकिन आप एक स्वीकृत चिह्न के लिए विचार करेंगे।
रोहन झुनझुनवाला

0

सी #, 132 बाइट्स

_=>{var w=new System.Device.Location.GeoCoordinateWatcher();w.Start();var c=w.Position.Location;return c.Longitude+","+c.Latitude;};

0

एक्सेल VBA (विंडोज, कार्यालय 2016+ केवल), 278 272 बाइट्स

Microsoft.Mashup.OleDb.1प्रदाता के उपयोग के लिए विंडोज, कार्यालय 2016+ के लिए प्रतिबंधित

पूर्ण subदिनचर्या जो कोई इनपुट नहीं लेती है और एक अतिरिक्त तालिका के रूप में आपके वर्तमान स्थान को आउटपुट करती है Excel.ListObject, जिसमें अतिरिक्त जानकारी शामिल है।

Sub a
ThisWorkbook.Queries.Add"x","let S=Json.Document(Web.Contents(""su0.ru/auls""))in S
With Sheet1.ListObjects.Add(0,"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=x",,,[A1]).QueryTable
.CommandText="SELECT * FROM [x]
.Refresh
End With
End Sub

उदाहरण उत्पादन स्पष्ट कारणों के लिए बाहर रखा गया।

-2 बाइट्स [Sheet1]ओवर के इस्तेमाल के लिएSheets(1)


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.