Err, Dimanakah saya?

26

Oh tidak! Saya terjebak di hutan besar (Oke, tidak juga, tapi anggap saja) dan saya tidak tahu di mana saya berada!

Syukurlah, saya membawa laptop saya. Tetapi ketika saya mencari 'Maps', tertulis 'Tidak ada hasil', dan saya menanyakan ini sebagai pilihan terakhir.

Harap buat program yang menampilkan garis bujur dan lintang lokasi saya dalam format dua angka apa pun. any two number formattermasuk:

  • Sebuah tuple.
  • Sebuah string termasuk garis bujur dan garis lintang.
  • Objek JSON.
  • dll ..

API atau Perpustakaan apa pun dapat digunakan. Yaitu, Anda dapat meminta Google Maps, dll. (Saya kira, Mereka tidak membuang API mereka: \)

Matthew Roh
sumber
19
PowerShell memiliki gluntuk Get-Location, sayangnya saya tidak berpikir C:\Users\Connorakan membantu Anda melarikan diri hutan sangat banyak.
colsw
C: \ Users \ @Connor> sudo yes
Matthew Roh

Jawaban:

72

Mathematica, 4 byte

Err, dimana aku?

Here

Mengevaluasi ke GeoPosition[{latitude, longitude}].

Martin Ender
sumber
5
o_O Mathematica punya bawaan untuk ini?
Matius Roh
4
@SIGSEGV Tentu saja ... (cuplikan # 4)
Martin Ender
33
Mathematica memiliki builtin untuk semuanya
Skidsdev
10
Bahkan lebih baik: perintah Sunset[Here] - Nowdengan benar mengembalikan jumlah waktu hingga matahari terbenam.
Greg Martin
4
Saya senang melihat jawaban yang memiliki lebih banyak suara daripada pertanyaan. Selamat 👏👏👏
Matius Roh
11

JavaScript (ES6), 89 82 byte

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

Cobalah online! (Untuk beberapa alasan, ini tidak berfungsi dalam cuplikan)

Penjelasan

navigatorobjek adalah bagian dari BOM . geolocationadalah properti-nya dan juga merupakan objek, yang berisi data geolokasi pengguna. watchPosition()adalah metode geolocationobjek. Dibutuhkan fungsi callback yang dijalankan setelah data geolocational telah diambil. Fungsi callback x=>alert((y=x.coords).latitude+","+y.longitude)adalah anonim (lambda) fungsi yang mengambil dalam suatu objek xdan alert()s latitudedan longitudesifat-sifat x.coordsdipisahkan dengan koma. Perhatikan bahwa objek xditeruskan ke fungsi callback pada watchPosition()saat fungsi callback dipanggil (yaitu setelah pengambilan data geolokasi).


Catatan: Data geolokasi berbasiskan GPS jika GPS tersedia, jika tidak berdasarkan IP.

Arjun
sumber
2
watchPositionbukannya getCurrentPositionmenghemat 5 byte. alert([(y=x.coords).latitude,y.longitude])hemat 2 lagi
Johan Karlsson
1 karakter lebih pendek, melempar kesalahan:for(f in r=navigator.geolocation)r=r[f](x=>alert((y=x.coords).latitude+","+y.longitude))
user2428118
3
Ini adalah kesempatan yang jarang terjadi ketika JS bisa bersaing sambil mengandalkan nama propertinya yang terlalu panjang.
Shaggy
@JohanKarlsson Terima kasih! Menerapkannya!
Arjun
@ Shaggy Benar, memang.
Arjun
8

Python dengan permintaan, 101 100 75 byte

4 byte disimpan berkat @ КириллМалышев

21 byte disimpan berkat @Rod

from requests import*;print(get('http://su0.ru/auls').text.split(',')[5:7])
Uriel
sumber
Jika ini Python 2, Anda dapat menyimpan 1 byte dengan menghapus tanda kurung
Wondercricket
Mungkin lebih baik menggunakan url pendek? Misalnya, su0.ru/auls . Jadi, Anda akan menghemat 4 byte.
Кирилл Малышев
Anda tidak perlu semua pemformatan ini, from requests import*;print(get('http://ip-api.com/json').text.split(',')[5:7])seharusnya sudah cukup
Rod
Tautan rusak! Jika Anda akan menggunakan pemendek URL, lebih baik menggunakan yang sudah mapan.
Jakob
5

PowerShell, 130 Bytes

Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).Start();for(;($b=$a|% Po*n|% L*)|% I*){}$b|select L*e

Tidak Disatukan:

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.

Kembali sebagai:

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

Ternyata ada cara untuk melakukan ini, tetapi tidak begitu cantik.

bonus: membuka google maps di lokasi Anda saat ini.

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"

bisa menghemat 3 byte menggunakan TryStarttetapi output a trueke pipa dan biaya lebih banyak untuk menekan itu.

Add-Type -A System.Device;($a=[Device.Location.GeoCoordinateWatcher]::new()).TryStart($true,[int]9e8);$a|% Po*n|% L*|select L*e

PowerShell (non-bersaing), 44 Bytes

(irm freegeoip.net/xml).Response|select *ude

Menggunakan layanan eksternal karena PowerShell tidak memiliki builtin internal untuk 'lokasi saat ini' - ini adalah Geolokasi berbasis IP, jadi hampir pasti tidak akan mengembalikan lokasi Anda yang sebenarnya, itu akan mengembalikan lokasi 'default' untuk ISP Anda, dan jika Anda menjalankan ini melalui VPN akan hadir di mana pun titik keluarnya.

Saya sudah mencoba (bukan sebagai latihan golf) untuk mendapatkan Google maps API untuk bekerja dengan metode geolokasi nirkabel-mac-address, tetapi jauh dari akurat atau golf.

ditandai sebagai tidak bersaing karena ketidakakuratan hasil.

PS C:\Users\sweeneyc> (irm freegeoip.net/xml).Response|select *ude
Latitude Longitude
-------- ---------
53.3472  -6.2439

ini menampilkan Central Dublin, Irelandketika dicari, namun saya sedikit di luar pusat kota saat ini, sekitar 8 mil dari titik kembali.

colsw
sumber
Dalam C # GeoCoordinateWatchermemiliki TryStartmetode yang dapat Anda coba yang terlihat seperti mengembalikan ketika status Readybukan mengulanginya. Jika metode itu tersedia jelas.
TheLethalCoder
1
@TheLethalCoder adalah hal pertama yang saya lihat, ditambahkan dalam contoh di sana, hanya menghemat 3 byte secara keseluruhan, tetapi dumps trueke pipeline sebelum saya dapat menampilkan lat / long, dan saya pikir itu mungkin melanggar spesifikasi ketika itu output .
colsw
@TheLethalCoder layak dapat menyimpan byte pada [int]9e8bagian ketika Anda mengatur batas waktu TryStarttetapi saya tidak bisa membuatnya bekerja dengan 9999999dan [int]9e8sama dengan menambahkan 9. tambahan.
colsw
2

(Non-bersaing) Angolf , 110 107 byte

❦™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
pengguna itu
sumber
1
Selamat datang di situs ini! Sepertinya saya tidak dapat menemukan informasi tentang Angolf; maukah Anda menghubungkan situs webnya?
ETHproduk
github.com/XtremePlayzCODE/angled/blob/master/angolf.js , Maaf atas jawaban yang terlambat
thatoneuser
1
Selamat datang di situs ini! apakah Anda memiliki tautan yang lebih lama dari ini? jika tidak, bahasanya dianggap lebih baru daripada tantangan. itu adalah kebiasaan untuk menandai jawaban dalam bahasa yang lebih baru daripada tantangan dengan (tidak bersaing) dalam judul
Destructible Lemon
Saya telah memiliki Angolf selama 3 bulan sekarang, tetapi saya baru saja mengunggahnya ke GitHub karena tidak memiliki tautan sebelumnya
pengguna itu
@thatoneuser sayangnya pada pandangan ini bahasa harus telah diterbitkan untuk ditandai sebagai "bersaing" harap tandai sebagai noncompeting (ini berarti Anda dapat berpartisipasi dan mengumpulkan upvotes, tetapi Anda akan terus dianggap sebagai tanda yang diterima.
Rohan Jhunjhunwala
0

C #, 132 byte

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

Excel VBA (Windows, Office 2016+ Only), 278 272 Bytes

Terbatas untuk Windows, Office 2016+ untuk penggunaan Microsoft.Mashup.OleDb.1penyedia

subRutin penuh yang tidak mengambil input dan output lokasi Anda saat ini sebagai Excel.ListObjecttabel yang diketik, termasuk informasi tambahan.

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

Contoh output dikecualikan karena alasan yang jelas.

-2 Bytes untuk penggunaan [Sheet1]lebihSheets(1)

Taylor Scott
sumber
0

Swift 4 , 125 117 96 byte

Sayangnya, ini hanya dapat diuji secara lokal.

import CoreLocation;var c=CLLocationManager().location!.coordinate;print(c.longitude,c.latitude)
Tuan Xcoder
sumber