us_geo 1.0.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +82 -0
- data/MIT_LICENSE.txt +21 -0
- data/README.md +77 -60
- data/UPDATING_TO_VERSION_2.md +172 -0
- data/VERSION +1 -0
- data/db/migrate/20190221054200_create_regions.rb +4 -2
- data/db/migrate/20190221054300_create_divisions.rb +4 -2
- data/db/migrate/20190221054400_create_states.rb +4 -2
- data/db/migrate/20190221054500_create_combined_statistical_areas.rb +4 -2
- data/db/migrate/20190221054600_create_core_based_statistical_areas.rb +4 -2
- data/db/migrate/20190221054650_create_metropolitan_divisions.rb +4 -2
- data/db/migrate/20190221054700_create_counties.rb +4 -3
- data/db/migrate/20190221054800_create_zctas.rb +4 -2
- data/db/migrate/20190221054900_create_zcta_counties.rb +4 -2
- data/db/migrate/20190221055000_create_urban_areas.rb +4 -2
- data/db/migrate/20190221055100_create_urban_area_counties.rb +4 -4
- data/db/migrate/20190221055200_create_zcta_urban_areas.rb +4 -4
- data/db/migrate/20190221060000_create_places.rb +4 -2
- data/db/migrate/20190221061000_create_place_counties.rb +4 -2
- data/db/migrate/20190221062000_create_zcta_places.rb +4 -4
- data/db/migrate/20190221063000_create_county_subdivisions.rb +4 -2
- data/db/migrate/20220722000000_allow_null_zcta_counties_demographics.rb +23 -0
- data/db/migrate/20220722000200_allow_null_zcta_places_demographics.rb +23 -0
- data/db/migrate/20230414000000_add_zcta_primary_place.rb +13 -0
- data/db/migrate/20230414000200_add_demographics_to_regions.rb +28 -0
- data/db/migrate/20230414000300_add_demographics_to_divisions.rb +28 -0
- data/db/migrate/20230414000400_add_demographics_to_states.rb +28 -0
- data/db/migrate/20230414000700_add_short_name_to_core_based_statistical_areas.rb +22 -0
- data/db/migrate/20230414000750_add_short_name_to_combined_statistical_areas.rb +22 -0
- data/db/migrate/20230414000800_create_zcta_mappings.rb +18 -0
- data/db/migrate/20230417000100_create_zcta_county_subdivisions.rb +22 -0
- data/db/migrate/20230417000200_add_unique_name_index_to_county_subdivisions.rb +26 -0
- data/db/migrate/20230417000250_add_zcta_primary_county_subdivision.rb +13 -0
- data/db/migrate/20230417000300_create_urban_area_county_subdivisions.rb +23 -0
- data/db/migrate/20230417000400_allow_null_urban_area_counties_demographics.rb +23 -0
- data/db/migrate/20230417000500_allow_null_zcta_urban_areas_demographics.rb +23 -0
- data/db/migrate/20230417000600_add_additional_time_zone_name_to_counties.rb +13 -0
- data/db/schema.rb +303 -0
- data/explorer_app/.gitattributes +7 -0
- data/explorer_app/.gitignore +34 -0
- data/explorer_app/Gemfile +38 -0
- data/explorer_app/Rakefile +6 -0
- data/explorer_app/app/assets/images/.keep +0 -0
- data/explorer_app/app/assets/stylesheets/application.css +1 -0
- data/explorer_app/app/controllers/application_controller.rb +64 -0
- data/explorer_app/app/controllers/combined_statistical_areas_controller.rb +12 -0
- data/explorer_app/app/controllers/concerns/.keep +0 -0
- data/explorer_app/app/controllers/core_based_statistical_areas_controller.rb +36 -0
- data/explorer_app/app/controllers/counties_controller.rb +22 -0
- data/explorer_app/app/controllers/county_subdivisions_controller.rb +23 -0
- data/explorer_app/app/controllers/divisions_controller.rb +27 -0
- data/explorer_app/app/controllers/home_controller.rb +6 -0
- data/explorer_app/app/controllers/metropolitan_divisions_controller.rb +27 -0
- data/explorer_app/app/controllers/places_controller.rb +23 -0
- data/explorer_app/app/controllers/regions_controller.rb +13 -0
- data/explorer_app/app/controllers/states_controller.rb +25 -0
- data/explorer_app/app/controllers/urban_areas_controller.rb +24 -0
- data/explorer_app/app/controllers/zctas_controller.rb +23 -0
- data/explorer_app/app/helpers/application_helper.rb +137 -0
- data/explorer_app/app/models/application_record.rb +3 -0
- data/explorer_app/app/models/concerns/.keep +0 -0
- data/explorer_app/app/views/combined_statistical_areas/_table.html.erb +18 -0
- data/explorer_app/app/views/combined_statistical_areas/index.html.erb +7 -0
- data/explorer_app/app/views/combined_statistical_areas/show.html.erb +52 -0
- data/explorer_app/app/views/core_based_statistical_areas/_table.html.erb +32 -0
- data/explorer_app/app/views/core_based_statistical_areas/index.html.erb +19 -0
- data/explorer_app/app/views/core_based_statistical_areas/show.html.erb +60 -0
- data/explorer_app/app/views/counties/_table.html.erb +64 -0
- data/explorer_app/app/views/counties/show.html.erb +96 -0
- data/explorer_app/app/views/county_subdivisions/_table.html.erb +48 -0
- data/explorer_app/app/views/county_subdivisions/show.html.erb +84 -0
- data/explorer_app/app/views/divisions/_table.html.erb +24 -0
- data/explorer_app/app/views/divisions/index.html.erb +3 -0
- data/explorer_app/app/views/divisions/show.html.erb +3 -0
- data/explorer_app/app/views/home/index.html.erb +23 -0
- data/explorer_app/app/views/layouts/application.html.erb +34 -0
- data/explorer_app/app/views/metropolitan_divisions/_table.html.erb +42 -0
- data/explorer_app/app/views/metropolitan_divisions/index.html.erb +8 -0
- data/explorer_app/app/views/metropolitan_divisions/show.html.erb +46 -0
- data/explorer_app/app/views/places/_table.html.erb +47 -0
- data/explorer_app/app/views/places/show.html.erb +92 -0
- data/explorer_app/app/views/regions/_table.html.erb +18 -0
- data/explorer_app/app/views/regions/index.html.erb +7 -0
- data/explorer_app/app/views/regions/show.html.erb +3 -0
- data/explorer_app/app/views/shared/_breadcrumbs.html.erb +13 -0
- data/explorer_app/app/views/shared/_demographics_cells.html.erb +5 -0
- data/explorer_app/app/views/shared/_demographics_headers.html.erb +5 -0
- data/explorer_app/app/views/states/_table.html.erb +31 -0
- data/explorer_app/app/views/states/index.html.erb +7 -0
- data/explorer_app/app/views/states/show.html.erb +54 -0
- data/explorer_app/app/views/urban_areas/_table.html.erb +45 -0
- data/explorer_app/app/views/urban_areas/index.html.erb +19 -0
- data/explorer_app/app/views/urban_areas/show.html.erb +68 -0
- data/explorer_app/app/views/zctas/_table.html.erb +60 -0
- data/explorer_app/app/views/zctas/show.html.erb +104 -0
- data/explorer_app/bin/bundle +109 -0
- data/explorer_app/bin/rails +4 -0
- data/explorer_app/bin/rake +4 -0
- data/explorer_app/bin/setup +33 -0
- data/explorer_app/config/application.rb +37 -0
- data/explorer_app/config/boot.rb +3 -0
- data/explorer_app/config/database.yml +13 -0
- data/explorer_app/config/environment.rb +5 -0
- data/explorer_app/config/environments/development.rb +59 -0
- data/explorer_app/config/initializers/filter_parameter_logging.rb +8 -0
- data/explorer_app/config/locales/en.yml +2 -0
- data/explorer_app/config/puma.rb +43 -0
- data/explorer_app/config/routes.rb +56 -0
- data/explorer_app/config.ru +6 -0
- data/explorer_app/db/seeds.rb +7 -0
- data/explorer_app/lib/assets/.keep +0 -0
- data/explorer_app/lib/tasks/.keep +0 -0
- data/explorer_app/log/.keep +0 -0
- data/explorer_app/public/404.html +67 -0
- data/explorer_app/public/422.html +67 -0
- data/explorer_app/public/500.html +66 -0
- data/explorer_app/public/apple-touch-icon-precomposed.png +0 -0
- data/explorer_app/public/apple-touch-icon.png +0 -0
- data/explorer_app/public/favicon.ico +0 -0
- data/explorer_app/public/robots.txt +1 -0
- data/explorer_app/tmp/.keep +0 -0
- data/explorer_app/tmp/pids/.keep +0 -0
- data/lib/tasks/us_geo/us_geo.rake +44 -3
- data/lib/us_geo/area.rb +44 -0
- data/lib/us_geo/base_record.rb +22 -16
- data/lib/us_geo/combined_statistical_area.rb +18 -8
- data/lib/us_geo/core_based_statistical_area.rb +24 -12
- data/lib/us_geo/county.rb +67 -16
- data/lib/us_geo/county_subdivision.rb +43 -7
- data/lib/us_geo/division.rb +17 -7
- data/lib/us_geo/metropolitan_area.rb +1 -5
- data/lib/us_geo/metropolitan_division.rb +17 -9
- data/lib/us_geo/micropolitan_area.rb +1 -5
- data/lib/us_geo/place.rb +61 -11
- data/lib/us_geo/place_county.rb +1 -4
- data/lib/us_geo/population.rb +26 -0
- data/lib/us_geo/region.rb +18 -8
- data/lib/us_geo/state.rb +32 -11
- data/lib/us_geo/urban_area.rb +46 -16
- data/lib/us_geo/urban_area_county.rb +4 -21
- data/lib/us_geo/urban_area_county_subdivision.rb +51 -0
- data/lib/us_geo/urban_cluster.rb +1 -5
- data/lib/us_geo/urbanized_area.rb +1 -5
- data/lib/us_geo/version.rb +1 -1
- data/lib/us_geo/zcta.rb +90 -13
- data/lib/us_geo/zcta_county.rb +5 -22
- data/lib/us_geo/zcta_county_subdivision.rb +51 -0
- data/lib/us_geo/zcta_mapping.rb +35 -0
- data/lib/us_geo/zcta_place.rb +5 -12
- data/lib/us_geo/zcta_urban_area.rb +3 -20
- data/lib/us_geo.rb +34 -31
- data/us_geo.gemspec +36 -0
- metadata +127 -132
- data/Gemfile +0 -5
- data/Gemfile.lock +0 -75
- data/Rakefile +0 -18
- data/db/migrate/20190221054490_create_designated_market_areas.rb +0 -16
- data/lib/us_geo/demographics.rb +0 -25
- data/lib/us_geo/designated_market_area.rb +0 -30
- data/spec/spec_helper.rb +0 -22
- data/spec/us_geo/base_record_spec.rb +0 -67
- data/spec/us_geo/combined_statistical_area_spec.rb +0 -33
- data/spec/us_geo/core_based_statistical_area_spec.rb +0 -56
- data/spec/us_geo/county_spec.rb +0 -131
- data/spec/us_geo/county_subdivision_spec.rb +0 -37
- data/spec/us_geo/demographics_spec.rb +0 -19
- data/spec/us_geo/designated_market_area_spec.rb +0 -29
- data/spec/us_geo/division_spec.rb +0 -37
- data/spec/us_geo/metropolitan_division_spec.rb +0 -41
- data/spec/us_geo/place_county_spec.rb +0 -39
- data/spec/us_geo/place_spec.rb +0 -71
- data/spec/us_geo/region_spec.rb +0 -36
- data/spec/us_geo/state_spec.rb +0 -70
- data/spec/us_geo/urban_area_county_spec.rb +0 -82
- data/spec/us_geo/urban_area_spec.rb +0 -98
- data/spec/us_geo/zcta_county_spec.rb +0 -82
- data/spec/us_geo/zcta_place_spec.rb +0 -82
- data/spec/us_geo/zcta_spec.rb +0 -99
- data/spec/us_geo/zcta_urban_area_spec.rb +0 -82
@@ -0,0 +1,84 @@
|
|
1
|
+
<%= breadcrumbs @county_subdivision.name, active: @county_subdivision %>
|
2
|
+
|
3
|
+
<h1><%= @county_subdivision.name %></h1>
|
4
|
+
|
5
|
+
<table class="table table-striped">
|
6
|
+
<tbody>
|
7
|
+
<tr>
|
8
|
+
<th>GEOID</th>
|
9
|
+
<td><%= @county_subdivision.geoid %></td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<th>County</th>
|
13
|
+
<td><%= link_to @county_subdivision.county.name, county_path(@county_subdivision.county, breadcrumb_params) %></td>
|
14
|
+
</tr>
|
15
|
+
<tr>
|
16
|
+
<th>State</th>
|
17
|
+
<td><%= link_to @county_subdivision.state.name, state_path(@county_subdivision.state, breadcrumb_params) %></td>
|
18
|
+
</tr>
|
19
|
+
<tr>
|
20
|
+
<th>FIP Class Code</th>
|
21
|
+
<td><%= @county_subdivision.fips_class_code %></td>
|
22
|
+
</tr>
|
23
|
+
<tr>
|
24
|
+
<th>Time Zone</th>
|
25
|
+
<td><%= @county_subdivision.time_zone_name %></td>
|
26
|
+
</tr>
|
27
|
+
<% if @county_subdivision.combined_statistical_area %>
|
28
|
+
<tr>
|
29
|
+
<th>Combined Statistical Area</th>
|
30
|
+
<td><%= link_to @county_subdivision.combined_statistical_area.name, combined_statistical_area_path(@county_subdivision.combined_statistical_area, breadcrumb_params) %></td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
<% if @county_subdivision.core_based_statistical_area %>
|
34
|
+
<tr>
|
35
|
+
<th>Core Based Statistical Area</th>
|
36
|
+
<td><%= link_to @county_subdivision.core_based_statistical_area.name, core_based_statistical_area_path(@county_subdivision.core_based_statistical_area, breadcrumb_params) %></td>
|
37
|
+
</tr>
|
38
|
+
<% end %>
|
39
|
+
<% if @county_subdivision.metropolitan_division %>
|
40
|
+
<tr>
|
41
|
+
<th>Metropolitan Division</th>
|
42
|
+
<td><%= link_to @county_subdivision.metropolitan_division.name, metropolitan_division_path(@county_subdivision.metropolitan_division, breadcrumb_params) %></td>
|
43
|
+
</tr>
|
44
|
+
<% end %>
|
45
|
+
<tr>
|
46
|
+
<th>Population</th>
|
47
|
+
<td><%= formatted_number(@county_subdivision.population) %></td>
|
48
|
+
</tr>
|
49
|
+
<tr>
|
50
|
+
<th>Population Density</th>
|
51
|
+
<td><%= population_density(@county_subdivision) %></td>
|
52
|
+
</tr>
|
53
|
+
<tr>
|
54
|
+
<th>Housing Units</th>
|
55
|
+
<td><%= formatted_number(@county_subdivision.housing_units) %></td>
|
56
|
+
</tr>
|
57
|
+
<tr>
|
58
|
+
<th>Land Area (mi<sup>2</sup>)</th>
|
59
|
+
<td><%= formatted_number(@county_subdivision.land_area, round: 0) %></td>
|
60
|
+
</tr>
|
61
|
+
<tr>
|
62
|
+
<th>Water Area (mi<sup>2</sup>)</th>
|
63
|
+
<td><%= formatted_number(@county_subdivision.water_area, round: 0) %></td>
|
64
|
+
</tr>
|
65
|
+
<tr>
|
66
|
+
<th>Coordinates</th>
|
67
|
+
<td><%= google_maps_link(@county_subdivision) %></td>
|
68
|
+
</tr>
|
69
|
+
</tbody>
|
70
|
+
</table>
|
71
|
+
|
72
|
+
<% if @county_subdivision.urban_areas.present? %>
|
73
|
+
<br>
|
74
|
+
|
75
|
+
<h2><%= pluralize(@county_subdivision.urban_areas.count, "Urban Area") %></h2>
|
76
|
+
|
77
|
+
<%= render "urban_areas/table", urban_areas: @county_subdivision.urban_areas, county_subdivision: @county_subdivision %>
|
78
|
+
<% end %>
|
79
|
+
|
80
|
+
<br>
|
81
|
+
|
82
|
+
<h2><%= pluralize(@county_subdivision.zctas.count, "ZIP Code Tabulation Area") %></h2>
|
83
|
+
|
84
|
+
<%= render "zctas/table", zctas: @county_subdivision.zctas, county_subdivision: @county_subdivision %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<table class="table table-striped sortable">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th>ID</th>
|
5
|
+
<th>Name</th>
|
6
|
+
<% unless defined?(region) && region %>
|
7
|
+
<th>Region</th>
|
8
|
+
<% end %>
|
9
|
+
<%= demographics_headers %>
|
10
|
+
</th>
|
11
|
+
</thead>
|
12
|
+
<tbody>
|
13
|
+
<% divisions.each do |division| %>
|
14
|
+
<tr>
|
15
|
+
<td><%= division.id %></td>
|
16
|
+
<td><%= link_to division.name, division_path(division, breadcrumb_params) %></td>
|
17
|
+
<% unless defined?(region) && region %>
|
18
|
+
<td><%= link_to division.region.name, region_path(division.region, breadcrumb_params) %></td>
|
19
|
+
<% end %>
|
20
|
+
<%= demographics_cells(division, round_area: 0) %>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</tbody>
|
24
|
+
</table>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<ul>
|
2
|
+
<li>
|
3
|
+
<%= link_to "Regions", regions_path %>
|
4
|
+
</li>
|
5
|
+
<li>
|
6
|
+
<%= link_to "Divisions", divisions_path %>
|
7
|
+
</li>
|
8
|
+
<li>
|
9
|
+
<%= link_to "States", states_path %>
|
10
|
+
</li>
|
11
|
+
<li>
|
12
|
+
<%= link_to "Combined Statistical Areas", combined_statistical_areas_path %>
|
13
|
+
</li>
|
14
|
+
<li>
|
15
|
+
<%= link_to "Core Based Statistical Areas", core_based_statistical_areas_path %>
|
16
|
+
</li>
|
17
|
+
<li>
|
18
|
+
<%= link_to "Metropolitan Divisions", metropolitan_divisions_path %>
|
19
|
+
</li>
|
20
|
+
<li>
|
21
|
+
<%= link_to "Urban Areas", urban_areas_path %>
|
22
|
+
</li>
|
23
|
+
</ul>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<title>U.S. Geo Data</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<%= csrf_meta_tags %>
|
7
|
+
<%= csp_meta_tag %>
|
8
|
+
|
9
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
10
|
+
|
11
|
+
<link href="https://cdn.jsdelivr.net/gh/tofsjonas/sortable@latest/sortable.min.css" rel="stylesheet" />
|
12
|
+
<script src="https://cdn.jsdelivr.net/gh/tofsjonas/sortable@latest/sortable.min.js"></script>
|
13
|
+
|
14
|
+
<style type="text/css">
|
15
|
+
.sortable th {
|
16
|
+
white-space: normal;
|
17
|
+
}
|
18
|
+
</style>
|
19
|
+
|
20
|
+
<%= stylesheet_link_tag "application" %>
|
21
|
+
</head>
|
22
|
+
|
23
|
+
<body>
|
24
|
+
<nav class="navbar navbar-light bg-light">
|
25
|
+
<div class="container-fluid">
|
26
|
+
<%= link_to "U.S. Geo Data", root_path, class: "navbar-brand mb-0 h1" %>
|
27
|
+
</div>
|
28
|
+
</nav>
|
29
|
+
|
30
|
+
<div class="container-fluid">
|
31
|
+
<%= yield %>
|
32
|
+
</div>
|
33
|
+
</body>
|
34
|
+
</html>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<table class="table table-striped sortable">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th>GEOID</th>
|
5
|
+
<th>Name</th>
|
6
|
+
<% unless defined?(core_based_statistical_area) && core_based_statistical_area %>
|
7
|
+
<th>Core Based Statistical Area</th>
|
8
|
+
<% end %>
|
9
|
+
<% unless defined?(combined_statistical_area) && combined_statistical_area %>
|
10
|
+
<th>Combined Statistical Area</th>
|
11
|
+
<% end %>
|
12
|
+
<%= demographics_headers %>
|
13
|
+
</th>
|
14
|
+
</thead>
|
15
|
+
<tbody>
|
16
|
+
<% metropolitan_divisions.each do |metropolitan_division| %>
|
17
|
+
<tr>
|
18
|
+
<td><%= metropolitan_division.geoid %></td>
|
19
|
+
<td><%= link_to metropolitan_division.name, metropolitan_division_path(metropolitan_division, breadcrumb_params) %></td>
|
20
|
+
<% unless defined?(core_based_statistical_area) && core_based_statistical_area %>
|
21
|
+
<td>
|
22
|
+
<% if metropolitan_division.core_based_statistical_area %>
|
23
|
+
<%= link_to metropolitan_division.core_based_statistical_area.name, core_based_statistical_area_path(metropolitan_division.core_based_statistical_area, breadcrumb_params) %>
|
24
|
+
<% else %>
|
25
|
+
-
|
26
|
+
<% end %>
|
27
|
+
</td>
|
28
|
+
<% end %>
|
29
|
+
<% unless defined?(combined_statistical_area) && combined_statistical_area %>
|
30
|
+
<td>
|
31
|
+
<% if metropolitan_division.combined_statistical_area %>
|
32
|
+
<%= link_to metropolitan_division.combined_statistical_area.name, combined_statistical_area_path(metropolitan_division.combined_statistical_area) %>
|
33
|
+
<% else %>
|
34
|
+
-
|
35
|
+
<% end %>
|
36
|
+
</td>
|
37
|
+
<% end %>
|
38
|
+
<%= demographics_cells(metropolitan_division, round_area: 0) %>
|
39
|
+
</tr>
|
40
|
+
<% end %>
|
41
|
+
</tbody>
|
42
|
+
</table>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
<h1>
|
3
|
+
<%= pluralize @metropolitan_divisions.size, "Metropolitan Division" %>
|
4
|
+
</h1>
|
5
|
+
|
6
|
+
<%= breadcrumbs "Metropolitan Divisions" %>
|
7
|
+
|
8
|
+
<%= render "table", metropolitan_divisions: @metropolitan_divisions, core_based_statistical_area: @core_based_statistical_area, combined_statistical_area: @combined_statistical_area %>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<%= breadcrumbs @metropolitan_division.name, active: @metropolitan_division %>
|
2
|
+
|
3
|
+
<h1><%= @metropolitan_division.name %></h1>
|
4
|
+
|
5
|
+
<table class="table table-striped">
|
6
|
+
<tbody>
|
7
|
+
<tr>
|
8
|
+
<th>GEOID</th>
|
9
|
+
<td><%= @metropolitan_division.geoid %></td>
|
10
|
+
</tr>
|
11
|
+
<% if @metropolitan_division.combined_statistical_area %>
|
12
|
+
<tr>
|
13
|
+
<th>Combined Statistical Area</th>
|
14
|
+
<td><%= link_to @metropolitan_division.combined_statistical_area.name, combined_statistical_area_path(@metropolitan_division.combined_statistical_area) %></td>
|
15
|
+
</tr>
|
16
|
+
<% end %>
|
17
|
+
<% if @metropolitan_division.core_based_statistical_area %>
|
18
|
+
<tr>
|
19
|
+
<th>Core Based Statistical Area</th>
|
20
|
+
<td><%= link_to @metropolitan_division.core_based_statistical_area.name, core_based_statistical_area_path(@metropolitan_division.core_based_statistical_area) %></td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
<tr>
|
24
|
+
<th>Population</th>
|
25
|
+
<td><%= formatted_number(@metropolitan_division.population) %></td>
|
26
|
+
</tr>
|
27
|
+
<tr>
|
28
|
+
<th>Housing Units</th>
|
29
|
+
<td><%= formatted_number(@metropolitan_division.housing_units) %></td>
|
30
|
+
</tr>
|
31
|
+
<tr>
|
32
|
+
<th>Land Area (mi<sup>2</sup>)</th>
|
33
|
+
<td><%= formatted_number(@metropolitan_division.land_area, round: 0) %></td>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<th>Water Area (mi<sup>2</sup>)</th>
|
37
|
+
<td><%= formatted_number(@metropolitan_division.water_area, round: 0) %></td>
|
38
|
+
</tr>
|
39
|
+
</tbody>
|
40
|
+
</table>
|
41
|
+
|
42
|
+
<br>
|
43
|
+
|
44
|
+
<h2><%= pluralize(@metropolitan_division.counties.count, "County") %></h2>
|
45
|
+
|
46
|
+
<%= render "counties/table", counties: @metropolitan_division.counties, metropolitan_division: @metropolitan_division %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<%
|
2
|
+
zcta ||= nil
|
3
|
+
overlap = (zcta)
|
4
|
+
%>
|
5
|
+
|
6
|
+
<table class="table table-striped sortable">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>GEOID</th>
|
10
|
+
<th>Name</th>
|
11
|
+
<th>Primary County</th>
|
12
|
+
<th>FIPS Class Code</th>
|
13
|
+
|
14
|
+
<%= demographics_headers %>
|
15
|
+
|
16
|
+
<% if overlap %>
|
17
|
+
<th class="text-end">Overlap</th>
|
18
|
+
<% end %>
|
19
|
+
</th>
|
20
|
+
</thead>
|
21
|
+
<tbody>
|
22
|
+
<% places.each do |place| %>
|
23
|
+
<tr>
|
24
|
+
<td><%= place.geoid %></td>
|
25
|
+
<td><%= link_to place.name, place_path(place, breadcrumb_params) %></td>
|
26
|
+
<td>
|
27
|
+
<% if place.primary_county %>
|
28
|
+
<%= link_to place.primary_county.full_name, county_path(place.primary_county, breadcrumb_params) %>
|
29
|
+
<% else %>
|
30
|
+
-
|
31
|
+
<% end %>
|
32
|
+
</td>
|
33
|
+
<td><%= place.fips_class_code %></td>
|
34
|
+
|
35
|
+
<%= demographics_cells(place, round_area: 1) %>
|
36
|
+
|
37
|
+
<% if overlap %>
|
38
|
+
<td class="text-end">
|
39
|
+
<% if zcta %>
|
40
|
+
<%= overlap_percentage(zcta, place, :zcta_places) %>
|
41
|
+
<% end %>
|
42
|
+
</td>
|
43
|
+
<% end %>
|
44
|
+
</tr>
|
45
|
+
<% end %>
|
46
|
+
</tbody>
|
47
|
+
</table>
|
@@ -0,0 +1,92 @@
|
|
1
|
+
<%= breadcrumbs @place.full_name, active: @place %>
|
2
|
+
|
3
|
+
<h1><%= @place.name %></h1>
|
4
|
+
|
5
|
+
<table class="table table-striped">
|
6
|
+
<tbody>
|
7
|
+
<tr>
|
8
|
+
<th>GEOID</th>
|
9
|
+
<td><%= @place.geoid %></td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<th>Short Name</th>
|
13
|
+
<td><%= @place.short_name %></td>
|
14
|
+
</tr>
|
15
|
+
<% if @place.primary_county %>
|
16
|
+
<tr>
|
17
|
+
<th>Primary County</th>
|
18
|
+
<td><%= link_to @place.primary_county.full_name, county_path(@place.primary_county, breadcrumb_params) %></td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
<% if @place.urban_area %>
|
22
|
+
<tr>
|
23
|
+
<th>Urban Area</th>
|
24
|
+
<td><%= link_to @place.urban_area.name, urban_area_path(@place.urban_area, breadcrumb_params) %></td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
<tr>
|
28
|
+
<th>State</th>
|
29
|
+
<td><%= link_to @place.state.name, state_path(@place.state, breadcrumb_params) %></td>
|
30
|
+
</tr>
|
31
|
+
<tr>
|
32
|
+
<th>FIP Class Code</th>
|
33
|
+
<td><%= @place.fips_class_code %></td>
|
34
|
+
</tr>
|
35
|
+
<% if @place.combined_statistical_area %>
|
36
|
+
<tr>
|
37
|
+
<th>Combined Statistical Area</th>
|
38
|
+
<td><%= link_to @place.combined_statistical_area.name, combined_statistical_area_path(@place.combined_statistical_area, breadcrumb_params) %></td>
|
39
|
+
</tr>
|
40
|
+
<% end %>
|
41
|
+
<% if @place.core_based_statistical_area %>
|
42
|
+
<tr>
|
43
|
+
<th>Core Based Statistical Area</th>
|
44
|
+
<td><%= link_to @place.core_based_statistical_area.name, core_based_statistical_area_path(@place.core_based_statistical_area, breadcrumb_params) %></td>
|
45
|
+
</tr>
|
46
|
+
<% end %>
|
47
|
+
<% if @place.metropolitan_division %>
|
48
|
+
<tr>
|
49
|
+
<th>Metropolitan Division</th>
|
50
|
+
<td><%= link_to @place.metropolitan_division.name, metropolitan_division_path(@place.metropolitan_division, breadcrumb_params) %></td>
|
51
|
+
</tr>
|
52
|
+
<% end %>
|
53
|
+
<tr>
|
54
|
+
<th>Population</th>
|
55
|
+
<td><%= formatted_number(@place.population) %></td>
|
56
|
+
</tr>
|
57
|
+
<tr>
|
58
|
+
<th>Population Density</th>
|
59
|
+
<td><%= population_density(@place) %></td>
|
60
|
+
</tr>
|
61
|
+
<tr>
|
62
|
+
<th>Housing Units</th>
|
63
|
+
<td><%= formatted_number(@place.housing_units) %></td>
|
64
|
+
</tr>
|
65
|
+
<tr>
|
66
|
+
<th>Land Area (mi<sup>2</sup>)</th>
|
67
|
+
<td><%= formatted_number(@place.land_area, round: 0) %></td>
|
68
|
+
</tr>
|
69
|
+
<tr>
|
70
|
+
<th>Water Area (mi<sup>2</sup>)</th>
|
71
|
+
<td><%= formatted_number(@place.water_area, round: 0) %></td>
|
72
|
+
</tr>
|
73
|
+
<tr>
|
74
|
+
<th>Coordinates</th>
|
75
|
+
<td><%= google_maps_link(@place) %></td>
|
76
|
+
</tr>
|
77
|
+
</tbody>
|
78
|
+
</table>
|
79
|
+
|
80
|
+
<% if @place.counties.size > 1 %>
|
81
|
+
<br>
|
82
|
+
|
83
|
+
<h2><%= pluralize(@place.counties.count, "County") %></h2>
|
84
|
+
|
85
|
+
<%= render "counties/table", counties: @place.counties, place: @place %>
|
86
|
+
<% end %>
|
87
|
+
|
88
|
+
<br>
|
89
|
+
|
90
|
+
<h2><%= pluralize(@place.zctas.count, "ZIP Code Tabulation Area") %></h2>
|
91
|
+
|
92
|
+
<%= render "zctas/table", zctas: @place.zctas, place: @place %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<table class="table table-striped sortable">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th>ID</th>
|
5
|
+
<th>Name</th>
|
6
|
+
<%= demographics_headers %>
|
7
|
+
</th>
|
8
|
+
</thead>
|
9
|
+
<tbody>
|
10
|
+
<% regions.each do |region| %>
|
11
|
+
<tr>
|
12
|
+
<td><%= region.id %></td>
|
13
|
+
<td><%= link_to region.name, region_path(region, breadcrumb_params) %></td>
|
14
|
+
<%= demographics_cells(region, round_area: 0) %>
|
15
|
+
</tr>
|
16
|
+
<% end %>
|
17
|
+
</tbody>
|
18
|
+
</table>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<nav aria-label="breadcrumb">
|
2
|
+
<ol class="breadcrumb mt-2">
|
3
|
+
<% links.each do |label, url| %>
|
4
|
+
<li class="breadcrumb-item">
|
5
|
+
<%= link_to label, url %>
|
6
|
+
</li>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<li class="breadcrumb-item active" aria-current="page"">
|
10
|
+
<%= active_label %>
|
11
|
+
</li>
|
12
|
+
</ol>
|
13
|
+
</nav>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<%= content_tag(:td, (entity.population ? formatted_number(entity.population) : "-"), class: "text-end", data: {sort: entity.population.to_i}) %>
|
2
|
+
<%= content_tag(:td, population_density(entity), class: "text-end", data: {sort: entity.population_density.to_f}) %>
|
3
|
+
<%= content_tag(:td, (entity.housing_units ? formatted_number(entity.housing_units) : "-"), class: "text-end", data: {sort: entity.housing_units.to_i}) %>
|
4
|
+
<%= content_tag(:td, (entity.land_area ? formatted_number(entity.land_area, round: round_area) : "-"), class: "text-end", data: {sort: entity.land_area.to_i}) %>
|
5
|
+
<%= content_tag(:td, (entity.water_area ? formatted_number(entity.water_area, round: round_area) : "-"), class: "text-end", data: {sort: entity.water_area.to_i}) %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<table class="table table-striped sortable">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th>Code</th>
|
5
|
+
<th>Name</th>
|
6
|
+
<% unless defined?(division) && division %>
|
7
|
+
<th>Region</th>
|
8
|
+
<th>Division</th>
|
9
|
+
<% end %>
|
10
|
+
<%= demographics_headers %>
|
11
|
+
</th>
|
12
|
+
</thead>
|
13
|
+
<tbody>
|
14
|
+
<% states.each do |state| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= state.code %></td>
|
17
|
+
<td><%= link_to state.name, state_path(state, breadcrumb_params) %></td>
|
18
|
+
<% unless defined?(division) && division %>
|
19
|
+
<% if state.division %>
|
20
|
+
<td><%= link_to state.division.region.name, region_path(state.division.region) %></td>
|
21
|
+
<td><%= link_to state.division.name, division_path(state.division) %></td>
|
22
|
+
<% else %>
|
23
|
+
<td>-</td>
|
24
|
+
<td>-</td>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<%= demographics_cells(state, round_area: 0) %>
|
28
|
+
</tr>
|
29
|
+
<% end %>
|
30
|
+
</tbody>
|
31
|
+
</table>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<%= breadcrumbs @state.name, active: @state %>
|
2
|
+
|
3
|
+
<h1><%= @state.name %></h1>
|
4
|
+
|
5
|
+
<table class="table table-striped">
|
6
|
+
<tbody>
|
7
|
+
<tr>
|
8
|
+
<th>Code</th>
|
9
|
+
<td><%= @state.code %></td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<th>FIPS ID</th>
|
13
|
+
<td><%= @state.fips %></td>
|
14
|
+
</tr>
|
15
|
+
<tr>
|
16
|
+
<th>Type</th>
|
17
|
+
<td><%= @state.type %></td>
|
18
|
+
</tr>
|
19
|
+
<% if @state.region %>
|
20
|
+
<tr>
|
21
|
+
<th>Region</th>
|
22
|
+
<td><%= link_to @state.region.name, region_path(@state.region) %></td>
|
23
|
+
</tr>
|
24
|
+
<% end %>
|
25
|
+
<% if @state.division %>
|
26
|
+
<tr>
|
27
|
+
<th>Division</th>
|
28
|
+
<td><%= link_to @state.division.name, division_path(@state.division) %></td>
|
29
|
+
</tr>
|
30
|
+
<% end %>
|
31
|
+
<tr>
|
32
|
+
<th>Population</th>
|
33
|
+
<td><%= formatted_number(@state.population) %></td>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<th>Housing Units</th>
|
37
|
+
<td><%= formatted_number(@state.housing_units) %></td>
|
38
|
+
</tr>
|
39
|
+
<tr>
|
40
|
+
<th>Land Area (mi<sup>2</sup>)</th>
|
41
|
+
<td><%= formatted_number(@state.land_area, round: 0) %></td>
|
42
|
+
</tr>
|
43
|
+
<tr>
|
44
|
+
<th>Water Area (mi<sup>2</sup>)</th>
|
45
|
+
<td><%= formatted_number(@state.water_area, round: 0) %></td>
|
46
|
+
</tr>
|
47
|
+
</tbody>
|
48
|
+
</table>
|
49
|
+
|
50
|
+
<br>
|
51
|
+
|
52
|
+
<h2><%= pluralize(@state.counties.count, "County") %></h2>
|
53
|
+
|
54
|
+
<%= render "counties/table", counties: @state.counties, state: @state %>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<%
|
2
|
+
county ||= nil
|
3
|
+
county_subdivision ||= nil
|
4
|
+
zcta ||= nil
|
5
|
+
overlap = (county || county_subdivision || zcta)
|
6
|
+
%>
|
7
|
+
|
8
|
+
<table class="table table-striped sortable">
|
9
|
+
<thead>
|
10
|
+
<tr>
|
11
|
+
<th>GEOID</th>
|
12
|
+
<th>Name</th>
|
13
|
+
<th>Type</th>
|
14
|
+
|
15
|
+
<%= demographics_headers %>
|
16
|
+
|
17
|
+
<% if overlap %>
|
18
|
+
<th class="text-end">Overlap</th>
|
19
|
+
<% end %>
|
20
|
+
</th>
|
21
|
+
</thead>
|
22
|
+
<tbody>
|
23
|
+
<% urban_areas.each do |urban_area| %>
|
24
|
+
<tr>
|
25
|
+
<td><%= urban_area.geoid %></td>
|
26
|
+
<td><%= link_to urban_area.name, urban_area_path(urban_area, breadcrumb_params) %></td>
|
27
|
+
<td><%= urban_area.urbanized? ? "Urbanized Area" : "Urban Cluster" %></td>
|
28
|
+
|
29
|
+
<%= demographics_cells(urban_area, round_area: 0) %>
|
30
|
+
|
31
|
+
<% if overlap %>
|
32
|
+
<td class="text-end">
|
33
|
+
<% if county %>
|
34
|
+
<%= overlap_percentage(county, urban_area, :urban_area_counties) %>
|
35
|
+
<% elsif county_subdivision %>
|
36
|
+
<%= overlap_percentage(county_subdivision, urban_area, :urban_area_county_subdivisions) %>
|
37
|
+
<% elsif zcta %>
|
38
|
+
<%= overlap_percentage(zcta, urban_area, :zcta_urban_areas) %>
|
39
|
+
<% end %>
|
40
|
+
</td>
|
41
|
+
<% end %>
|
42
|
+
</tr>
|
43
|
+
<% end %>
|
44
|
+
</tbody>
|
45
|
+
</table>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= breadcrumbs "Urban Areas" %>
|
2
|
+
|
3
|
+
<ul class="nav nav-tabs">
|
4
|
+
<li class="nav-item">
|
5
|
+
<%= link_to "All", urban_areas_path(breadcrumb_params.merge(tab: nil)), class: "nav-link #{'active' if @tab.blank?}" %>
|
6
|
+
</li>
|
7
|
+
<li class="nav-item">
|
8
|
+
<%= link_to "Urbanized Areas", urban_areas_path(breadcrumb_params.merge(tab: "urbanized")), class: "nav-link #{'active' if @tab == 'metropolitan'}" %>
|
9
|
+
</li>
|
10
|
+
<li class="nav-item">
|
11
|
+
<%= link_to "Urban Cluster", urban_areas_path(breadcrumb_params.merge(tab: "cluster")), class: "nav-link #{'active' if @tab == 'micropolitan'}" %>
|
12
|
+
</li>
|
13
|
+
</ul>
|
14
|
+
|
15
|
+
<h1>
|
16
|
+
<%= pluralize @urban_areas.size, "Urban Area" %>
|
17
|
+
</h1>
|
18
|
+
|
19
|
+
<%= render "table", urban_areas: @urban_areas %>
|