Really cool idea! I’ve always loved GeoGuessr, so this immediately caught my attention. I really like the idea of combining that kind of map exploration with actual population data.I’m also curious about the data side of things. Where do you get the population and demographic data from and how are you allowed to use and redistribute it? Given how huge these datasets must be, how is the data actually provided? Do you download the full dataset, use an API, or is there some other approach?
Thanks! The population/demographic data is all freely available from the US Census and stored in a PostGIS database (hence the site being US-only for now- if I wanted to make it global, there are global gridded population data sets but they aren't as detailed).
The geography data is all pulled in w/ some long-running background tasks into a rails app (that hosts both draw.city and another site I've shared here in the past - blockatlas.com). To find the pop of place that the user circled, it essentially queries for census blocks whose centroid is fully contained in the area you drew (there is a quicker census-tract-based fallback for huge areas).
Putting demographic data e.g. "% walk to work" onto an arbitrary polygon is a bit trickier, since that sort of data isn't published at the block level. We use census tracts (bigger, neighborhood-sized areas that do have this data), and for partially-contained tracts we compute the fraction of the tract's population estimated to live in the area, and allocate demographic info according to that fraction.
Really cool idea! I’ve always loved GeoGuessr, so this immediately caught my attention. I really like the idea of combining that kind of map exploration with actual population data.I’m also curious about the data side of things. Where do you get the population and demographic data from and how are you allowed to use and redistribute it? Given how huge these datasets must be, how is the data actually provided? Do you download the full dataset, use an API, or is there some other approach?
Thanks! The population/demographic data is all freely available from the US Census and stored in a PostGIS database (hence the site being US-only for now- if I wanted to make it global, there are global gridded population data sets but they aren't as detailed).
The geography data is all pulled in w/ some long-running background tasks into a rails app (that hosts both draw.city and another site I've shared here in the past - blockatlas.com). To find the pop of place that the user circled, it essentially queries for census blocks whose centroid is fully contained in the area you drew (there is a quicker census-tract-based fallback for huge areas).
Putting demographic data e.g. "% walk to work" onto an arbitrary polygon is a bit trickier, since that sort of data isn't published at the block level. We use census tracts (bigger, neighborhood-sized areas that do have this data), and for partially-contained tracts we compute the fraction of the tract's population estimated to live in the area, and allocate demographic info according to that fraction.