エラー、どこにいるの?


26

あらいやだ!私は大きな森に閉じ込められています(わかりましたが、そうではありませんが、ただそれを仮定してください)。

ありがたいことに、私はラップトップを持ってきました。しかし、「マップ」を検索したとき、「結果なし」と表示され、これを最後の手段として求めています。

私の場所の経度と緯度を任意の2つの数値形式で出力するプログラムを作成してください。any two number format含まれるもの:

  • タプル。
  • 経度と緯度を含む文字列。
  • JSONオブジェクト。
  • 等..

任意のAPIまたはライブラリを使用できます。つまり、Googleマップなどを照会できます(APIを破棄しなかったのではないかと思います:\)


19
PowerShellにglGet-Location、残念C:\Users\Connorながら、森からの脱出にあまり役立つとは思わない。
colsw

C:\ Users \ユーザー@Connor>須藤はい
マシュー盧

回答:


72

Mathematica、4バイト

エラー、どこにいるの?

Here

に評価しGeoPosition[{latitude, longitude}]ます。


5
o_O Mathematicaにはこれが組み込まれていますか?
マシュー盧

4
@SIGSEGV もちろん...(スニペット#4)
マーティン・エンダー

33
Mathematicaにはすべての
機能が組み込ま

10
さらに良いことには、コマンドSunset[Here] - Nowは日没までの時間を正しく返します。
グレッグマーティン

4
質問よりも投票数が多い答えを見るのは面白いです。おめでとう👏👏👏
マシュー盧

11

JavaScript(ES6)、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()sはlatitudelongitudeの特性x.coordsコンマで区切られました。オブジェクトxwatchPosition()、コールバック関数が呼び出されたとき(つまり、位置情報データの取得後)にコールバック関数に渡されることに注意してください。


注:位置情報データは、GPSが使用可能な場合はGPSベースであり、それ以外の場合はIPに基づいています。


2
watchPositiongetCurrentPosition5バイトを節約する代わりに。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
実際、JSが非常に長いプロパティ名に依存しながら競争力を持つことができるのはまれな機会です。
シャギー

@JohanKarlssonありがとう!実装しました!
アルジュン

@Shaggy True、確かに。
アルジュン

8

Python、リクエストあり、101 100 75バイト

@КириллМалышевのおかげで4バイト節約

@Rodのおかげで21バイト節約

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

これがPython 2の場合、括弧を削除することで1バイトを節約できます
-Wondercricket

たぶん、短いURLを使用する方が良いでしょうか?たとえば、su0.ru/auls。したがって、4バイト節約できます。
КириллМалышев

あなたは、このすべては、書式設定は必要ありませんfrom requests import*;print(get('http://ip-api.com/json').text.split(',')[5:7])十分なはずです
ロッド

リンクが壊れています!URL短縮サービスを使用する場合は、確立された短縮サービスを使用するのが最適です。
ヤコブ

5

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バイト節約できますTryStarttrue、パイプラインに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マイルです。


C#にGeoCoordinateWatcherTryStart、ステータスがReadyループする代わりに返されるように見えるメソッドを試すことができます。その方法が明らかに利用できる場合。
TheLethalCoder

1
@TheLethalCoderは私が最初に調べたもので、そこに例で追加され、全体で3バイトしか節約しませtrueんが、lat / longを出力する前にパイプラインにダンプし、おそらく出力時に仕様に違反すると思います。
colsw

@TheLethalCoder上で実行可能にバイト(s)は救うことができる[int]9e8あなたがタイムアウトを設定する部分TryStartが、私は仕事にそれを得ることができない9999999[int]9e8、余分な9を追加することと同じです
COLSW

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か月間Angolfを持っていますが、以前はリンクを持っていなかったので、GitHubにアップロードしました
-thatoneuser

@thatoneuserが、残念ながら、この光景に言語が(これ、あなたが参加することができる手段とガーナーupvotesを非競合としてマークにそれを行ってください「競合」としてマークすることが発表されている必要がありますが、あなたは受け入れられチックマークのために考慮される続きます。
ロハンJhunjhunwala

0

C#、132バイト

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

0

Excel VBA(Windows、Office 2016+のみ)、278 272バイト

Microsoft.Mashup.OleDb.1プロバイダーの使用については、Windows、Office 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)


0

スイフト4125の117 96バイト

これは、残念ながらローカルでのみテストできます。

import CoreLocation;var c=CLLocationManager().location!.coordinate;print(c.longitude,c.latitude)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.