in reply to Lookup closest hash key
Hashes don't store keys in a way that facilitates a direct look up of that sort. The simplest option is likely to be to sort the keys then perform a binary search. If you need to perform the lookup more than once the sorted array of keys could be saved to save a little time for subsequent searches.
It may be that you would be better off using an array of [distance, city] pairs and either create the array sorted, or sort it once after creation. If you can't use the hash keys directly for lookup there is no advantage to using a hash at all and performing other tasks are likely to be more cumbersome so a sorted array is likely to work much better for you.