3
$\begingroup$

How do I get the city and country names from the output of FindGeoLocation[] {lat, long} ?

$\endgroup$
1

3 Answers 3

2
$\begingroup$

One way is to do this:

nc = Nearest[
  CityData[#, "Coordinates"] -> # & /@ 
     CityData[{All, "United Kingdom"}]];

Then use this as:

nc[FindGeoLocation[]]

{{"London", "GreaterLondon", "UnitedKingdom"}}

$\endgroup$
1
  • $\begingroup$ (I'm in the UK - your mileage might vary... :)) $\endgroup$
    – cormullion
    Jun 17, 2013 at 21:17
2
$\begingroup$

The fastest is probably with the use of the GeoNames API*:

loc = FindGeoLocation[]
i = Import[
"http://api.geonames.org/findNearby?lat=" <> ToString[loc[[1]]] <> 
"&lng=" <> ToString[loc[[2]]] <> "&username=demo", "XML"];
name = Cases[i[[2, 3, 1, 3]], XMLElement["name", _, x_] -> x]

*Idea from this post.

EDIT: another option is the use of WolframAlpha plugin in mathematica:

WolframAlpha["near cities"]
(* or *)
= near cities

wolframalpha output

$\endgroup$
1
$\begingroup$

Starting from Mathematica version 10.0 there is GeoIdentify function

GeoIdentify["Country", GeoPosition[{-11.00505177, -76.41350033}]]

Which results in

{Entity["Country", "Peru"]}
$\endgroup$
1
  • $\begingroup$ Of course you don't want to simply reproduce the Wolfram documentation, but it's worth pointing out that the first argument to GeoIdentify can be any one of a number of different kinds of entity, including "City". $\endgroup$ Oct 21, 2022 at 10:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.