@@ -123,13 +123,15 @@ let originParam = LODES_ORIGIN,
123123 jobSegmentParam = LODES_JOB_SEGMENT ,
124124 yearParam = LODES_YEAR ,
125125 geographyParam = LODES_GEOGRAPHY ,
126- idParam = null ;
126+ idParam = null ,
127+ countySubdivisionIdParam = null ;
127128
128129let validOrigin = true ,
129130 validJobSegment = true ,
130131 validYear = true ,
131132 validGeography = true ,
132- validId = true ;
133+ validId = true ,
134+ validCountySubdivisionId = true ;
133135
134136const getTilesUrl = function getTilesUrl ( {
135137 year = LODES_YEAR ,
@@ -317,9 +319,11 @@ class ColorScale {
317319 getLabelsForGeography ( geography ) {
318320 switch ( geography ) {
319321 case "county" :
320- return [ "1" , "2-100" , "101-1,000" , "1,001-10,000" , "10,000+" ] ;
322+ return [ "1" , "2-100" , "101-1,000" , "1,001-9,999" , "10,000+" ] ;
323+ case "county_subdivision" :
324+ return [ "1" , "2-50" , "51-150" , "150-499" , "500+" ] ;
321325 default :
322- return [ "1" , "2-10" , "11-20" , "21-30 " , "30+" ] ;
326+ return [ "1" , "2-10" , "11-20" , "21-29 " , "30+" ] ;
323327 }
324328 }
325329
@@ -543,6 +547,17 @@ class Map {
543547 { layers : [ `geo_fill_${ geographyParam } ` ] }
544548 ) ;
545549
550+ const [ couSubFeature ] = this . map . queryRenderedFeatures (
551+ feat . point ,
552+ { layers : [ `geo_fill_county_subdivision` ] }
553+ ) ;
554+
555+ if ( couSubFeature ) {
556+ countySubdivisionIdParam = couSubFeature ?. properties . id
557+ validCountySubdivisionId = validIdInput ( countySubdivisionIdParam ) ;
558+ setUrlParam ( "countySubdivisionId" , countySubdivisionIdParam ) ;
559+ }
560+
546561 if ( geometryFeature ) {
547562 this . updateSelectedFeature ( geometryFeature . properties . id )
548563 }
@@ -950,12 +965,17 @@ class ParquetProcessor {
950965 setUrlParam ( "origin" , originParam ) ;
951966
952967 idParam = urlParams . get ( "id" ) ;
968+ countySubdivisionIdParam = urlParams . get ( "countySubdivisionId" ) ;
953969 validId = validIdInput ( idParam ) ;
970+ validCountySubdivisionId = validIdInput ( countySubdivisionIdParam ) ;
954971
955- if ( idParam && validId ) {
972+ const valid = geographyParam == "county_subdivision" ? countySubdivisionIdParam && validCountySubdivisionId : idParam && validId
973+
974+ if ( valid ) {
975+ const id = geographyParam == "county_subdivision" ? countySubdivisionIdParam : idParam
956976 await processor . runQuery (
957977 map , originParam , jobSegmentParam , yearParam , geographyParam ,
958- idParam . substring ( 0 , 2 ) , idParam
978+ idParam . substring ( 0 , 2 ) , id
959979 ) ;
960980
961981 if ( map . hoveredPolygonId [ geographyParam ] ) {
@@ -975,12 +995,17 @@ class ParquetProcessor {
975995 setUrlParam ( "jobSegment" , jobSegmentParam ) ;
976996
977997 idParam = urlParams . get ( "id" ) ;
998+ countySubdivisionIdParam = urlParams . get ( "countySubdivisionId" ) ;
978999 validId = validIdInput ( idParam ) ;
1000+ validCountySubdivisionId = validIdInput ( countySubdivisionIdParam ) ;
1001+
1002+ const valid = geographyParam == "county_subdivision" ? countySubdivisionIdParam && validCountySubdivisionId : idParam && validId
9791003
980- if ( idParam && validId ) {
1004+ if ( valid ) {
1005+ const id = geographyParam == "county_subdivision" ? countySubdivisionIdParam : idParam ;
9811006 await processor . runQuery (
9821007 map , originParam , jobSegmentParam , yearParam , geographyParam ,
983- idParam . substring ( 0 , 2 ) , idParam
1008+ idParam . substring ( 0 , 2 ) , id
9841009 ) ;
9851010
9861011 if ( map . hoveredPolygonId [ geographyParam ] ) {
@@ -1002,12 +1027,17 @@ class ParquetProcessor {
10021027 setUrlParam ( "geography" , geographyParam ) ;
10031028
10041029 idParam = urlParams . get ( "id" ) ;
1030+ countySubdivisionIdParam = urlParams . get ( "countySubdivisionId" ) ;
10051031 validId = validIdInput ( idParam ) ;
1032+ validCountySubdivisionId = validIdInput ( countySubdivisionIdParam ) ;
1033+
1034+ const valid = geographyParam == "county_subdivision" ? countySubdivisionIdParam && validCountySubdivisionId : idParam && validId
10061035
1007- if ( idParam && validId ) {
1036+ if ( valid ) {
1037+ const id = geographyParam == "county_subdivision" ? countySubdivisionIdParam : idParam ;
10081038 await processor . runQuery (
10091039 map , originParam , jobSegmentParam , yearParam , geographyParam ,
1010- idParam . substring ( 0 , 2 ) , idParam
1040+ idParam . substring ( 0 , 2 ) , id
10111041 ) ;
10121042
10131043 if ( map . hoveredPolygonId [ geographyParam ] ) {
@@ -1027,12 +1057,17 @@ class ParquetProcessor {
10271057 setUrlParam ( "year" , yearParam ) ;
10281058
10291059 idParam = urlParams . get ( "id" ) ;
1060+ countySubdivisionIdParam = urlParams . get ( "countySubdivisionId" ) ;
10301061 validId = validIdInput ( idParam ) ;
1062+ validCountySubdivisionId = validIdInput ( countySubdivisionIdParam ) ;
10311063
1032- if ( idParam && validId ) {
1064+ const valid = geographyParam == "county_subdivision" ? countySubdivisionIdParam && validCountySubdivisionId : idParam && validId
1065+
1066+ if ( valid ) {
1067+ const id = geographyParam == "county_subdivision" ? countySubdivisionIdParam : idParam ;
10331068 await processor . runQuery (
10341069 map , originParam , jobSegmentParam , yearParam , geographyParam ,
1035- idParam . substring ( 0 , 2 ) , idParam
1070+ idParam . substring ( 0 , 2 ) , id
10361071 ) ;
10371072
10381073 if ( map . hoveredPolygonId [ geographyParam ] ) {
@@ -1067,16 +1102,22 @@ class ParquetProcessor {
10671102
10681103 if ( validOrigin && validYear && validGeography ) {
10691104 idParam = urlParams . get ( "id" ) ;
1105+ countySubdivisionIdParam = urlParams . get ( "countySubdivisionId" ) ;
10701106 validId = validIdInput ( idParam ) ;
1107+ validCountySubdivisionId = validIdInput ( countySubdivisionIdParam ) ;
1108+
10711109 document . getElementById ( "year" ) . value = yearParam ;
10721110
1073- if ( idParam && validId ) {
1111+ const valid = geographyParam == "county_subdivision" ? countySubdivisionIdParam && validCountySubdivisionId : idParam && validId
1112+
1113+ if ( valid ) {
1114+ const id = geographyParam == "county_subdivision" ? countySubdivisionIdParam : idParam
10741115 await processor . runQuery (
10751116 map , originParam , jobSegmentParam , yearParam , geographyParam ,
1076- idParam . substring ( 0 , 2 ) , idParam
1117+ idParam . substring ( 0 , 2 ) , id
10771118 ) ;
10781119
1079- const truncId = map . truncateId ( geographyParam , idParam )
1120+ const truncId = map . truncateId ( geographyParam , id )
10801121 map . updateGeoIdDisplay ( idParam , map . processor . previousResults [ geographyParam ] [ truncId ] ?. count )
10811122 }
10821123 }
0 commit comments