1. A computer-implemented method comprising: receiving at a current time a current location of a user's electronic device; retrieving data identifying a plurality of points of interest, each point of interest within a predetermined distance to the current location and associated with a category of a plurality of categories differentiated by subject matter; scoring each of the points of interest based at least in part on a proximity of the point of interest to the current location by calculating a plurality of scores, each respective score corresponding to a respective point of interest; obtaining, for each of the points of interest, a category of points of interest including the respective point of interest; determining, for each category of points of interest, a density of points of interest that (i) correspond to that category and (ii) are within the predetermined distance to the current location; boosting the scores of points of interest associated with categories having lower densities relative to points of interest associated with categories having higher densities; obtaining, for each category of points of interest, a probability of receiving a user query relating to the category at a time corresponding to the current time and in a location near the current location, wherein the probability of receiving the user query relating to the subject matter is determined based on a query database in which previously received queries are logged, and wherein the query database has a plurality of different queries having different terms, the different terms relating to the respective category of points of interest; and providing data identifying a plurality of points of interest to the user's electronic device based on the scoring and the probabilities.