summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Garrett <jeff@jgarrett.org>2008-01-25 04:21:36 -0600
committerJeff Garrett <jeff@jgarrett.org>2008-01-25 04:21:36 -0600
commit6c3f1409cb62ac354307184196cd7a4de1887280 (patch)
tree1af8abd1000ff931c42e1cf83edd282916ade387
parentc11e2a2b9a5d387f778ba99106e8980e31059357 (diff)
TIGER import dialog
-rw-r--r--data/Makefile.am2
-rw-r--r--data/roadster.glade208
-rw-r--r--data/tiger-counties.txt3143
-rw-r--r--src/Makefile.am3
-rw-r--r--src/import.c12
-rw-r--r--src/tiger.c38
-rw-r--r--src/tiger.h7
-rw-r--r--src/tiger_dialog.c161
-rw-r--r--src/tiger_dialog.h35
9 files changed, 3601 insertions, 8 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
index 1dcec6c..027719b 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -15,7 +15,7 @@ styledir = $(pkgdatadir)
style_DATA = layers.xml search-result-type-city.svg search-result-type-road.svg
tigerdir = $(pkgdatadir)
-tiger_DATA = tiger-states.txt
+tiger_DATA = tiger-states.txt tiger-counties.txt
install-data-local:
diff --git a/data/roadster.glade b/data/roadster.glade
index 808eac1..10e3584 100644
--- a/data/roadster.glade
+++ b/data/roadster.glade
@@ -1468,6 +1468,21 @@ Notes:</property>
<widget class="GtkMenu" id="filemenuitem_menu">
<child>
+ <widget class="GtkMenuItem" id="importmenuitem">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Import _U.S. Maps...</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="tiger_dialog_menushow" object="tigerimportwindow"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+
+ <child>
<widget class="GtkImageMenuItem" id="import_points">
<property name="sensitive">False</property>
<property name="label" translatable="yes">Import _Places...</property>
@@ -6261,4 +6276,197 @@ review</property>
</child>
</widget>
+<widget class="GtkDialog" id="tigerimportwindow">
+ <property name="title" translatable="yes">Import U.S. Maps...</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">True</property>
+ <signal name="response" handler="tiger_dialog_import" object="treeview_county"/>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="cancelbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-6</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="okbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-5</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox8935">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment109">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">12</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox108">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkImage" id="image10377">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-info</property>
+ <property name="icon_size">6</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label92406">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Please choose the counties below whose maps you would like to import...</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combobox_state">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="tiger_dialog_selectstate" object="treeview_county"/>
+ <signal name="realize" handler="tiger_dialog_comboinit" last_modification_time="Mon, 10 Sep 2007 06:44:43 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow9251">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <widget class="GtkTreeView" id="treeview_county">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">True</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">True</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
</glade-interface>
diff --git a/data/tiger-counties.txt b/data/tiger-counties.txt
new file mode 100644
index 0000000..b9ccbc1
--- /dev/null
+++ b/data/tiger-counties.txt
@@ -0,0 +1,3143 @@
+01001 AL Autauga
+01003 AL Baldwin
+01005 AL Barbour
+01007 AL Bibb
+01009 AL Blount
+01011 AL Bullock
+01013 AL Butler
+01015 AL Calhoun
+01017 AL Chambers
+01019 AL Cherokee
+01021 AL Chilton
+01023 AL Choctaw
+01025 AL Clarke
+01027 AL Clay
+01029 AL Cleburne
+01031 AL Coffee
+01033 AL Colbert
+01035 AL Conecuh
+01037 AL Coosa
+01039 AL Covington
+01041 AL Crenshaw
+01043 AL Cullman
+01045 AL Dale
+01047 AL Dallas
+01049 AL De Kalb
+01051 AL Elmore
+01053 AL Escambia
+01055 AL Etowah
+01057 AL Fayette
+01059 AL Franklin
+01061 AL Geneva
+01063 AL Greene
+01065 AL Hale
+01067 AL Henry
+01069 AL Houston
+01071 AL Jackson
+01073 AL Jefferson
+01075 AL Lamar
+01077 AL Lauderdale
+01079 AL Lawrence
+01081 AL Lee
+01083 AL Limestone
+01085 AL Lowndes
+01087 AL Macon
+01089 AL Madison
+01091 AL Marengo
+01093 AL Marion
+01095 AL Marshall
+01097 AL Mobile
+01099 AL Monroe
+01101 AL Montgomery
+01103 AL Morgan
+01105 AL Perry
+01107 AL Pickens
+01109 AL Pike
+01111 AL Randolph
+01113 AL Russell
+01115 AL St. Clair
+01117 AL Shelby
+01119 AL Sumter
+01121 AL Talladega
+01123 AL Tallapoosa
+01125 AL Tuscaloosa
+01127 AL Walker
+01129 AL Washington
+01131 AL Wilcox
+01133 AL Winston
+02013 AK Aleutians East
+02016 AK Aleutians West
+02020 AK Anchorage
+02050 AK Bethel
+02060 AK Bristol Bay
+02068 AK Denali
+02070 AK Dillingham
+02090 AK Fairbanks North Star
+02100 AK Haines
+02110 AK Juneau
+02122 AK Kenai Peninsula
+02130 AK Ketchikan Gateway
+02150 AK Kodiak Island
+02164 AK Lake and Peninsula
+02170 AK Matanuska-Susitna
+02180 AK Nome
+02185 AK North Slope
+02188 AK Northwest Arctic
+02201 AK Prince of Wales-Outer Ketchikan
+02220 AK Sitka
+02232 AK Skagway-Hoonah-Angoon
+02240 AK Southeast Fairbanks
+02261 AK Valdez-Cordova
+02270 AK Wade Hampton
+02280 AK Wrangell-Petersburg
+02282 AK Yakutat
+02290 AK Yukon-Koyukuk
+04001 AZ Apache
+04003 AZ Cochise
+04005 AZ Coconino
+04007 AZ Gila
+04009 AZ Graham
+04011 AZ Greenlee
+04012 AZ La Paz
+04013 AZ Maricopa
+04015 AZ Mohave
+04017 AZ Navajo
+04019 AZ Pima
+04021 AZ Pinal
+04023 AZ Santa Cruz
+04025 AZ Yavapai
+04027 AZ Yuma
+05001 AR Arkansas
+05003 AR Ashley
+05005 AR Baxter
+05007 AR Benton
+05009 AR Boone
+05011 AR Bradley
+05013 AR Calhoun
+05015 AR Carroll
+05017 AR Chicot
+05019 AR Clark
+05021 AR Clay
+05023 AR Cleburne
+05025 AR Cleveland
+05027 AR Columbia
+05029 AR Conway
+05031 AR Craighead
+05033 AR Crawford
+05035 AR Crittenden
+05037 AR Cross
+05039 AR Dallas
+05041 AR Desha
+05043 AR Drew
+05045 AR Faulkner
+05047 AR Franklin
+05049 AR Fulton
+05051 AR Garland
+05053 AR Grant
+05055 AR Greene
+05057 AR Hempstead
+05059 AR Hot Spring
+05061 AR Howard
+05063 AR Independence
+05065 AR Izard
+05067 AR Jackson
+05069 AR Jefferson
+05071 AR Johnson
+05073 AR Lafayette
+05075 AR Lawrence
+05077 AR Lee
+05079 AR Lincoln
+05081 AR Little River
+05083 AR Logan
+05085 AR Lonoke
+05087 AR Madison
+05089 AR Marion
+05091 AR Miller
+05093 AR Mississippi
+05095 AR Monroe
+05097 AR Montgomery
+05099 AR Nevada
+05101 AR Newton
+05103 AR Ouachita
+05105 AR Perry
+05107 AR Phillips
+05109 AR Pike
+05111 AR Poinsett
+05113 AR Polk
+05115 AR Pope
+05117 AR Prairie
+05119 AR Pulaski
+05121 AR Randolph
+05123 AR St. Francis
+05125 AR Saline
+05127 AR Scott
+05129 AR Searcy
+05131 AR Sebastian
+05133 AR Sevier
+05135 AR Sharp
+05137 AR Stone
+05139 AR Union
+05141 AR Van Buren
+05143 AR Washington
+05145 AR White
+05147 AR Woodruff
+05149 AR Yell
+06001 CA Alameda
+06003 CA Alpine
+06005 CA Amador
+06007 CA Butte
+06009 CA Calaveras
+06011 CA Colusa
+06013 CA Contra Costa
+06015 CA Del Norte
+06017 CA El Dorado
+06019 CA Fresno
+06021 CA Glenn
+06023 CA Humboldt
+06025 CA Imperial
+06027 CA Inyo
+06029 CA Kern
+06031 CA Kings
+06033 CA Lake
+06035 CA Lassen
+06037 CA Los Angeles
+06039 CA Madera
+06041 CA Marin
+06043 CA Mariposa
+06045 CA Mendocino
+06047 CA Merced
+06049 CA Modoc
+06051 CA Mono
+06053 CA Monterey
+06055 CA Napa
+06057 CA Nevada
+06059 CA Orange
+06061 CA Placer
+06063 CA Plumas
+06065 CA Riverside
+06067 CA Sacramento
+06069 CA San Benito
+06071 CA San Bernardino
+06073 CA San Diego
+06075 CA San Francisco
+06077 CA San Joaquin
+06079 CA San Luis Obispo
+06081 CA San Mateo
+06083 CA Santa Barbara
+06085 CA Santa Clara
+06087 CA Santa Cruz
+06089 CA Shasta
+06091 CA Sierra
+06093 CA Siskiyou
+06095 CA Solano
+06097 CA Sonoma
+06099 CA Stanislaus
+06101 CA Sutter
+06103 CA Tehama
+06105 CA Trinity
+06107 CA Tulare
+06109 CA Tuolumne
+06111 CA Ventura
+06113 CA Yolo
+06115 CA Yuba
+08001 CO Adams
+08003 CO Alamosa
+08005 CO Arapahoe
+08007 CO Archuleta
+08009 CO Baca
+08011 CO Bent
+08013 CO Boulder
+08015 CO Chaffee
+08017 CO Cheyenne
+08019 CO Clear Creek
+08021 CO Conejos
+08023 CO Costilla
+08025 CO Crowley
+08027 CO Custer
+08029 CO Delta
+08031 CO Denver
+08033 CO Dolores
+08035 CO Douglas
+08037 CO Eagle
+08039 CO Elbert
+08041 CO El Paso
+08043 CO Fremont
+08045 CO Garfield
+08047 CO Gilpin
+08049 CO Grand
+08051 CO Gunnison
+08053 CO Hinsdale
+08055 CO Huerfano
+08057 CO Jackson
+08059 CO Jefferson
+08061 CO Kiowa
+08063 CO Kit Carson
+08065 CO Lake
+08067 CO La Plata
+08069 CO Larimer
+08071 CO Las Animas
+08073 CO Lincoln
+08075 CO Logan
+08077 CO Mesa
+08079 CO Mineral
+08081 CO Moffat
+08083 CO Montezuma
+08085 CO Montrose
+08087 CO Morgan
+08089 CO Otero
+08091 CO Ouray
+08093 CO Park
+08095 CO Phillips
+08097 CO Pitkin
+08099 CO Prowers
+08101 CO Pueblo
+08103 CO Rio Blanco
+08105 CO Rio Grande
+08107 CO Routt
+08109 CO Saguache
+08111 CO San Juan
+08113 CO San Miguel
+08115 CO Sedgwick
+08117 CO Summit
+08119 CO Teller
+08121 CO Washington
+08123 CO Weld
+08125 CO Yuma
+09001 CT Fairfield
+09003 CT Hartford
+09005 CT Litchfield
+09007 CT Middlesex
+09009 CT New Haven
+09011 CT New London
+09013 CT Tolland
+09015 CT Windham
+10001 DE Kent
+10003 DE New Castle
+10005 DE Sussex
+11001 DC District of Columbia
+12001 FL Alachua
+12003 FL Baker
+12005 FL Bay
+12007 FL Bradford
+12009 FL Brevard
+12011 FL Broward
+12013 FL Calhoun
+12015 FL Charlotte
+12017 FL Citrus
+12019 FL Clay
+12021 FL Collier
+12023 FL Columbia
+12025 FL Dade
+12027 FL De Soto
+12029 FL Dixie
+12031 FL Duval
+12033 FL Escambia
+12035 FL Flagler
+12037 FL Franklin
+12039 FL Gadsden
+12041 FL Gilchrist
+12043 FL Glades
+12045 FL Gulf
+12047 FL Hamilton
+12049 FL Hardee
+12051 FL Hendry
+12053 FL Hernando
+12055 FL Highlands
+12057 FL Hillsborough
+12059 FL Holmes
+12061 FL Indian River
+12063 FL Jackson
+12065 FL Jefferson
+12067 FL Lafayette
+12069 FL Lake
+12071 FL Lee
+12073 FL Leon
+12075 FL Levy
+12077 FL Liberty
+12079 FL Madison
+12081 FL Manatee
+12083 FL Marion
+12085 FL Martin
+12087 FL Monroe
+12089 FL Nassau
+12091 FL Okaloosa
+12093 FL Okeechobee
+12095 FL Orange
+12097 FL Osceola
+12099 FL Palm Beach
+12101 FL Pasco
+12103 FL Pinellas
+12105 FL Polk
+12107 FL Putnam
+12109 FL St. Johns
+12111 FL St. Lucie
+12113 FL Santa Rosa
+12115 FL Sarasota
+12117 FL Seminole
+12119 FL Sumter
+12121 FL Suwannee
+12123 FL Taylor
+12125 FL Union
+12127 FL Volusia
+12129 FL Wakulla
+12131 FL Walton
+12133 FL Washington
+13001 GA Appling
+13003 GA Atkinson
+13005 GA Bacon
+13007 GA Baker
+13009 GA Baldwin
+13011 GA Banks
+13013 GA Barrow
+13015 GA Bartow
+13017 GA Ben Hill
+13019 GA Berrien
+13021 GA Bibb
+13023 GA Bleckley
+13025 GA Brantley
+13027 GA Brooks
+13029 GA Bryan
+13031 GA Bulloch
+13033 GA Burke
+13035 GA Butts
+13037 GA Calhoun
+13039 GA Camden
+13043 GA Candler
+13045 GA Carroll
+13047 GA Catoosa
+13049 GA Charlton
+13051 GA Chatham
+13053 GA Chattahoochee
+13055 GA Chattooga
+13057 GA Cherokee
+13059 GA Clarke
+13061 GA Clay
+13063 GA Clayton
+13065 GA Clinch
+13067 GA Cobb
+13069 GA Coffee
+13071 GA Colquitt
+13073 GA Columbia
+13075 GA Cook
+13077 GA Coweta
+13079 GA Crawford
+13081 GA Crisp
+13083 GA Dade
+13085 GA Dawson
+13087 GA Decatur
+13089 GA De Kalb
+13091 GA Dodge
+13093 GA Dooly
+13095 GA Dougherty
+13097 GA Douglas
+13099 GA Early
+13101 GA Echols
+13103 GA Effingham
+13105 GA Elbert
+13107 GA Emanuel
+13109 GA Evans
+13111 GA Fannin
+13113 GA Fayette
+13115 GA Floyd
+13117 GA Forsyth
+13119 GA Franklin
+13121 GA Fulton
+13123 GA Gilmer
+13125 GA Glascock
+13127 GA Glynn
+13129 GA Gordon
+13131 GA Grady
+13133 GA Greene
+13135 GA Gwinnett
+13137 GA Habersham
+13139 GA Hall
+13141 GA Hancock
+13143 GA Haralson
+13145 GA Harris
+13147 GA Hart
+13149 GA Heard
+13151 GA Henry
+13153 GA Houston
+13155 GA Irwin
+13157 GA Jackson
+13159 GA Jasper
+13161 GA Jeff Davis
+13163 GA Jefferson
+13165 GA Jenkins
+13167 GA Johnson
+13169 GA Jones
+13171 GA Lamar
+13173 GA Lanier
+13175 GA Laurens
+13177 GA Lee
+13179 GA Liberty
+13181 GA Lincoln
+13183 GA Long
+13185 GA Lowndes
+13187 GA Lumpkin
+13189 GA McDuffie
+13191 GA McIntosh
+13193 GA Macon
+13195 GA Madison
+13197 GA Marion
+13199 GA Meriwether
+13201 GA Miller
+13205 GA Mitchell
+13207 GA Monroe
+13209 GA Montgomery
+13211 GA Morgan
+13213 GA Murray
+13215 GA Muscogee
+13217 GA Newton
+13219 GA Oconee
+13221 GA Oglethorpe
+13223 GA Paulding
+13225 GA Peach
+13227 GA Pickens
+13229 GA Pierce
+13231 GA Pike
+13233 GA Polk
+13235 GA Pulaski
+13237 GA Putnam
+13239 GA Quitman
+13241 GA Rabun
+13243 GA Randolph
+13245 GA Richmond
+13247 GA Rockdale
+13249 GA Schley
+13251 GA Screven
+13253 GA Seminole
+13255 GA Spalding
+13257 GA Stephens
+13259 GA Stewart
+13261 GA Sumter
+13263 GA Talbot
+13265 GA Taliaferro
+13267 GA Tattnall
+13269 GA Taylor
+13271 GA Telfair
+13273 GA Terrell
+13275 GA Thomas
+13277 GA Tift
+13279 GA Toombs
+13281 GA Towns
+13283 GA Treutlen
+13285 GA Troup
+13287 GA Turner
+13289 GA Twiggs
+13291 GA Union
+13293 GA Upson
+13295 GA Walker
+13297 GA Walton
+13299 GA Ware
+13301 GA Warren
+13303 GA Washington
+13305 GA Wayne
+13307 GA Webster
+13309 GA Wheeler
+13311 GA White
+13313 GA Whitfield
+13315 GA Wilcox
+13317 GA Wilkes
+13319 GA Wilkinson
+13321 GA Worth
+15001 HI Hawaii
+15003 HI Honolulu
+15005 HI Kalawao
+15007 HI Kauai
+15009 HI Maui
+16001 ID Ada
+16003 ID Adams
+16005 ID Bannock
+16007 ID Bear Lake
+16009 ID Benewah
+16011 ID Bingham
+16013 ID Blaine
+16015 ID Boise
+16017 ID Bonner
+16019 ID Bonneville
+16021 ID Boundary
+16023 ID Butte
+16025 ID Camas
+16027 ID Canyon
+16029 ID Caribou
+16031 ID Cassia
+16033 ID Clark
+16035 ID Clearwater
+16037 ID Custer
+16039 ID Elmore
+16041 ID Franklin
+16043 ID Fremont
+16045 ID Gem
+16047 ID Gooding
+16049 ID Idaho
+16051 ID Jefferson
+16053 ID Jerome
+16055 ID Kootenai
+16057 ID Latah
+16059 ID Lemhi
+16061 ID Lewis
+16063 ID Lincoln
+16065 ID Madison
+16067 ID Minidoka
+16069 ID Nez Perce
+16071 ID Oneida
+16073 ID Owyhee
+16075 ID Payette
+16077 ID Power
+16079 ID Shoshone
+16081 ID Teton
+16083 ID Twin Falls
+16085 ID Valley
+16087 ID Washington
+17001 IL Adams
+17003 IL Alexander
+17005 IL Bond
+17007 IL Boone
+17009 IL Brown
+17011 IL Bureau
+17013 IL Calhoun
+17015 IL Carroll
+17017 IL Cass
+17019 IL Champaign
+17021 IL Christian
+17023 IL Clark
+17025 IL Clay
+17027 IL Clinton
+17029 IL Coles
+17031 IL Cook
+17033 IL Crawford
+17035 IL Cumberland
+17037 IL DeKalb
+17039 IL De Witt
+17041 IL Douglas
+17043 IL DuPage
+17045 IL Edgar
+17047 IL Edwards
+17049 IL Effingham
+17051 IL Fayette
+17053 IL Ford
+17055 IL Franklin
+17057 IL Fulton
+17059 IL Gallatin
+17061 IL Greene
+17063 IL Grundy
+17065 IL Hamilton
+17067 IL Hancock
+17069 IL Hardin
+17071 IL Henderson
+17073 IL Henry
+17075 IL Iroquois
+17077 IL Jackson
+17079 IL Jasper
+17081 IL Jefferson
+17083 IL Jersey
+17085 IL Jo Daviess
+17087 IL Johnson
+17089 IL Kane
+17091 IL Kankakee
+17093 IL Kendall
+17095 IL Knox
+17097 IL Lake
+17099 IL La Salle
+17101 IL Lawrence
+17103 IL Lee
+17105 IL Livingston
+17107 IL Logan
+17109 IL McDonough
+17111 IL McHenry
+17113 IL McLean
+17115 IL Macon
+17117 IL Macoupin
+17119 IL Madison
+17121 IL Marion
+17123 IL Marshall
+17125 IL Mason
+17127 IL Massac
+17129 IL Menard
+17131 IL Mercer
+17133 IL Monroe
+17135 IL Montgomery
+17137 IL Morgan
+17139 IL Moultrie
+17141 IL Ogle
+17143 IL Peoria
+17145 IL Perry
+17147 IL Piatt
+17149 IL Pike
+17151 IL Pope
+17153 IL Pulaski
+17155 IL Putnam
+17157 IL Randolph
+17159 IL Richland
+17161 IL Rock Island
+17163 IL St. Clair
+17165 IL Saline
+17167 IL Sangamon
+17169 IL Schuyler
+17171 IL Scott
+17173 IL Shelby
+17175 IL Stark
+17177 IL Stephenson
+17179 IL Tazewell
+17181 IL Union
+17183 IL Vermilion
+17185 IL Wabash
+17187 IL Warren
+17189 IL Washington
+17191 IL Wayne
+17193 IL White
+17195 IL Whiteside
+17197 IL Will
+17199 IL Williamson
+17201 IL Winnebago
+17203 IL Woodford
+18001 IN Adams
+18003 IN Allen
+18005 IN Bartholomew
+18007 IN Benton
+18009 IN Blackford
+18011 IN Boone
+18013 IN Brown
+18015 IN Carroll
+18017 IN Cass
+18019 IN Clark
+18021 IN Clay
+18023 IN Clinton
+18025 IN Crawford
+18027 IN Daviess
+18029 IN Dearborn
+18031 IN Decatur
+18033 IN De Kalb
+18035 IN Delaware
+18037 IN Dubois
+18039 IN Elkhart
+18041 IN Fayette
+18043 IN Floyd
+18045 IN Fountain
+18047 IN Franklin
+18049 IN Fulton
+18051 IN Gibson
+18053 IN Grant
+18055 IN Greene
+18057 IN Hamilton
+18059 IN Hancock
+18061 IN Harrison
+18063 IN Hendricks
+18065 IN Henry
+18067 IN Howard
+18069 IN Huntington
+18071 IN Jackson
+18073 IN Jasper
+18075 IN Jay
+18077 IN Jefferson
+18079 IN Jennings
+18081 IN Johnson
+18083 IN Knox
+18085 IN Kosciusko
+18087 IN Lagrange
+18089 IN Lake
+18091 IN La Porte
+18093 IN Lawrence
+18095 IN Madison
+18097 IN Marion
+18099 IN Marshall
+18101 IN Martin
+18103 IN Miami
+18105 IN Monroe
+18107 IN Montgomery
+18109 IN Morgan
+18111 IN Newton
+18113 IN Noble
+18115 IN Ohio
+18117 IN Orange
+18119 IN Owen
+18121 IN Parke
+18123 IN Perry
+18125 IN Pike
+18127 IN Porter
+18129 IN Posey
+18131 IN Pulaski
+18133 IN Putnam
+18135 IN Randolph
+18137 IN Ripley
+18139 IN Rush
+18141 IN St. Joseph
+18143 IN Scott
+18145 IN Shelby
+18147 IN Spencer
+18149 IN Starke
+18151 IN Steuben
+18153 IN Sullivan
+18155 IN Switzerland
+18157 IN Tippecanoe
+18159 IN Tipton
+18161 IN Union
+18163 IN Vanderburgh
+18165 IN Vermillion
+18167 IN Vigo
+18169 IN Wabash
+18171 IN Warren
+18173 IN Warrick
+18175 IN Washington
+18177 IN Wayne
+18179 IN Wells
+18181 IN White
+18183 IN Whitley
+19001 IA Adair
+19003 IA Adams
+19005 IA Allamakee
+19007 IA Appanoose
+19009 IA Audubon
+19011 IA Benton
+19013 IA Black Hawk
+19015 IA Boone
+19017 IA Bremer
+19019 IA Buchanan
+19021 IA Buena Vista
+19023 IA Butler
+19025 IA Calhoun
+19027 IA Carroll
+19029 IA Cass
+19031 IA Cedar
+19033 IA Cerro Gordo
+19035 IA Cherokee
+19037 IA Chickasaw
+19039 IA Clarke
+19041 IA Clay
+19043 IA Clayton
+19045 IA Clinton
+19047 IA Crawford
+19049 IA Dallas
+19051 IA Davis
+19053 IA Decatur
+19055 IA Delaware
+19057 IA Des Moines
+19059 IA Dickinson
+19061 IA Dubuque
+19063 IA Emmet
+19065 IA Fayette
+19067 IA Floyd
+19069 IA Franklin
+19071 IA Fremont
+19073 IA Greene
+19075 IA Grundy
+19077 IA Guthrie
+19079 IA Hamilton
+19081 IA Hancock
+19083 IA Hardin
+19085 IA Harrison
+19087 IA Henry
+19089 IA Howard
+19091 IA Humboldt
+19093 IA Ida
+19095 IA Iowa
+19097 IA Jackson
+19099 IA Jasper
+19101 IA Jefferson
+19103 IA Johnson
+19105 IA Jones
+19107 IA Keokuk
+19109 IA Kossuth
+19111 IA Lee
+19113 IA Linn
+19115 IA Louisa
+19117 IA Lucas
+19119 IA Lyon
+19121 IA Madison
+19123 IA Mahaska
+19125 IA Marion
+19127 IA Marshall
+19129 IA Mills
+19131 IA Mitchell
+19133 IA Monona
+19135 IA Monroe
+19137 IA Montgomery
+19139 IA Muscatine
+19141 IA O'Brien
+19143 IA Osceola
+19145 IA Page
+19147 IA Palo Alto
+19149 IA Plymouth
+19151 IA Pocahontas
+19153 IA Polk
+19155 IA Pottawattamie
+19157 IA Poweshiek
+19159 IA Ringgold
+19161 IA Sac
+19163 IA Scott
+19165 IA Shelby
+19167 IA Sioux
+19169 IA Story
+19171 IA Tama
+19173 IA Taylor
+19175 IA Union
+19177 IA Van Buren
+19179 IA Wapello
+19181 IA Warren
+19183 IA Washington
+19185 IA Wayne
+19187 IA Webster
+19189 IA Winnebago
+19191 IA Winneshiek
+19193 IA Woodbury
+19195 IA Worth
+19197 IA Wright
+20001 KS Allen
+20003 KS Anderson
+20005 KS Atchison
+20007 KS Barber
+20009 KS Barton
+20011 KS Bourbon
+20013 KS Brown
+20015 KS Butler
+20017 KS Chase
+20019 KS Chautauqua
+20021 KS Cherokee
+20023 KS Cheyenne
+20025 KS Clark
+20027 KS Clay
+20029 KS Cloud
+20031 KS Coffey
+20033 KS Comanche
+20035 KS Cowley
+20037 KS Crawford
+20039 KS Decatur
+20041 KS Dickinson
+20043 KS Doniphan
+20045 KS Douglas
+20047 KS Edwards
+20049 KS Elk
+20051 KS Ellis
+20053 KS Ellsworth
+20055 KS Finney
+20057 KS Ford
+20059 KS Franklin
+20061 KS Geary
+20063 KS Gove
+20065 KS Graham
+20067 KS Grant
+20069 KS Gray
+20071 KS Greeley
+20073 KS Greenwood
+20075 KS Hamilton
+20077 KS Harper
+20079 KS Harvey
+20081 KS Haskell
+20083 KS Hodgeman
+20085 KS Jackson
+20087 KS Jefferson
+20089 KS Jewell
+20091 KS Johnson
+20093 KS Kearny
+20095 KS Kingman
+20097 KS Kiowa
+20099 KS Labette
+20101 KS Lane
+20103 KS Leavenworth
+20105 KS Lincoln
+20107 KS Linn
+20109 KS Logan
+20111 KS Lyon
+20113 KS McPherson
+20115 KS Marion
+20117 KS Marshall
+20119 KS Meade
+20121 KS Miami
+20123 KS Mitchell
+20125 KS Montgomery
+20127 KS Morris
+20129 KS Morton
+20131 KS Nemaha
+20133 KS Neosho
+20135 KS Ness
+20137 KS Norton
+20139 KS Osage
+20141 KS Osborne
+20143 KS Ottawa
+20145 KS Pawnee
+20147 KS Phillips
+20149 KS Pottawatomie
+20151 KS Pratt
+20153 KS Rawlins
+20155 KS Reno
+20157 KS Republic
+20159 KS Rice
+20161 KS Riley
+20163 KS Rooks
+20165 KS Rush
+20167 KS Russell
+20169 KS Saline
+20171 KS Scott
+20173 KS Sedgwick
+20175 KS Seward
+20177 KS Shawnee
+20179 KS Sheridan
+20181 KS Sherman
+20183 KS Smith
+20185 KS Stafford
+20187 KS Stanton
+20189 KS Stevens
+20191 KS Sumner
+20193 KS Thomas
+20195 KS Trego
+20197 KS Wabaunsee
+20199 KS Wallace
+20201 KS Washington
+20203 KS Wichita
+20205 KS Wilson
+20207 KS Woodson
+20209 KS Wyandotte
+21001 KY Adair
+21003 KY Allen
+21005 KY Anderson
+21007 KY Ballard
+21009 KY Barren
+21011 KY Bath
+21013 KY Bell
+21015 KY Boone
+21017 KY Bourbon
+21019 KY Boyd
+21021 KY Boyle
+21023 KY Bracken
+21025 KY Breathitt
+21027 KY Breckinridge
+21029 KY Bullitt
+21031 KY Butler
+21033 KY Caldwell
+21035 KY Calloway
+21037 KY Campbell
+21039 KY Carlisle
+21041 KY Carroll
+21043 KY Carter
+21045 KY Casey
+21047 KY Christian
+21049 KY Clark
+21051 KY Clay
+21053 KY Clinton
+21055 KY Crittenden
+21057 KY Cumberland
+21059 KY Daviess
+21061 KY Edmonson
+21063 KY Elliott
+21065 KY Estill
+21067 KY Fayette
+21069 KY Fleming
+21071 KY Floyd
+21073 KY Franklin
+21075 KY Fulton
+21077 KY Gallatin
+21079 KY Garrard
+21081 KY Grant
+21083 KY Graves
+21085 KY Grayson
+21087 KY Green
+21089 KY Greenup
+21091 KY Hancock
+21093 KY Hardin
+21095 KY Harlan
+21097 KY Harrison
+21099 KY Hart
+21101 KY Henderson
+21103 KY Henry
+21105 KY Hickman
+21107 KY Hopkins
+21109 KY Jackson
+21111 KY Jefferson
+21113 KY Jessamine
+21115 KY Johnson
+21117 KY Kenton
+21119 KY Knott
+21121 KY Knox
+21123 KY Larue
+21125 KY Laurel
+21127 KY Lawrence
+21129 KY Lee
+21131 KY Leslie
+21133 KY Letcher
+21135 KY Lewis
+21137 KY Lincoln
+21139 KY Livingston
+21141 KY Logan
+21143 KY Lyon
+21145 KY McCracken
+21147 KY McCreary
+21149 KY McLean
+21151 KY Madison
+21153 KY Magoffin
+21155 KY Marion
+21157 KY Marshall
+21159 KY Martin
+21161 KY Mason
+21163 KY Meade
+21165 KY Menifee
+21167 KY Mercer
+21169 KY Metcalfe
+21171 KY Monroe
+21173 KY Montgomery
+21175 KY Morgan
+21177 KY Muhlenberg
+21179 KY Nelson
+21181 KY Nicholas
+21183 KY Ohio
+21185 KY Oldham
+21187 KY Owen
+21189 KY Owsley
+21191 KY Pendleton
+21193 KY Perry
+21195 KY Pike
+21197 KY Powell
+21199 KY Pulaski
+21201 KY Robertson
+21203 KY Rockcastle
+21205 KY Rowan
+21207 KY Russell
+21209 KY Scott
+21211 KY Shelby
+21213 KY Simpson
+21215 KY Spencer
+21217 KY Taylor
+21219 KY Todd
+21221 KY Trigg
+21223 KY Trimble
+21225 KY Union
+21227 KY Warren
+21229 KY Washington
+21231 KY Wayne
+21233 KY Webster
+21235 KY Whitley
+21237 KY Wolfe
+21239 KY Woodford
+22001 LA Acadia
+22003 LA Allen
+22005 LA Ascension
+22007 LA Assumption
+22009 LA Avoyelles
+22011 LA Beauregard
+22013 LA Bienville
+22015 LA Bossier
+22017 LA Caddo
+22019 LA Calcasieu
+22021 LA Caldwell
+22023 LA Cameron
+22025 LA Catahoula
+22027 LA Claiborne
+22029 LA Concordia
+22031 LA De Soto
+22033 LA East Baton Rouge
+22035 LA East Carroll
+22037 LA East Feliciana
+22039 LA Evangeline
+22041 LA Franklin
+22043 LA Grant
+22045 LA Iberia
+22047 LA Iberville
+22049 LA Jackson
+22051 LA Jefferson
+22053 LA Jefferson Davis
+22055 LA Lafayette
+22057 LA Lafourche
+22059 LA La Salle
+22061 LA Lincoln
+22063 LA Livingston
+22065 LA Madison
+22067 LA Morehouse
+22069 LA Natchitoches
+22071 LA Orleans
+22073 LA Ouachita
+22075 LA Plaquemines
+22077 LA Pointe Coupee
+22079 LA Rapides
+22081 LA Red River
+22083 LA Richland
+22085 LA Sabine
+22087 LA St. Bernard
+22089 LA St. Charles
+22091 LA St. Helena
+22093 LA St. James
+22095 LA St. John the Baptist
+22097 LA St. Landry
+22099 LA St. Martin
+22101 LA St. Mary
+22103 LA St. Tammany
+22105 LA Tangipahoa
+22107 LA Tensas
+22109 LA Terrebonne
+22111 LA Union
+22113 LA Vermilion
+22115 LA Vernon
+22117 LA Washington
+22119 LA Webster
+22121 LA West Baton Rouge
+22123 LA West Carroll
+22125 LA West Feliciana
+22127 LA Winn
+23001 ME Androscoggin
+23003 ME Aroostook
+23005 ME Cumberland
+23007 ME Franklin
+23009 ME Hancock
+23011 ME Kennebec
+23013 ME Knox
+23015 ME Lincoln
+23017 ME Oxford
+23019 ME Penobscot
+23021 ME Piscataquis
+23023 ME Sagadahoc
+23025 ME Somerset
+23027 ME Waldo
+23029 ME Washington
+23031 ME York
+24001 MD Allegany
+24003 MD Anne Arundel
+24005 MD Baltimore
+24009 MD Calvert
+24011 MD Caroline
+24013 MD Carroll
+24015 MD Cecil
+24017 MD Charles
+24019 MD Dorchester
+24021 MD Frederick
+24023 MD Garrett
+24025 MD Harford
+24027 MD Howard
+24029 MD Kent
+24031 MD Montgomery
+24033 MD Prince George's
+24035 MD Queen Anne's
+24037 MD St. Mary's
+24039 MD Somerset
+24041 MD Talbot
+24043 MD Washington
+24045 MD Wicomico
+24047 MD Worcester
+24510 MD Baltimore city
+25001 MA Barnstable
+25003 MA Berkshire
+25005 MA Bristol
+25007 MA Dukes
+25009 MA Essex
+25011 MA Franklin
+25013 MA Hampden
+25015 MA Hampshire
+25017 MA Middlesex
+25019 MA Nantucket
+25021 MA Norfolk
+25023 MA Plymouth
+25025 MA Suffolk
+25027 MA Worcester
+26001 MI Alcona
+26003 MI Alger
+26005 MI Allegan
+26007 MI Alpena
+26009 MI Antrim
+26011 MI Arenac
+26013 MI Baraga
+26015 MI Barry
+26017 MI Bay
+26019 MI Benzie
+26021 MI Berrien
+26023 MI Branch
+26025 MI Calhoun
+26027 MI Cass
+26029 MI Charlevoix
+26031 MI Cheboygan
+26033 MI Chippewa
+26035 MI Clare
+26037 MI Clinton
+26039 MI Crawford
+26041 MI Delta
+26043 MI Dickinson
+26045 MI Eaton
+26047 MI Emmet
+26049 MI Genesee
+26051 MI Gladwin
+26053 MI Gogebic
+26055 MI Grand Traverse
+26057 MI Gratiot
+26059 MI Hillsdale
+26061 MI Houghton
+26063 MI Huron
+26065 MI Ingham
+26067 MI Ionia
+26069 MI Iosco
+26071 MI Iron
+26073 MI Isabella
+26075 MI Jackson
+26077 MI Kalamazoo
+26079 MI Kalkaska
+26081 MI Kent
+26083 MI Keweenaw
+26085 MI Lake
+26087 MI Lapeer
+26089 MI Leelanau
+26091 MI Lenawee
+26093 MI Livingston
+26095 MI Luce
+26097 MI Mackinac
+26099 MI Macomb
+26101 MI Manistee
+26103 MI Marquette
+26105 MI Mason
+26107 MI Mecosta
+26109 MI Menominee
+26111 MI Midland
+26113 MI Missaukee
+26115 MI Monroe
+26117 MI Montcalm
+26119 MI Montmorency
+26121 MI Muskegon
+26123 MI Newaygo
+26125 MI Oakland
+26127 MI Oceana
+26129 MI Ogemaw
+26131 MI Ontonagon
+26133 MI Osceola
+26135 MI Oscoda
+26137 MI Otsego
+26139 MI Ottawa
+26141 MI Presque Isle
+26143 MI Roscommon
+26145 MI Saginaw
+26147 MI St. Clair
+26149 MI St. Joseph
+26151 MI Sanilac
+26153 MI Schoolcraft
+26155 MI Shiawassee
+26157 MI Tuscola
+26159 MI Van Buren
+26161 MI Washtenaw
+26163 MI Wayne
+26165 MI Wexford
+27001 MN Aitkin
+27003 MN Anoka
+27005 MN Becker
+27007 MN Beltrami
+27009 MN Benton
+27011 MN Big Stone
+27013 MN Blue Earth
+27015 MN Brown
+27017 MN Carlton
+27019 MN Carver
+27021 MN Cass
+27023 MN Chippewa
+27025 MN Chisago
+27027 MN Clay
+27029 MN Clearwater
+27031 MN Cook
+27033 MN Cottonwood
+27035 MN Crow Wing
+27037 MN Dakota
+27039 MN Dodge
+27041 MN Douglas
+27043 MN Faribault
+27045 MN Fillmore
+27047 MN Freeborn
+27049 MN Goodhue
+27051 MN Grant
+27053 MN Hennepin
+27055 MN Houston
+27057 MN Hubbard
+27059 MN Isanti
+27061 MN Itasca
+27063 MN Jackson
+27065 MN Kanabec
+27067 MN Kandiyohi
+27069 MN Kittson
+27071 MN Koochiching
+27073 MN Lac qui Parle
+27075 MN Lake
+27077 MN Lake of the Woods
+27079 MN Le Sueur
+27081 MN Lincoln
+27083 MN Lyon
+27085 MN McLeod
+27087 MN Mahnomen
+27089 MN Marshall
+27091 MN Martin
+27093 MN Meeker
+27095 MN Mille Lacs
+27097 MN Morrison
+27099 MN Mower
+27101 MN Murray
+27103 MN Nicollet
+27105 MN Nobles
+27107 MN Norman
+27109 MN Olmsted
+27111 MN Otter Tail
+27113 MN Pennington
+27115 MN Pine
+27117 MN Pipestone
+27119 MN Polk
+27121 MN Pope
+27123 MN Ramsey
+27125 MN Red Lake
+27127 MN Redwood
+27129 MN Renville
+27131 MN Rice
+27133 MN Rock
+27135 MN Roseau
+27137 MN St. Louis
+27139 MN Scott
+27141 MN Sherburne
+27143 MN Sibley
+27145 MN Stearns
+27147 MN Steele
+27149 MN Stevens
+27151 MN Swift
+27153 MN Todd
+27155 MN Traverse
+27157 MN Wabasha
+27159 MN Wadena
+27161 MN Waseca
+27163 MN Washington
+27165 MN Watonwan
+27167 MN Wilkin
+27169 MN Winona
+27171 MN Wright
+27173 MN Yellow Medicine
+28001 MS Adams
+28003 MS Alcorn
+28005 MS Amite
+28007 MS Attala
+28009 MS Benton
+28011 MS Bolivar
+28013 MS Calhoun
+28015 MS Carroll
+28017 MS Chickasaw
+28019 MS Choctaw
+28021 MS Claiborne
+28023 MS Clarke
+28025 MS Clay
+28027 MS Coahoma
+28029 MS Copiah
+28031 MS Covington
+28033 MS DeSoto
+28035 MS Forrest
+28037 MS Franklin
+28039 MS George
+28041 MS Greene
+28043 MS Grenada
+28045 MS Hancock
+28047 MS Harrison
+28049 MS Hinds
+28051 MS Holmes
+28053 MS Humphreys
+28055 MS Issaquena
+28057 MS Itawamba
+28059 MS Jackson
+28061 MS Jasper
+28063 MS Jefferson
+28065 MS Jefferson Davis
+28067 MS Jones
+28069 MS Kemper
+28071 MS Lafayette
+28073 MS Lamar
+28075 MS Lauderdale
+28077 MS Lawrence
+28079 MS Leake
+28081 MS Lee
+28083 MS Leflore
+28085 MS Lincoln
+28087 MS Lowndes
+28089 MS Madison
+28091 MS Marion
+28093 MS Marshall
+28095 MS Monroe
+28097 MS Montgomery
+28099 MS Neshoba
+28101 MS Newton
+28103 MS Noxubee
+28105 MS Oktibbeha
+28107 MS Panola
+28109 MS Pearl River
+28111 MS Perry
+28113 MS Pike
+28115 MS Pontotoc
+28117 MS Prentiss
+28119 MS Quitman
+28121 MS Rankin
+28123 MS Scott
+28125 MS Sharkey
+28127 MS Simpson
+28129 MS Smith
+28131 MS Stone
+28133 MS Sunflower
+28135 MS Tallahatchie
+28137 MS Tate
+28139 MS Tippah
+28141 MS Tishomingo
+28143 MS Tunica
+28145 MS Union
+28147 MS Walthall
+28149 MS Warren
+28151 MS Washington
+28153 MS Wayne
+28155 MS Webster
+28157 MS Wilkinson
+28159 MS Winston
+28161 MS Yalobusha
+28163 MS Yazoo
+29001 MO Adair
+29003 MO Andrew
+29005 MO Atchison
+29007 MO Audrain
+29009 MO Barry
+29011 MO Barton
+29013 MO Bates
+29015 MO Benton
+29017 MO Bollinger
+29019 MO Boone
+29021 MO Buchanan
+29023 MO Butler
+29025 MO Caldwell
+29027 MO Callaway
+29029 MO Camden
+29031 MO Cape Girardeau
+29033 MO Carroll
+29035 MO Carter
+29037 MO Cass
+29039 MO Cedar
+29041 MO Chariton
+29043 MO Christian
+29045 MO Clark
+29047 MO Clay
+29049 MO Clinton
+29051 MO Cole
+29053 MO Cooper
+29055 MO Crawford
+29057 MO Dade
+29059 MO Dallas
+29061 MO Daviess
+29063 MO De Kalb
+29065 MO Dent
+29067 MO Douglas
+29069 MO Dunklin
+29071 MO Franklin
+29073 MO Gasconade
+29075 MO Gentry
+29077 MO Greene
+29079 MO Grundy
+29081 MO Harrison
+29083 MO Henry
+29085 MO Hickory
+29087 MO Holt
+29089 MO Howard
+29091 MO Howell
+29093 MO Iron
+29095 MO Jackson
+29097 MO Jasper
+29099 MO Jefferson
+29101 MO Johnson
+29103 MO Knox
+29105 MO Laclede
+29107 MO Lafayette
+29109 MO Lawrence
+29111 MO Lewis
+29113 MO Lincoln
+29115 MO Linn
+29117 MO Livingston
+29119 MO McDonald
+29121 MO Macon
+29123 MO Madison
+29125 MO Maries
+29127 MO Marion
+29129 MO Mercer
+29131 MO Miller
+29133 MO Mississippi
+29135 MO Moniteau
+29137 MO Monroe
+29139 MO Montgomery
+29141 MO Morgan
+29143 MO New Madrid
+29145 MO Newton
+29147 MO Nodaway
+29149 MO Oregon
+29151 MO Osage
+29153 MO Ozark
+29155 MO Pemiscot
+29157 MO Perry
+29159 MO Pettis
+29161 MO Phelps
+29163 MO Pike
+29165 MO Platte
+29167 MO Polk
+29169 MO Pulaski
+29171 MO Putnam
+29173 MO Ralls
+29175 MO Randolph
+29177 MO Ray
+29179 MO Reynolds
+29181 MO Ripley
+29183 MO St. Charles
+29185 MO St. Clair
+29186 MO Ste. Genevieve
+29187 MO St. Francois
+29189 MO St. Louis
+29195 MO Saline
+29197 MO Schuyler
+29199 MO Scotland
+29201 MO Scott
+29203 MO Shannon
+29205 MO Shelby
+29207 MO Stoddard
+29209 MO Stone
+29211 MO Sullivan
+29213 MO Taney
+29215 MO Texas
+29217 MO Vernon
+29219 MO Warren
+29221 MO Washington
+29223 MO Wayne
+29225 MO Webster
+29227 MO Worth
+29229 MO Wright
+29510 MO St. Louis city
+30001 MT Beaverhead
+30003 MT Big Horn
+30005 MT Blaine
+30007 MT Broadwater
+30009 MT Carbon
+30011 MT Carter
+30013 MT Cascade
+30015 MT Chouteau
+30017 MT Custer
+30019 MT Daniels
+30021 MT Dawson
+30023 MT Deer Lodge
+30025 MT Fallon
+30027 MT Fergus
+30029 MT Flathead
+30031 MT Gallatin
+30033 MT Garfield
+30035 MT Glacier
+30037 MT Golden Valley
+30039 MT Granite
+30041 MT Hill
+30043 MT Jefferson
+30045 MT Judith Basin
+30047 MT Lake
+30049 MT Lewis and Clark
+30051 MT Liberty
+30053 MT Lincoln
+30055 MT McCone
+30057 MT Madison
+30059 MT Meagher
+30061 MT Mineral
+30063 MT Missoula
+30065 MT Musselshell
+30067 MT Park
+30069 MT Petroleum
+30071 MT Phillips
+30073 MT Pondera
+30075 MT Powder River
+30077 MT Powell
+30079 MT Prairie
+30081 MT Ravalli
+30083 MT Richland
+30085 MT Roosevelt
+30087 MT Rosebud
+30089 MT Sanders
+30091 MT Sheridan
+30093 MT Silver Bow
+30095 MT Stillwater
+30097 MT Sweet Grass
+30099 MT Teton
+30101 MT Toole
+30103 MT Treasure
+30105 MT Valley
+30107 MT Wheatland
+30109 MT Wibaux
+30111 MT Yellowstone
+30113 MT Yellowstone National Park
+31001 NE Adams
+31003 NE Antelope
+31005 NE Arthur
+31007 NE Banner
+31009 NE Blaine
+31011 NE Boone
+31013 NE Box Butte
+31015 NE Boyd
+31017 NE Brown
+31019 NE Buffalo
+31021 NE Burt
+31023 NE Butler
+31025 NE Cass
+31027 NE Cedar
+31029 NE Chase
+31031 NE Cherry
+31033 NE Cheyenne
+31035 NE Clay
+31037 NE Colfax
+31039 NE Cuming
+31041 NE Custer
+31043 NE Dakota
+31045 NE Dawes
+31047 NE Dawson
+31049 NE Deuel
+31051 NE Dixon
+31053 NE Dodge
+31055 NE Douglas
+31057 NE Dundy
+31059 NE Fillmore
+31061 NE Franklin
+31063 NE Frontier
+31065 NE Furnas
+31067 NE Gage
+31069 NE Garden
+31071 NE Garfield
+31073 NE Gosper
+31075 NE Grant
+31077 NE Greeley
+31079 NE Hall
+31081 NE Hamilton
+31083 NE Harlan
+31085 NE Hayes
+31087 NE Hitchcock
+31089 NE Holt
+31091 NE Hooker
+31093 NE Howard
+31095 NE Jefferson
+31097 NE Johnson
+31099 NE Kearney
+31101 NE Keith
+31103 NE Keya Paha
+31105 NE Kimball
+31107 NE Knox
+31109 NE Lancaster
+31111 NE Lincoln
+31113 NE Logan
+31115 NE Loup
+31117 NE McPherson
+31119 NE Madison
+31121 NE Merrick
+31123 NE Morrill
+31125 NE Nance
+31127 NE Nemaha
+31129 NE Nuckolls
+31131 NE Otoe
+31133 NE Pawnee
+31135 NE Perkins
+31137 NE Phelps
+31139 NE Pierce
+31141 NE Platte
+31143 NE Polk
+31145 NE Red Willow
+31147 NE Richardson
+31149 NE Rock
+31151 NE Saline
+31153 NE Sarpy
+31155 NE Saunders
+31157 NE Scotts Bluff
+31159 NE Seward
+31161 NE Sheridan
+31163 NE Sherman
+31165 NE Sioux
+31167 NE Stanton
+31169 NE Thayer
+31171 NE Thomas
+31173 NE Thurston
+31175 NE Valley
+31177 NE Washington
+31179 NE Wayne
+31181 NE Webster
+31183 NE Wheeler
+31185 NE York
+32001 NV Churchill
+32003 NV Clark
+32005 NV Douglas
+32007 NV Elko
+32009 NV Esmeralda
+32011 NV Eureka
+32013 NV Humboldt
+32015 NV Lander
+32017 NV Lincoln
+32019 NV Lyon
+32021 NV Mineral
+32023 NV Nye
+32027 NV Pershing
+32029 NV Storey
+32031 NV Washoe
+32033 NV White Pine
+32510 NV Carson City city
+33001 NH Belknap
+33003 NH Carroll
+33005 NH Cheshire
+33007 NH Coos
+33009 NH Grafton
+33011 NH Hillsborough
+33013 NH Merrimack
+33015 NH Rockingham
+33017 NH Strafford
+33019 NH Sullivan
+34001 NJ Atlantic
+34003 NJ Bergen
+34005 NJ Burlington
+34007 NJ Camden
+34009 NJ Cape May
+34011 NJ Cumberland
+34013 NJ Essex
+34015 NJ Gloucester
+34017 NJ Hudson
+34019 NJ Hunterdon
+34021 NJ Mercer
+34023 NJ Middlesex
+34025 NJ Monmouth
+34027 NJ Morris
+34029 NJ Ocean
+34031 NJ Passaic
+34033 NJ Salem
+34035 NJ Somerset
+34037 NJ Sussex
+34039 NJ Union
+34041 NJ Warren
+35001 NM Bernalillo
+35003 NM Catron
+35005 NM Chaves
+35006 NM Cibola
+35007 NM Colfax
+35009 NM Curry
+35011 NM De Baca
+35013 NM Dona Ana
+35015 NM Eddy
+35017 NM Grant
+35019 NM Guadalupe
+35021 NM Harding
+35023 NM Hidalgo
+35025 NM Lea
+35027 NM Lincoln
+35028 NM Los Alamos
+35029 NM Luna
+35031 NM McKinley
+35033 NM Mora
+35035 NM Otero
+35037 NM Quay
+35039 NM Rio Arriba
+35041 NM Roosevelt
+35043 NM Sandoval
+35045 NM San Juan
+35047 NM San Miguel
+35049 NM Santa Fe
+35051 NM Sierra
+35053 NM Socorro
+35055 NM Taos
+35057 NM Torrance
+35059 NM Union
+35061 NM Valencia
+36001 NY Albany
+36003 NY Allegany
+36005 NY Bronx
+36007 NY Broome
+36009 NY Cattaraugus
+36011 NY Cayuga
+36013 NY Chautauqua
+36015 NY Chemung
+36017 NY Chenango
+36019 NY Clinton
+36021 NY Columbia
+36023 NY Cortland
+36025 NY Delaware
+36027 NY Dutchess
+36029 NY Erie
+36031 NY Essex
+36033 NY Franklin
+36035 NY Fulton
+36037 NY Genesee
+36039 NY Greene
+36041 NY Hamilton
+36043 NY Herkimer
+36045 NY Jefferson
+36047 NY Kings
+36049 NY Lewis
+36051 NY Livingston
+36053 NY Madison
+36055 NY Monroe
+36057 NY Montgomery
+36059 NY Nassau
+36061 NY New York
+36063 NY Niagara
+36065 NY Oneida
+36067 NY Onondaga
+36069 NY Ontario
+36071 NY Orange
+36073 NY Orleans
+36075 NY Oswego
+36077 NY Otsego
+36079 NY Putnam
+36081 NY Queens
+36083 NY Rensselaer
+36085 NY Richmond
+36087 NY Rockland
+36089 NY St. Lawrence
+36091 NY Saratoga
+36093 NY Schenectady
+36095 NY Schoharie
+36097 NY Schuyler
+36099 NY Seneca
+36101 NY Steuben
+36103 NY Suffolk
+36105 NY Sullivan
+36107 NY Tioga
+36109 NY Tompkins
+36111 NY Ulster
+36113 NY Warren
+36115 NY Washington
+36117 NY Wayne
+36119 NY Westchester
+36121 NY Wyoming
+36123 NY Yates
+37001 NC Alamance
+37003 NC Alexander
+37005 NC Alleghany
+37007 NC Anson
+37009 NC Ashe
+37011 NC Avery
+37013 NC Beaufort
+37015 NC Bertie
+37017 NC Bladen
+37019 NC Brunswick
+37021 NC Buncombe
+37023 NC Burke
+37025 NC Cabarrus
+37027 NC Caldwell
+37029 NC Camden
+37031 NC Carteret
+37033 NC Caswell
+37035 NC Catawba
+37037 NC Chatham
+37039 NC Cherokee
+37041 NC Chowan
+37043 NC Clay
+37045 NC Cleveland
+37047 NC Columbus
+37049 NC Craven
+37051 NC Cumberland
+37053 NC Currituck
+37055 NC Dare
+37057 NC Davidson
+37059 NC Davie
+37061 NC Duplin
+37063 NC Durham
+37065 NC Edgecombe
+37067 NC Forsyth
+37069 NC Franklin
+37071 NC Gaston
+37073 NC Gates
+37075 NC Graham
+37077 NC Granville
+37079 NC Greene
+37081 NC Guilford
+37083 NC Halifax
+37085 NC Harnett
+37087 NC Haywood
+37089 NC Henderson
+37091 NC Hertford
+37093 NC Hoke
+37095 NC Hyde
+37097 NC Iredell
+37099 NC Jackson
+37101 NC Johnston
+37103 NC Jones
+37105 NC Lee
+37107 NC Lenoir
+37109 NC Lincoln
+37111 NC McDowell
+37113 NC Macon
+37115 NC Madison
+37117 NC Martin
+37119 NC Mecklenburg
+37121 NC Mitchell
+37123 NC Montgomery
+37125 NC Moore
+37127 NC Nash
+37129 NC New Hanover
+37131 NC Northampton
+37133 NC Onslow
+37135 NC Orange
+37137 NC Pamlico
+37139 NC Pasquotank
+37141 NC Pender
+37143 NC Perquimans
+37145 NC Person
+37147 NC Pitt
+37149 NC Polk
+37151 NC Randolph
+37153 NC Richmond
+37155 NC Robeson
+37157 NC Rockingham
+37159 NC Rowan
+37161 NC Rutherford
+37163 NC Sampson
+37165 NC Scotland
+37167 NC Stanly
+37169 NC Stokes
+37171 NC Surry
+37173 NC Swain
+37175 NC Transylvania
+37177 NC Tyrrell
+37179 NC Union
+37181 NC Vance
+37183 NC Wake
+37185 NC Warren
+37187 NC Washington
+37189 NC Watauga
+37191 NC Wayne
+37193 NC Wilkes
+37195 NC Wilson
+37197 NC Yadkin
+37199 NC Yancey
+38001 ND Adams
+38003 ND Barnes
+38005 ND Benson
+38007 ND Billings
+38009 ND Bottineau
+38011 ND Bowman
+38013 ND Burke
+38015 ND Burleigh
+38017 ND Cass
+38019 ND Cavalier
+38021 ND Dickey
+38023 ND Divide
+38025 ND Dunn
+38027 ND Eddy
+38029 ND Emmons
+38031 ND Foster
+38033 ND Golden Valley
+38035 ND Grand Forks
+38037 ND Grant
+38039 ND Griggs
+38041 ND Hettinger
+38043 ND Kidder
+38045 ND La Moure
+38047 ND Logan
+38049 ND McHenry
+38051 ND McIntosh
+38053 ND McKenzie
+38055 ND McLean
+38057 ND Mercer
+38059 ND Morton
+38061 ND Mountrail
+38063 ND Nelson
+38065 ND Oliver
+38067 ND Pembina
+38069 ND Pierce
+38071 ND Ramsey
+38073 ND Ransom
+38075 ND Renville
+38077 ND Richland
+38079 ND Rolette
+38081 ND Sargent
+38083 ND Sheridan
+38085 ND Sioux
+38087 ND Slope
+38089 ND Stark
+38091 ND Steele
+38093 ND Stutsman
+38095 ND Towner
+38097 ND Traill
+38099 ND Walsh
+38101 ND Ward
+38103 ND Wells
+38105 ND Williams
+39001 OH Adams
+39003 OH Allen
+39005 OH Ashland
+39007 OH Ashtabula
+39009 OH Athens
+39011 OH Auglaize
+39013 OH Belmont
+39015 OH Brown
+39017 OH Butler
+39019 OH Carroll
+39021 OH Champaign
+39023 OH Clark
+39025 OH Clermont
+39027 OH Clinton
+39029 OH Columbiana
+39031 OH Coshocton
+39033 OH Crawford
+39035 OH Cuyahoga
+39037 OH Darke
+39039 OH Defiance
+39041 OH Delaware
+39043 OH Erie
+39045 OH Fairfield
+39047 OH Fayette
+39049 OH Franklin
+39051 OH Fulton
+39053 OH Gallia
+39055 OH Geauga
+39057 OH Greene
+39059 OH Guernsey
+39061 OH Hamilton
+39063 OH Hancock
+39065 OH Hardin
+39067 OH Harrison
+39069 OH Henry
+39071 OH Highland
+39073 OH Hocking
+39075 OH Holmes
+39077 OH Huron
+39079 OH Jackson
+39081 OH Jefferson
+39083 OH Knox
+39085 OH Lake
+39087 OH Lawrence
+39089 OH Licking
+39091 OH Logan
+39093 OH Lorain
+39095 OH Lucas
+39097 OH Madison
+39099 OH Mahoning
+39101 OH Marion
+39103 OH Medina
+39105 OH Meigs
+39107 OH Mercer
+39109 OH Miami
+39111 OH Monroe
+39113 OH Montgomery
+39115 OH Morgan
+39117 OH Morrow
+39119 OH Muskingum
+39121 OH Noble
+39123 OH Ottawa
+39125 OH Paulding
+39127 OH Perry
+39129 OH Pickaway
+39131 OH Pike
+39133 OH Portage
+39135 OH Preble
+39137 OH Putnam
+39139 OH Richland
+39141 OH Ross
+39143 OH Sandusky
+39145 OH Scioto
+39147 OH Seneca
+39149 OH Shelby
+39151 OH Stark
+39153 OH Summit
+39155 OH Trumbull
+39157 OH Tuscarawas
+39159 OH Union
+39161 OH Van Wert
+39163 OH Vinton
+39165 OH Warren
+39167 OH Washington
+39169 OH Wayne
+39171 OH Williams
+39173 OH Wood
+39175 OH Wyandot
+40001 OK Adair
+40003 OK Alfalfa
+40005 OK Atoka
+40007 OK Beaver
+40009 OK Beckham
+40011 OK Blaine
+40013 OK Bryan
+40015 OK Caddo
+40017 OK Canadian
+40019 OK Carter
+40021 OK Cherokee
+40023 OK Choctaw
+40025 OK Cimarron
+40027 OK Cleveland
+40029 OK Coal
+40031 OK Comanche
+40033 OK Cotton
+40035 OK Craig
+40037 OK Creek
+40039 OK Custer
+40041 OK Delaware
+40043 OK Dewey
+40045 OK Ellis
+40047 OK Garfield
+40049 OK Garvin
+40051 OK Grady
+40053 OK Grant
+40055 OK Greer
+40057 OK Harmon
+40059 OK Harper
+40061 OK Haskell
+40063 OK Hughes
+40065 OK Jackson
+40067 OK Jefferson
+40069 OK Johnston
+40071 OK Kay
+40073 OK Kingfisher
+40075 OK Kiowa
+40077 OK Latimer
+40079 OK Le Flore
+40081 OK Lincoln
+40083 OK Logan
+40085 OK Love
+40087 OK McClain
+40089 OK McCurtain
+40091 OK McIntosh
+40093 OK Major
+40095 OK Marshall
+40097 OK Mayes
+40099 OK Murray
+40101 OK Muskogee
+40103 OK Noble
+40105 OK Nowata
+40107 OK Okfuskee
+40109 OK Oklahoma
+40111 OK Okmulgee
+40113 OK Osage
+40115 OK Ottawa
+40117 OK Pawnee
+40119 OK Payne
+40121 OK Pittsburg
+40123 OK Pontotoc
+40125 OK Pottawatomie
+40127 OK Pushmataha
+40129 OK Roger Mills
+40131 OK Rogers
+40133 OK Seminole
+40135 OK Sequoyah
+40137 OK Stephens
+40139 OK Texas
+40141 OK Tillman
+40143 OK Tulsa
+40145 OK Wagoner
+40147 OK Washington
+40149 OK Washita
+40151 OK Woods
+40153 OK Woodward
+41001 OR Baker
+41003 OR Benton
+41005 OR Clackamas
+41007 OR Clatsop
+41009 OR Columbia
+41011 OR Coos
+41013 OR Crook
+41015 OR Curry
+41017 OR Deschutes
+41019 OR Douglas
+41021 OR Gilliam
+41023 OR Grant
+41025 OR Harney
+41027 OR Hood River
+41029 OR Jackson
+41031 OR Jefferson
+41033 OR Josephine
+41035 OR Klamath
+41037 OR Lake
+41039 OR Lane
+41041 OR Lincoln
+41043 OR Linn
+41045 OR Malheur
+41047 OR Marion
+41049 OR Morrow
+41051 OR Multnomah
+41053 OR Polk
+41055 OR Sherman
+41057 OR Tillamook
+41059 OR Umatilla
+41061 OR Union
+41063 OR Wallowa
+41065 OR Wasco
+41067 OR Washington
+41069 OR Wheeler
+41071 OR Yamhill
+42001 PA Adams
+42003 PA Allegheny
+42005 PA Armstrong
+42007 PA Beaver
+42009 PA Bedford
+42011 PA Berks
+42013 PA Blair
+42015 PA Bradford
+42017 PA Bucks
+42019 PA Butler
+42021 PA Cambria
+42023 PA Cameron
+42025 PA Carbon
+42027 PA Centre
+42029 PA Chester
+42031 PA Clarion
+42033 PA Clearfield
+42035 PA Clinton
+42037 PA Columbia
+42039 PA Crawford
+42041 PA Cumberland
+42043 PA Dauphin
+42045 PA Delaware
+42047 PA Elk
+42049 PA Erie
+42051 PA Fayette
+42053 PA Forest
+42055 PA Franklin
+42057 PA Fulton
+42059 PA Greene
+42061 PA Huntingdon
+42063 PA Indiana
+42065 PA Jefferson
+42067 PA Juniata
+42069 PA Lackawanna
+42071 PA Lancaster
+42073 PA Lawrence
+42075 PA Lebanon
+42077 PA Lehigh
+42079 PA Luzerne
+42081 PA Lycoming
+42083 PA McKean
+42085 PA Mercer
+42087 PA Mifflin
+42089 PA Monroe
+42091 PA Montgomery
+42093 PA Montour
+42095 PA Northampton
+42097 PA Northumberland
+42099 PA Perry
+42101 PA Philadelphia
+42103 PA Pike
+42105 PA Potter
+42107 PA Schuylkill
+42109 PA Snyder
+42111 PA Somerset
+42113 PA Sullivan
+42115 PA Susquehanna
+42117 PA Tioga
+42119 PA Union
+42121 PA Venango
+42123 PA Warren
+42125 PA Washington
+42127 PA Wayne
+42129 PA Westmoreland
+42131 PA Wyoming
+42133 PA York
+44001 RI Bristol
+44003 RI Kent
+44005 RI Newport
+44007 RI Providence
+44009 RI Washington
+45001 SC Abbeville
+45003 SC Aiken
+45005 SC Allendale
+45007 SC Anderson
+45009 SC Bamberg
+45011 SC Barnwell
+45013 SC Beaufort
+45015 SC Berkeley
+45017 SC Calhoun
+45019 SC Charleston
+45021 SC Cherokee
+45023 SC Chester
+45025 SC Chesterfield
+45027 SC Clarendon
+45029 SC Colleton
+45031 SC Darlington
+45033 SC Dillon
+45035 SC Dorchester
+45037 SC Edgefield
+45039 SC Fairfield
+45041 SC Florence
+45043 SC Georgetown
+45045 SC Greenville
+45047 SC Greenwood
+45049 SC Hampton
+45051 SC Horry
+45053 SC Jasper
+45055 SC Kershaw
+45057 SC Lancaster
+45059 SC Laurens
+45061 SC Lee
+45063 SC Lexington
+45065 SC McCormick
+45067 SC Marion
+45069 SC Marlboro
+45071 SC Newberry
+45073 SC Oconee
+45075 SC Orangeburg
+45077 SC Pickens
+45079 SC Richland
+45081 SC Saluda
+45083 SC Spartanburg
+45085 SC Sumter
+45087 SC Union
+45089 SC Williamsburg
+45091 SC York
+46003 SD Aurora
+46005 SD Beadle
+46007 SD Bennett
+46009 SD Bon Homme
+46011 SD Brookings
+46013 SD Brown
+46015 SD Brule
+46017 SD Buffalo
+46019 SD Butte
+46021 SD Campbell
+46023 SD Charles Mix
+46025 SD Clark
+46027 SD Clay
+46029 SD Codington
+46031 SD Corson
+46033 SD Custer
+46035 SD Davison
+46037 SD Day
+46039 SD Deuel
+46041 SD Dewey
+46043 SD Douglas
+46045 SD Edmunds
+46047 SD Fall River
+46049 SD Faulk
+46051 SD Grant
+46053 SD Gregory
+46055 SD Haakon
+46057 SD Hamlin
+46059 SD Hand
+46061 SD Hanson
+46063 SD Harding
+46065 SD Hughes
+46067 SD Hutchinson
+46069 SD Hyde
+46071 SD Jackson
+46073 SD Jerauld
+46075 SD Jones
+46077 SD Kingsbury
+46079 SD Lake
+46081 SD Lawrence
+46083 SD Lincoln
+46085 SD Lyman
+46087 SD McCook
+46089 SD McPherson
+46091 SD Marshall
+46093 SD Meade
+46095 SD Mellette
+46097 SD Miner
+46099 SD Minnehaha
+46101 SD Moody
+46103 SD Pennington
+46105 SD Perkins
+46107 SD Potter
+46109 SD Roberts
+46111 SD Sanborn
+46113 SD Shannon
+46115 SD Spink
+46117 SD Stanley
+46119 SD Sully
+46121 SD Todd
+46123 SD Tripp
+46125 SD Turner
+46127 SD Union
+46129 SD Walworth
+46135 SD Yankton
+46137 SD Ziebach
+47001 TN Anderson
+47003 TN Bedford
+47005 TN Benton
+47007 TN Bledsoe
+47009 TN Blount
+47011 TN Bradley
+47013 TN Campbell
+47015 TN Cannon
+47017 TN Carroll
+47019 TN Carter
+47021 TN Cheatham
+47023 TN Chester
+47025 TN Claiborne
+47027 TN Clay
+47029 TN Cocke
+47031 TN Coffee
+47033 TN Crockett
+47035 TN Cumberland
+47037 TN Davidson
+47039 TN Decatur
+47041 TN DeKalb
+47043 TN Dickson
+47045 TN Dyer
+47047 TN Fayette
+47049 TN Fentress
+47051 TN Franklin
+47053 TN Gibson
+47055 TN Giles
+47057 TN Grainger
+47059 TN Greene
+47061 TN Grundy
+47063 TN Hamblen
+47065 TN Hamilton
+47067 TN Hancock
+47069 TN Hardeman
+47071 TN Hardin
+47073 TN Hawkins
+47075 TN Haywood
+47077 TN Henderson
+47079 TN Henry
+47081 TN Hickman
+47083 TN Houston
+47085 TN Humphreys
+47087 TN Jackson
+47089 TN Jefferson
+47091 TN Johnson
+47093 TN Knox
+47095 TN Lake
+47097 TN Lauderdale
+47099 TN Lawrence
+47101 TN Lewis
+47103 TN Lincoln
+47105 TN Loudon
+47107 TN McMinn
+47109 TN McNairy
+47111 TN Macon
+47113 TN Madison
+47115 TN Marion
+47117 TN Marshall
+47119 TN Maury
+47121 TN Meigs
+47123 TN Monroe
+47125 TN Montgomery
+47127 TN Moore
+47129 TN Morgan
+47131 TN Obion
+47133 TN Overton
+47135 TN Perry
+47137 TN Pickett
+47139 TN Polk
+47141 TN Putnam
+47143 TN Rhea
+47145 TN Roane
+47147 TN Robertson
+47149 TN Rutherford
+47151 TN Scott
+47153 TN Sequatchie
+47155 TN Sevier
+47157 TN Shelby
+47159 TN Smith
+47161 TN Stewart
+47163 TN Sullivan
+47165 TN Sumner
+47167 TN Tipton
+47169 TN Trousdale
+47171 TN Unicoi
+47173 TN Union
+47175 TN Van Buren
+47177 TN Warren
+47179 TN Washington
+47181 TN Wayne
+47183 TN Weakley
+47185 TN White
+47187 TN Williamson
+47189 TN Wilson
+48001 TX Anderson
+48003 TX Andrews
+48005 TX Angelina
+48007 TX Aransas
+48009 TX Archer
+48011 TX Armstrong
+48013 TX Atascosa
+48015 TX Austin
+48017 TX Bailey
+48019 TX Bandera
+48021 TX Bastrop
+48023 TX Baylor
+48025 TX Bee
+48027 TX Bell
+48029 TX Bexar
+48031 TX Blanco
+48033 TX Borden
+48035 TX Bosque
+48037 TX Bowie
+48039 TX Brazoria
+48041 TX Brazos
+48043 TX Brewster
+48045 TX Briscoe
+48047 TX Brooks
+48049 TX Brown
+48051 TX Burleson
+48053 TX Burnet
+48055 TX Caldwell
+48057 TX Calhoun
+48059 TX Callahan
+48061 TX Cameron
+48063 TX Camp
+48065 TX Carson
+48067 TX Cass
+48069 TX Castro
+48071 TX Chambers
+48073 TX Cherokee
+48075 TX Childress
+48077 TX Clay
+48079 TX Cochran
+48081 TX Coke
+48083 TX Coleman
+48085 TX Collin
+48087 TX Collingsworth
+48089 TX Colorado
+48091 TX Comal
+48093 TX Comanche
+48095 TX Concho
+48097 TX Cooke
+48099 TX Coryell
+48101 TX Cottle
+48103 TX Crane
+48105 TX Crockett
+48107 TX Crosby
+48109 TX Culberson
+48111 TX Dallam
+48113 TX Dallas
+48115 TX Dawson
+48117 TX Deaf Smith
+48119 TX Delta
+48121 TX Denton
+48123 TX De Witt
+48125 TX Dickens
+48127 TX Dimmit
+48129 TX Donley
+48131 TX Duval
+48133 TX Eastland
+48135 TX Ector
+48137 TX Edwards
+48139 TX Ellis
+48141 TX El Paso
+48143 TX Erath
+48145 TX Falls
+48147 TX Fannin
+48149 TX Fayette
+48151 TX Fisher
+48153 TX Floyd
+48155 TX Foard
+48157 TX Fort Bend
+48159 TX Franklin
+48161 TX Freestone
+48163 TX Frio
+48165 TX Gaines
+48167 TX Galveston
+48169 TX Garza
+48171 TX Gillespie
+48173 TX Glasscock
+48175 TX Goliad
+48177 TX Gonzales
+48179 TX Gray
+48181 TX Grayson
+48183 TX Gregg
+48185 TX Grimes
+48187 TX Guadalupe
+48189 TX Hale
+48191 TX Hall
+48193 TX Hamilton
+48195 TX Hansford
+48197 TX Hardeman
+48199 TX Hardin
+48201 TX Harris
+48203 TX Harrison
+48205 TX Hartley
+48207 TX Haskell
+48209 TX Hays
+48211 TX Hemphill
+48213 TX Henderson
+48215 TX Hidalgo
+48217 TX Hill
+48219 TX Hockley
+48221 TX Hood
+48223 TX Hopkins
+48225 TX Houston
+48227 TX Howard
+48229 TX Hudspeth
+48231 TX Hunt
+48233 TX Hutchinson
+48235 TX Irion
+48237 TX Jack
+48239 TX Jackson
+48241 TX Jasper
+48243 TX Jeff Davis
+48245 TX Jefferson
+48247 TX Jim Hogg
+48249 TX Jim Wells
+48251 TX Johnson
+48253 TX Jones
+48255 TX Karnes
+48257 TX Kaufman
+48259 TX Kendall
+48261 TX Kenedy
+48263 TX Kent
+48265 TX Kerr
+48267 TX Kimble
+48269 TX King
+48271 TX Kinney
+48273 TX Kleberg
+48275 TX Knox
+48277 TX Lamar
+48279 TX Lamb
+48281 TX Lampasas
+48283 TX La Salle
+48285 TX Lavaca
+48287 TX Lee
+48289 TX Leon
+48291 TX Liberty
+48293 TX Limestone
+48295 TX Lipscomb
+48297 TX Live Oak
+48299 TX Llano
+48301 TX Loving
+48303 TX Lubbock
+48305 TX Lynn
+48307 TX McCulloch
+48309 TX McLennan
+48311 TX McMullen
+48313 TX Madison
+48315 TX Marion
+48317 TX Martin
+48319 TX Mason
+48321 TX Matagorda
+48323 TX Maverick
+48325 TX Medina
+48327 TX Menard
+48329 TX Midland
+48331 TX Milam
+48333 TX Mills
+48335 TX Mitchell
+48337 TX Montague
+48339 TX Montgomery
+48341 TX Moore
+48343 TX Morris
+48345 TX Motley
+48347 TX Nacogdoches
+48349 TX Navarro
+48351 TX Newton
+48353 TX Nolan
+48355 TX Nueces
+48357 TX Ochiltree
+48359 TX Oldham
+48361 TX Orange
+48363 TX Palo Pinto
+48365 TX Panola
+48367 TX Parker
+48369 TX Parmer
+48371 TX Pecos
+48373 TX Polk
+48375 TX Potter
+48377 TX Presidio
+48379 TX Rains
+48381 TX Randall
+48383 TX Reagan
+48385 TX Real
+48387 TX Red River
+48389 TX Reeves
+48391 TX Refugio
+48393 TX Roberts
+48395 TX Robertson
+48397 TX Rockwall
+48399 TX Runnels
+48401 TX Rusk
+48403 TX Sabine
+48405 TX San Augustine
+48407 TX San Jacinto
+48409 TX San Patricio
+48411 TX San Saba
+48413 TX Schleicher
+48415 TX Scurry
+48417 TX Shackelford
+48419 TX Shelby
+48421 TX Sherman
+48423 TX Smith
+48425 TX Somervell
+48427 TX Starr
+48429 TX Stephens
+48431 TX Sterling
+48433 TX Stonewall
+48435 TX Sutton
+48437 TX Swisher
+48439 TX Tarrant
+48441 TX Taylor
+48443 TX Terrell
+48445 TX Terry
+48447 TX Throckmorton
+48449 TX Titus
+48451 TX Tom Green
+48453 TX Travis
+48455 TX Trinity
+48457 TX Tyler
+48459 TX Upshur
+48461 TX Upton
+48463 TX Uvalde
+48465 TX Val Verde
+48467 TX Van Zandt
+48469 TX Victoria
+48471 TX Walker
+48473 TX Waller
+48475 TX Ward
+48477 TX Washington
+48479 TX Webb
+48481 TX Wharton
+48483 TX Wheeler
+48485 TX Wichita
+48487 TX Wilbarger
+48489 TX Willacy
+48491 TX Williamson
+48493 TX Wilson
+48495 TX Winkler
+48497 TX Wise
+48499 TX Wood
+48501 TX Yoakum
+48503 TX Young
+48505 TX Zapata
+48507 TX Zavala
+49001 UT Beaver
+49003 UT Box Elder
+49005 UT Cache
+49007 UT Carbon
+49009 UT Daggett
+49011 UT Davis
+49013 UT Duchesne
+49015 UT Emery
+49017 UT Garfield
+49019 UT Grand
+49021 UT Iron
+49023 UT Juab
+49025 UT Kane
+49027 UT Millard
+49029 UT Morgan
+49031 UT Piute
+49033 UT Rich
+49035 UT Salt Lake
+49037 UT San Juan
+49039 UT Sanpete
+49041 UT Sevier
+49043 UT Summit
+49045 UT Tooele
+49047 UT Uintah
+49049 UT Utah
+49051 UT Wasatch
+49053 UT Washington
+49055 UT Wayne
+49057 UT Weber
+50001 VT Addison
+50003 VT Bennington
+50005 VT Caledonia
+50007 VT Chittenden
+50009 VT Essex
+50011 VT Franklin
+50013 VT Grand Isle
+50015 VT Lamoille
+50017 VT Orange
+50019 VT Orleans
+50021 VT Rutland
+50023 VT Washington
+50025 VT Windham
+50027 VT Windsor
+51001 VA Accomack
+51003 VA Albemarle
+51005 VA Alleghany
+51007 VA Amelia
+51009 VA Amherst
+51011 VA Appomattox
+51013 VA Arlington
+51015 VA Augusta
+51017 VA Bath
+51019 VA Bedford
+51021 VA Bland
+51023 VA Botetourt
+51025 VA Brunswick
+51027 VA Buchanan
+51029 VA Buckingham
+51031 VA Campbell
+51033 VA Caroline
+51035 VA Carroll
+51036 VA Charles City
+51037 VA Charlotte
+51041 VA Chesterfield
+51043 VA Clarke
+51045 VA Craig
+51047 VA Culpeper
+51049 VA Cumberland
+51051 VA Dickenson
+51053 VA Dinwiddie
+51057 VA Essex
+51059 VA Fairfax
+51061 VA Fauquier
+51063 VA Floyd
+51065 VA Fluvanna
+51067 VA Franklin
+51069 VA Frederick
+51071 VA Giles
+51073 VA Gloucester
+51075 VA Goochland
+51077 VA Grayson
+51079 VA Greene
+51081 VA Greensville
+51083 VA Halifax
+51085 VA Hanover
+51087 VA Henrico
+51089 VA Henry
+51091 VA Highland
+51093 VA Isle of Wight
+51095 VA James City
+51097 VA King and Queen
+51099 VA King George
+51101 VA King William
+51103 VA Lancaster
+51105 VA Lee
+51107 VA Loudoun
+51109 VA Louisa
+51111 VA Lunenburg
+51113 VA Madison
+51115 VA Mathews
+51117 VA Mecklenburg
+51119 VA Middlesex
+51121 VA Montgomery
+51125 VA Nelson
+51127 VA New Kent
+51131 VA Northampton
+51133 VA Northumberland
+51135 VA Nottoway
+51137 VA Orange
+51139 VA Page
+51141 VA Patrick
+51143 VA Pittsylvania
+51145 VA Powhatan
+51147 VA Prince Edward
+51149 VA Prince George
+51153 VA Prince William
+51155 VA Pulaski
+51157 VA Rappahannock
+51159 VA Richmond
+51161 VA Roanoke
+51163 VA Rockbridge
+51165 VA Rockingham
+51167 VA Russell
+51169 VA Scott
+51171 VA Shenandoah
+51173 VA Smyth
+51175 VA Southampton
+51177 VA Spotsylvania
+51179 VA Stafford
+51181 VA Surry
+51183 VA Sussex
+51185 VA Tazewell
+51187 VA Warren
+51191 VA Washington
+51193 VA Westmoreland
+51195 VA Wise
+51197 VA Wythe
+51199 VA York
+51510 VA Alexandria
+51515 VA Bedford
+51520 VA Bristol
+51530 VA Buena Vista
+51540 VA Charlottesville
+51550 VA Chesapeake
+51560 VA Clifton Forge
+51570 VA Colonial Heights
+51580 VA Covington
+51590 VA Danville
+51595 VA Emporia
+51600 VA Fairfax
+51610 VA Falls Church
+51620 VA Franklin
+51630 VA Fredericksburg
+51640 VA Galax
+51650 VA Hampton
+51660 VA Harrisonburg
+51670 VA Hopewell
+51678 VA Lexington
+51680 VA Lynchburg
+51683 VA Manassas
+51685 VA Manassas Park
+51690 VA Martinsville
+51700 VA Newport News
+51710 VA Norfolk
+51720 VA Norton
+51730 VA Petersburg
+51735 VA Poquoson
+51740 VA Portsmouth
+51750 VA Radford
+51760 VA Richmond
+51770 VA Roanoke
+51775 VA Salem
+51780 VA South Boston
+51790 VA Staunton
+51800 VA Suffolk
+51810 VA Virginia Beach
+51820 VA Waynesboro
+51830 VA Williamsburg
+51840 VA Winchester
+53001 WA Adams
+53003 WA Asotin
+53005 WA Benton
+53007 WA Chelan
+53009 WA Clallam
+53011 WA Clark
+53013 WA Columbia
+53015 WA Cowlitz
+53017 WA Douglas
+53019 WA Ferry
+53021 WA Franklin
+53023 WA Garfield
+53025 WA Grant
+53027 WA Grays Harbor
+53029 WA Island
+53031 WA Jefferson
+53033 WA King
+53035 WA Kitsap
+53037 WA Kittitas
+53039 WA Klickitat
+53041 WA Lewis
+53043 WA Lincoln
+53045 WA Mason
+53047 WA Okanogan
+53049 WA Pacific
+53051 WA Pend Oreille
+53053 WA Pierce
+53055 WA San Juan
+53057 WA Skagit
+53059 WA Skamania
+53061 WA Snohomish
+53063 WA Spokane
+53065 WA Stevens
+53067 WA Thurston
+53069 WA Wahkiakum
+53071 WA Walla Walla
+53073 WA Whatcom
+53075 WA Whitman
+53077 WA Yakima
+54001 WV Barbour
+54003 WV Berkeley
+54005 WV Boone
+54007 WV Braxton
+54009 WV Brooke
+54011 WV Cabell
+54013 WV Calhoun
+54015 WV Clay
+54017 WV Doddridge
+54019 WV Fayette
+54021 WV Gilmer
+54023 WV Grant
+54025 WV Greenbrier
+54027 WV Hampshire
+54029 WV Hancock
+54031 WV Hardy
+54033 WV Harrison
+54035 WV Jackson
+54037 WV Jefferson
+54039 WV Kanawha
+54041 WV Lewis
+54043 WV Lincoln
+54045 WV Logan
+54047 WV McDowell
+54049 WV Marion
+54051 WV Marshall
+54053 WV Mason
+54055 WV Mercer
+54057 WV Mineral
+54059 WV Mingo
+54061 WV Monongalia
+54063 WV Monroe
+54065 WV Morgan
+54067 WV Nicholas
+54069 WV Ohio
+54071 WV Pendleton
+54073 WV Pleasants
+54075 WV Pocahontas
+54077 WV Preston
+54079 WV Putnam
+54081 WV Raleigh
+54083 WV Randolph
+54085 WV Ritchie
+54087 WV Roane
+54089 WV Summers
+54091 WV Taylor
+54093 WV Tucker
+54095 WV Tyler
+54097 WV Upshur
+54099 WV Wayne
+54101 WV Webster
+54103 WV Wetzel
+54105 WV Wirt
+54107 WV Wood
+54109 WV Wyoming
+55001 WI Adams
+55003 WI Ashland
+55005 WI Barron
+55007 WI Bayfield
+55009 WI Brown
+55011 WI Buffalo
+55013 WI Burnett
+55015 WI Calumet
+55017 WI Chippewa
+55019 WI Clark
+55021 WI Columbia
+55023 WI Crawford
+55025 WI Dane
+55027 WI Dodge
+55029 WI Door
+55031 WI Douglas
+55033 WI Dunn
+55035 WI Eau Claire
+55037 WI Florence
+55039 WI Fond du Lac
+55041 WI Forest
+55043 WI Grant
+55045 WI Green
+55047 WI Green Lake
+55049 WI Iowa
+55051 WI Iron
+55053 WI Jackson
+55055 WI Jefferson
+55057 WI Juneau
+55059 WI Kenosha
+55061 WI Kewaunee
+55063 WI La Crosse
+55065 WI Lafayette
+55067 WI Langlade
+55069 WI Lincoln
+55071 WI Manitowoc
+55073 WI Marathon
+55075 WI Marinette
+55077 WI Marquette
+55078 WI Menominee
+55079 WI Milwaukee
+55081 WI Monroe
+55083 WI Oconto
+55085 WI Oneida
+55087 WI Outagamie
+55089 WI Ozaukee
+55091 WI Pepin
+55093 WI Pierce
+55095 WI Polk
+55097 WI Portage
+55099 WI Price
+55101 WI Racine
+55103 WI Richland
+55105 WI Rock
+55107 WI Rusk
+55109 WI St. Croix
+55111 WI Sauk
+55113 WI Sawyer
+55115 WI Shawano
+55117 WI Sheboygan
+55119 WI Taylor
+55121 WI Trempealeau
+55123 WI Vernon
+55125 WI Vilas
+55127 WI Walworth
+55129 WI Washburn
+55131 WI Washington
+55133 WI Waukesha
+55135 WI Waupaca
+55137 WI Waushara
+55139 WI Winnebago
+55141 WI Wood
+56001 WY Albany
+56003 WY Big Horn
+56005 WY Campbell
+56007 WY Carbon
+56009 WY Converse
+56011 WY Crook
+56013 WY Fremont
+56015 WY Goshen
+56017 WY Hot Springs
+56019 WY Johnson
+56021 WY Laramie
+56023 WY Lincoln
+56025 WY Natrona
+56027 WY Niobrara
+56029 WY Park
+56031 WY Platte
+56033 WY Sheridan
+56035 WY Sublette
+56037 WY Sweetwater
+56039 WY Teton
+56041 WY Uinta
+56043 WY Washakie
+56045 WY Weston
diff --git a/src/Makefile.am b/src/Makefile.am
index 1488fa1..ccfd9e4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -54,7 +54,8 @@ roadster_SOURCES = \
animator.c\
tooltipwindow.c\
test_poly.c\
- tiger.c
+ tiger.c\
+ tiger_dialog.c
roadster_LDADD = \
$(GNOME_LIBS) \
diff --git a/src/import.c b/src/import.c
index cd1f2b3..e159ecc 100644
--- a/src/import.c
+++ b/src/import.c
@@ -48,20 +48,20 @@ gboolean import_from_uri(const gchar* pszURI)
#ifdef USE_GNOME_VFS
gboolean bResult = FALSE;
- GnomeVFSFileInfo info;
- if(GNOME_VFS_OK != gnome_vfs_get_file_info(pszURI, &info, GNOME_VFS_FILE_INFO_DEFAULT)) {
+ importwindow_show();
+ GnomeVFSFileInfo *info = gnome_vfs_file_info_new();
+ if(GNOME_VFS_OK != gnome_vfs_get_file_info(pszURI, info, GNOME_VFS_FILE_INFO_DEFAULT)) {
importwindow_log_append("Couldn't read %s\n", pszURI);
return FALSE;
}
// func_progress_callback(0.0, pCallbackData);
- gchar* pszFileBaseName = info.name;
-
+ gchar* pszFileBaseName = info->name;
g_return_val_if_fail(pszFileBaseName != NULL, FALSE);
// does it look like a tgr file name (tgr00000.zip) ?
if(strlen(pszFileBaseName) == 12 && g_str_has_prefix(pszFileBaseName, "TGR") && g_str_has_suffix(pszFileBaseName, ".ZIP")) {
- importwindow_log_append("Importing TIGER file %s", info.name); // NOTE: no "\n" so we can add ...
+ importwindow_log_append("Importing TIGER file %s", pszFileBaseName); // NOTE: no "\n" so we can add ...
gchar buf[6];
memcpy(buf, &pszFileBaseName[3], 5);
buf[5] = '\0';
@@ -83,7 +83,7 @@ gboolean import_from_uri(const gchar* pszURI)
// g_free(pszFileBaseName);
// free file info
- gnome_vfs_file_info_unref(&info);
+ gnome_vfs_file_info_unref(info);
// func_progress_callback(1.0, pCallbackData);
return bResult;
diff --git a/src/tiger.c b/src/tiger.c
index 019e93d..85c9b1f 100644
--- a/src/tiger.c
+++ b/src/tiger.c
@@ -25,8 +25,10 @@
#define TIGER_STATES_FILE DATADIR "/tiger-states.txt"
+#define TIGER_COUNTIES_FILE DATADIR "/tiger-counties.txt"
static GSList *state_list;
+static GHashTable *county_list;
GSList *tiger_get_states()
@@ -67,3 +69,39 @@ GSList *tiger_get_states()
return state_list;
}
+
+GSList *tiger_get_counties(gchar *state_abbrev)
+{
+ gchar *contents, **lines, **iter, **tokens;
+
+ if (county_list)
+ return g_hash_table_lookup(county_list, state_abbrev);
+
+ county_list = g_hash_table_new(g_str_hash, g_str_equal);
+ if (!g_file_get_contents(TIGER_COUNTIES_FILE, &contents, NULL, NULL))
+ {
+ g_warning("Cannot read TIGER counties file %s\n", TIGER_COUNTIES_FILE);
+ return NULL;
+ }
+
+ lines = g_strsplit(contents, "\n", 0);
+ for (iter = lines; iter && **iter; iter++)
+ {
+ struct tiger_county *ct = g_new0(struct tiger_county, 1);
+
+ tokens = g_strsplit(*iter, "\t", 0);
+ ct->fips_code = g_strdup(tokens[0]);
+ ct->state_abbrev = g_strdup(tokens[1]);
+ ct->name = g_strdup(tokens[2]);
+
+ GSList *list = g_hash_table_lookup(county_list, ct->state_abbrev);
+ list = g_slist_append(list, ct);
+ g_hash_table_insert(county_list, ct->state_abbrev, list);
+
+ g_strfreev(tokens);
+ }
+ g_strfreev(lines);
+ g_free(contents);
+
+ return g_hash_table_lookup(county_list, state_abbrev);
+}
diff --git a/src/tiger.h b/src/tiger.h
index 79e5f8b..f2ba85e 100644
--- a/src/tiger.h
+++ b/src/tiger.h
@@ -31,7 +31,14 @@ struct tiger_state {
gchar *abbrev;
};
+struct tiger_county {
+ char *fips_code; /* 5-digit FIPS */
+ char *name;
+ char *state_abbrev;
+};
+
GSList *tiger_get_states();
+GSList *tiger_get_counties(gchar *state_abbrev);
#endif
diff --git a/src/tiger_dialog.c b/src/tiger_dialog.c
new file mode 100644
index 0000000..04cf899
--- /dev/null
+++ b/src/tiger_dialog.c
@@ -0,0 +1,161 @@
+/*
+ * tiger_dialog.c
+ * Allows selection of TIGER files for downloading
+ *
+ * Copyright 2007 Jeff Garrett <jeff@jgarrett.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+#include "gui.h"
+#include "import.h"
+#include "tiger.h"
+#include "tiger_dialog.h"
+
+
+#define TIGER_BASE_URL "http://www2.census.gov/geo/tiger/tiger2006se/"
+
+
+void tiger_dialog_menushow(gpointer user_data, GtkMenuItem *menuitem)
+{
+ gtk_dialog_run(GTK_DIALOG(user_data));
+}
+
+void tiger_dialog_comboinit(GtkComboBox *combobox, gpointer user_data)
+{
+ /* Called in response to the state combobox "realize" event.
+ * We have to make sure the model for the combobox is
+ * initialized to the list of states.
+ */
+
+ GtkListStore *liststore = gtk_list_store_new(3,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING);
+ GSList *states = tiger_get_states();
+
+ for (; states; states = g_slist_next(states))
+ {
+ struct tiger_state *st = g_slist_nth_data(states, 0);
+ GtkTreeIter iter;
+
+ gtk_list_store_append(liststore, &iter);
+ gtk_list_store_set(liststore, &iter,
+ 0, st->name,
+ 1, st->fips_code,
+ 2, st->abbrev,
+ -1);
+ }
+ gtk_cell_layout_clear(GTK_CELL_LAYOUT(combobox));
+ gtk_combo_box_set_model(combobox, GTK_TREE_MODEL(liststore));
+
+ /* Set up the cell renderers */
+ GtkCellRendererText *cell = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox),
+ GTK_CELL_RENDERER(cell), TRUE);
+ /* Column 0 of the list is the state name */
+ gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combobox),
+ GTK_CELL_RENDERER(cell), "text", 0);
+
+ /* Select the first state. This will also trigger a call
+ * to tiger_dialog_setstate() which will set up the county
+ * treeview's model.
+ */
+ gtk_combo_box_set_active(combobox, 0);
+}
+
+void tiger_dialog_selectstate(gpointer user_data, GtkComboBox *combobox)
+{
+ GtkTreeModel *model = gtk_combo_box_get_model(combobox);
+ gint state_idx = gtk_combo_box_get_active(combobox);
+
+ GtkTreeView *county_view = GTK_TREE_VIEW(user_data);
+
+ gchar *path = g_strdup_printf("%d", state_idx);
+ GtkTreeIter iter;
+ if (!gtk_tree_model_get_iter_from_string(model, &iter, path))
+ g_warning("ITER NOT SET!\n");
+
+
+ GValue abbrev = {0};
+ gtk_tree_model_get_value(model, &iter, 2, &abbrev);
+ gchar *state_abbrev = g_value_get_string(&abbrev);
+
+ GSList *counties = tiger_get_counties(state_abbrev);
+
+ GtkListStore *store = gtk_tree_view_get_model(county_view);
+ if (!store)
+ {
+ store = gtk_list_store_new(3, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING);
+ gtk_tree_view_set_model(county_view, GTK_TREE_MODEL(store));
+
+ GtkCellRendererText *cell = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes(county_view, 0, "County", cell, "text", 0, NULL);
+
+ GtkTreeSelection *sel = gtk_tree_view_get_selection(county_view);
+ gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
+ }
+ gtk_list_store_clear(store);
+ for (; counties ; counties = g_slist_next(counties))
+ {
+ struct tiger_county *ct = g_slist_nth_data(counties, 0);
+ GtkTreeIter iter;
+
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ 0, ct->name,
+ 1, ct->fips_code,
+ 2, ct->state_abbrev,
+ -1);
+ }
+ g_value_unset(&abbrev);
+}
+
+void tiger_dialog_import(gpointer user_data, gint response, GtkDialog *dialog)
+{
+ GtkTreeView *county_view = GTK_TREE_VIEW(user_data);
+
+ gtk_widget_hide(GTK_WIDGET(dialog));
+ if (response != GTK_RESPONSE_OK)
+ return;
+
+ /* Start the import */
+ GtkTreeSelection *sel = gtk_tree_view_get_selection(county_view);
+
+ GtkTreeModel *model;
+ GSList *paths = gtk_tree_selection_get_selected_rows(sel, &model);
+
+ for (; paths; paths = g_slist_next(paths))
+ {
+ GtkTreeIter iter;
+ gtk_tree_model_get_iter(model, &iter, g_slist_nth_data(paths, 0));
+
+ GValue tmp = {0};
+
+ gtk_tree_model_get_value(model, &iter, 1, &tmp);
+ gchar *fips = g_value_dup_string(&tmp);
+ g_value_unset(&tmp);
+
+ gtk_tree_model_get_value(model, &iter, 2, &tmp);
+ gchar *abbrev = g_value_dup_string(&tmp);
+ g_value_unset(&tmp);
+
+ gchar *uri = g_strdup_printf(TIGER_BASE_URL "%s/TGR%s.ZIP", abbrev, fips);
+ g_warning("Import from %s", uri);
+ import_from_uri(uri);
+ }
+}
diff --git a/src/tiger_dialog.h b/src/tiger_dialog.h
new file mode 100644
index 0000000..0906385
--- /dev/null
+++ b/src/tiger_dialog.h
@@ -0,0 +1,35 @@
+/*
+ * tiger_dialog.h
+ * Allows selection of TIGER files for downloading
+ *
+ * Copyright 2007 Jeff Garrett <jeff@jgarrett.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __TIGER_DIALOG_H
+#define __TIGER_DIALOG_H
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+
+
+/* GUI callbacks */
+void tiger_dialog_menushow(gpointer user_data, GtkMenuItem *menuitem);
+void tiger_dialog_comboinit(GtkComboBox *combobox, gpointer user_data);
+void tiger_dialog_selectstate(gpointer user_data, GtkComboBox *combobox);
+void tiger_dialog_import(gpointer user_data, gint response, GtkDialog *dialog);
+
+#endif