46

Some GUI apps use OS X location services, but I want to retrieve a Mac's physical location from the command line. This could be useful for running scripts, switching settings etc. The mechanism should be CoreLocation, not a Geo IP service (data too low-res, needs online connection).

Minimum requirement is output of longitude and latitude. Nice would be a number indicating the precision. Super nice: a geocoder that provides location names.

  • Please do not include answers directly in the question, it tends to confuse people and makes it rather difficult to understand what the question actually is. If you want to add sample output to the different solutions offered you can do so directly by editing the answers. – nohillside Dec 17 '14 at 13:34
31

vilmoskörte's answer appears to be a good one, but I took it upon myself to make a tool that does this for my own education. I put it on GitHub.

WhereAmI

A simple command line tool. No options, just runs and outputs Lat/Long, accuracy in meters, and a timestamp. It will need OS X Location Services to be turned on (System Preferences > Security & Privacy), and permission to gather your location (OS X will prompt you on first run).

Direct Download Link (.zip)

  • That’s great - bonus for simplicity!! – myhd Aug 14 '12 at 14:59
  • link's broken, raised a pull request with rob – booyaa Aug 29 '13 at 6:20
  • @booyaa thanks for the prompting. Link broke a while ago when GitHub killed downloads and I messed up my account. It’s back now. – robmathers Aug 29 '13 at 16:21
13

This already has been programmed, have a look at

http://iharder.sourceforge.net/current/macosx/locateme/

  • very nice. cool option: -g … Generate a Google Map URL – myhd Aug 14 '12 at 14:54
  • The author of the software has indicated that they are aware of the Mountain Lion problems and will look over the code to see if an easy fix is available. – bmike Dec 29 '12 at 20:32
  • This is the best answer. You can install with brew install locateme and it works on macOS Mojave. – mk12 Apr 8 at 19:27
8

I'm the author of LocateMe, and I just discovered that I have to copy LocateMe into the /Applications folder for it to work in Mountain Lion. I'm not sure what I'd have to do to avoid that -- probably something about getting a cert, which I'm not likely to pursue anytime soon.

In the meantime, for LocateMe and probably the others, try copying them to /Applications and see if you have better luck.

-Rob

  • I can confirm that works. – markhunte Jan 2 '13 at 10:09
5
+100

Those apps need to be signed with a developer certificate before they can authorise with the Core Location service. If you look in Console.app you can see the failed attempts to authorise:

31/12/2012 13:08:26.441 locationd[484]: Couldn't get information from PID 40084
31/12/2012 13:08:27.515 CoreLocationAgent[40086]: CodeSigningInforequest for pid=40084 

I’ve used my developer account to build and sign a new whereami binary. After you run it Mountain Lion will ask your permission to enable it to access location data.

  • This worked great for me in Mac 10.8.2 – TJ Luoma Jan 1 '13 at 3:52
4

I'm the author of CoreLocationCLI, mentioned in the comments above. Just wanted to note that we have moved the project to this location:

https://github.com/fulldecent/corelocationcli

Also, it now supports --once if you are only looking for a single output, rather than continuous output.

Lastly, there is a full binary on the project page as well if you would rather not compile it yourself. You will still need to authorize ("Would you like this app to be able to access your location") on the first app run.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .