We don’t currently support location services on Windows.
The bug here is that the Simulator is responding to system.hasEventSource( “location” ) with true when it shouldn’t (i.e. the Desktop app’s response is actually correct).
system.hasEventSource( ) first considers does CoronaSDK support the event source on this platform at all and then it determines whether the current device (or computer) has this functionality.
It seems that when “the app grabs the weather data from an external service URL” it’s making its own arrangements to determine the location and that’s why it works when the Simulator returns the false positive.
Supporting location services on Windows is on our todo list but I have no information on when it might be available.
And Rob is correct to say “generally if it works in the simulator, it should work in the desktop build” and I’m going to be interested to discover why that isn’t the case here.