It's unclear what you are trying to do here.
If you are simply trying to display a Locator
over a GeoGraphics
object, you can do so like this:
LocatorPane[{0, 0}, GeoGraphics["World"]]
If you need the Locator
position to be tied to a Dynamic
variable, I would suggest something like this:
Manipulate[{LocatorPane[x, GeoGraphics["World"]], x},
{{x, {0, 0}}, Locator}]
Or alternatively:
DynamicModule[{x = {0, 0}},
{LocatorPane[Dynamic[x], GeoGraphics["World"]], Dynamic[x]}
]
If you're just trying to dynamically update the location on the map, and you don't particularly need the Locator
to be there at all, you might be able to use DynamicGeoGraphics
, depending on your needs:
DynamicGeoGraphics[GeoPosition[Reverse[{-63., 45}]]]
If you are trying to have the Locator
select the location on the map, I would recommend something akin to what many real-time strategy games do, with two maps: one containing the region from which you'd like to sample locations, and one containing the Locator
, and the entire region from which you might like to sample. Something like this (where padding is expressed in degrees):
DynamicModule[{x = {-63., 45}, range = Quantity[10, "Kilometers"]},
Column@{LocatorPane[Dynamic[x], GeoGraphics["World"]],
Dynamic[GeoGraphics[GeoPosition[Reverse[x]],
GeoRange -> range], SynchronousUpdating -> False]}
]
You'll notice that anytime I ask for the GeoPosition
of x, I Reverse
x
first. This is because Locator
coordinates are {x,y}
, whereas GeoPosition
coordinates are {lat,lon}
. For north-oriented equirectangular maps, the coordinates are reversed.
I hope this helps!