1. A method comprising: transmitting to a server remote from a computing device first location-related information associated with a current location of the computing device, the first location-related information including identification and signal information for nearby Wi-Fi access points and cell towers and associated signal characteristics detected by the computing device at the current location; after the transmitting to the server, receiving at the computing device second location-related information from the server, wherein the server utilizes an external location service accessible via a Hypertext Transfer Protocol (HTTP) application programming interface (API) to estimate a location of the computing device based on the first location-related information, wherein the second location-related information represents a portion of a database of location-related information stored at the server that corresponds to an area around the device's estimated location, and wherein the second location-related information includes identification of at least one Wi-Fi access point or of at least one cell tower at or near the estimated location of the computing device; at the computing device, measuring signal strengths received from the at least one Wi-Fi access point or from the at least one cell tower included in the second location-related information; and at the computing device, estimating a new location of the computing device based on the second location-related information and the measured signal strengths from the at least one Wi-Fi access point or from the at least one cell tower included in the second location-related information.