1. A system for determining locations visited by a mobile device, comprising: one or more computing devices; a database storing a plurality of location points, wherein each location point is associated with the mobile device; an updater, implemented on the one or more computing devices, configured to: receive a location point from the mobile device; and store the location point in the database; a query manager, implemented on the one or more computing devices, configured to: receive a query for a plurality of location points associated with the mobile device; and retrieve the plurality of location points associated with the mobile device from the database based on the query; an analyzer, implemented on the one or more computing devices, configured to: send a query to the query manager for the plurality of location points; receive the plurality of location points from the query manager; identify a first location point from the plurality of location points; construct a time block from the first location point and one or more of the plurality of location points, wherein the time block indicates a period of time when the mobile device is in a determined location, and wherein the analyzer is further configured to construct a time block by: iterating chronologically through the plurality of location points from the first location point to identify a second location point, wherein the second location point is identified based on a calculated score above a first score threshold or below a second score threshold, and wherein the first score threshold is higher than the second score threshold; and including the second location point and each iterated location point between the first and second location points in the time block when the calculated score is above the first score threshold; and calculate an aggregate location for the time block based on the plurality of location points in the time block; and a consolidator, implemented on the one or more computing devices, configured to apply a spatial clustering procedure to transform the aggregate locations of one or more time blocks into one or more locations of interest.