I know that I can just call one of any number of geocoding APIs to perform this for me. This is more of a curiosity than anything else.
With that aside, how does someone (like Google) turn a city name into a latitude and longitude? From playing around with Google Maps it appears that most of the time a city is pinpointed to it's downtown area, but there seems to be no reason why one street corner is picked over any other street corner.
I am just curious what algorithm a geocoding service provider would utilize for performing such an action?