in reply to
Best way to Extract Geographic Entities from Text?
The Google Maps API provides Geocoding functionality. Given some input (which can be unstructured text) it will return as many possible geographic locations as it can find along with an accuracy (ie: confidence) rating for each.
Some manual analysis of the results from "real world" sample input from your search should help you find a sweetspot where you can ignore any response from the geocode service that contains too many locations, or locations with too low of an accuracy.