Interactive Federal and State
Political District Maps
Colored By Party

Produced by: Joseph Elfelt    Contact
Twitter @mappingsupport

Do you see a map that is not working right? Do you have a suggestion for improvements?
Please send me an email.

Close Introduction

The non-partisan map links you see here display data showing political districts at the national and state level. This political district data is hosted on various government GIS (Geographic Information System) servers. The data flows from those servers to your screen.
While every effort is made to display the current district boundaries sometimes the GIS servers lack sufficient metadata to show whether a particular data layer on the server is for the current boundaries or a prior set of district boundaries. If you see district boundaries on any of these maps that are no longer current please use the contact link at the top of this page to let me know. I cannot fix it if I do not know it is broken.

There is a map for the USA that can display semi-transparent coloring based on U.S. senate seats and congressional seats.     Blue = Democratic
    Red = Republican
    No color = Either the seat is vacant or the office holder belongs to some different party.

Some state maps can also display semi-transparent coloring for the state legislature districts. Adding these colored overlay layers to a state map is only possible if the state has an ArcGIS server that is hosting the legislative district boundary data that meets the following criteria:

1. The district boundary data is hosted as a MapServer layer.
2. Dynamic layers are enabled. This feature allows my code to tell the server how to color the data before sending it to your screen.
3. Each district has attribute data that provides the party affiliation of the person holding the seat.

At the time this web page is being launched (mid January 2020) I have only been able to find data for 15 states that meet the above criteria.

OK you other states, listen up. From responses I have received on social media I can report on good authority that people have great interest in seeing maps with this kind of semi-transparent color coding. Obviously there is no technical reason why every state cannot host a MapServer layer that meets the above criteria. And interest in maps like these will only grow as redistricting takes place next year. I can produce these maps for any state where the data is available. Now it is your turn to make the data available as described above.

The maps are displayed by GISsurfer which is a general purpose web map I developed. For more information about GISsurfer, please visit the homepage: (you will be redirected). Each map has a "Map tips" link in the upper left corner with general information to help you get the most benefit from the map.

Close Introduction


Close Updates

Whenever I hear that another state now has an ArcGIS MapServer layer that meets the criteria listed above, then I will post a note here as soon as I update the map for that state with the semi-transparent state legislature overlay layers.

Which state wants to be the first one added here?

Close Updates

Stacking Map Overlays
Close stacking

The order with which you turn on the overlays can greatly affect the appearance of the map. Here are a couple ideas for turning on layers that you might find useful.

On any state map that has overlays for the state legislature, start by turning off all overlays then turn the following overlays on in this order:
1. congress fill
2. state house fill
3. congress boundary

Any purple areas show where there is significant support for the party that does not hold that congressional seat.

Here’s another idea. Start with any state map that has overlays for the state legislature. Turn off all overlays then turn the following overlays on in this order:
1. state house fill
2. county boundary
3. county name
4. state house boundary

Now you have a map that shows where state house districts cross county lines.

Close stacking

Federal Map Link
Close Federal

Please read the "Map tips". That link is in the upper left corner of every map.

The map displays the congressional districts when it opens with semi-transparent coloring based on party. You can also display semi-transparent coloring based on party affiliation of the two state senators.

There is no coloring on Maine which has one independent senator and one republican senator. There is also no coloring on Vermont which has one independent senator and one democratic senator. I tried various ways to tell the GIS server to put some coloring on those states but nothing worked. I suspect the coloring command just became too complex for the GIS server to handle.,-98.922764&zoom=4&basemap=USA_basemap&overlay=USA_house_fill,USA_house_black_line&txtfile=

Close Federal

State Map Links
Close State

Please read the "Map tips". That link is in the upper left corner of every map.

All states except Nebraska have a legislature with both a lower and upper chamber which are known by various names. These maps will uniformly refer to the lower chamber as "house" and the upper chamber as "senate". When a map opens, the house districts are displayed.

There are three types of maps based on how the data is hosted on the state GIS server. The phrase you see - or do not see - after the name of the state tells you the map type.

First, if you see "black and yellow lines, semi-transparent fill" then the state house and senate layers can display semi-transparent blue or red based on the party affilation of the person holding the seat. You can also display either black district lines or yellow district lines. These GIS servers support "dynamic layers" and also include an attribute value that shows party affiliation.

Maps in this first group have three layers (house, senate, congress) that can display semi-transparent fill based on the party of the office holder. You can turn on more than one of these "fill" layers at the same time and see which areas become more blue, or more red or purple.

Second, if you only see "black and yellow lines" after the name of the state then the state house and senate layers can display either black district lines or yellow district lines. There is no fill. These GIS servers support "dynamic layers" but do not include an attribute value that shows party affiliation.

Third, if you see nothing after the name of the state then you will see the styling for the data (line width/color, fill) that is defined on the server. In other words, I did not find the district data on an ArcGIS server that supports "dynamic layers".

To the best of my knowledge, all the state legislature district lines you see on these maps are current. But it was a bunch of work to compile this information and mistakes can happen. So if you see a map that displays outdated district lines, please use the contact link at the top of this web page to let me know.
Note that the attribute data you can see by clicking the 'top' layer will vary widely from state to state. Don't know what 'top' means? Please read the "Map tips".

When you open any map and turn on the overlay list you will see three overlays with a yellow background. Two of those overlays display legislative districts for the entire USA. That data is hosted on a Census Bureau ArcGIS server. Except for North Carolina, to the best of my knowledge that data is current. However, that server does not support dynamic layers and does not include an attribute showing the party of the person holding the seat.

Alabama   black and yellow lines, semi-transparent fill,-86.919090&zoom=7&basemap=USA_basemap&overlay=AL_state_house_fill,AL_state_house_black_line&txtfile=

Alaska   black and yellow lines,-148.763098&zoom=4&basemap=USA_basemap&overlay=AK_state_house_black_line&txtfile=

Arizona   black and yellow lines, semi-transparent fill

In this state the house districts and senate districts are the same.,-112.751014&zoom=6&basemap=USA_basemap&overlay=AZ_state_house_fill,AZ_legislature_black_line&txtfile=

Arkansas   black and yellow lines, semi-transparent fill,-92.521087&zoom=7&basemap=USA_basemap&overlay=AR_state_house_fill,AR_state_house_black_line&txtfile=

California   black and yellow lines,-119.632155&zoom=6&basemap=USA_basemap&overlay=CA_state_house_black_line&txtfile=

Colorado   black and yellow lines, semi-transparent fill,-105.581907&zoom=7&basemap=USA_basemap&overlay=CO_state_house_fill,CO_state_house_black_line&txtfile=

Connecticut,-72.752226&zoom=9&basemap=USA_basemap&overlay=CT state house&txtfile=


Florida   black and yellow lines, semi-transparent fill,-83.337922&zoom=7&basemap=USA_basemap&overlay=FL_state_house_fill,FL_state_house_black_line&txtfile=

Georgia   black and yellow lines,-83.372465&zoom=7&basemap=USA_basemap&overlay=GA_state_house_black_line&txtfile=

Hawaii   black and yellow lines,-157.641459&zoom=7&basemap=USA_basemap&overlay=HI_state_house_black_line&txtfile=

Idaho   black and yellow lines

In this state the house districts and senate districts are the same.,-115.652934&zoom=6&basemap=USA_basemap&overlay=ID_legislature_black_line&txtfile=

Illinois   black and yellow lines,-88.910980&zoom=9&basemap=USA_basemap&overlay=IL_state_house_black_line&txtfile=

Indiana   black and yellow lines, semi-transparent fill,-85.950408&zoom=7&basemap=USA_basemap&overlay=IN_state_house_fill,IN_state_house_black_line&txtfile=

Iowa   black and yellow lines, semi-transparent fill,-93.455203&zoom=7&basemap=USA_basemap&overlay=IA_state_house_fill,IA_state_house_black_line&txtfile=


The state legislature layers are semi-transparent since they are defined that way on the GIS server. The server does *not* support dynamic layers.,-98.213845&zoom=7&basemap=USA_basemap&overlay=KS_state_house&txtfile=

Kentucky   black and yellow lines, semi-transparent fill,-85.797240&zoom=7&basemap=USA_basemap&overlay=KY_state_house_fill,KY_state_house_black_line&txtfile=

Louisiana   black and yellow lines,-92.509466&zoom=7&basemap=USA_basemap&overlay=LA_state_house_black_line&txtfile=


1-15-2020 the public data layers on the State GIS servers only have outdated legislature district boundaries. I emailed the state GIS staff.

Maryland link will be posted soon...

Massachusetts   black and yellow lines, semi-transparent fill,-71.842249&zoom=8&basemap=USA_basemap&overlay=MA_state_house_fill,MA_state_house_black_line&txtfile=

Michigan   black and yellow lines, semi-transparent fill,-85.176944&zoom=6&basemap=USA_basemap&overlay=MI_state_house_fill,MI_state_house_black_line&txtfile=

Minnesota   black and yellow lines,-93.666662&zoom=6&basemap=USA_basemap&overlay=MN_state_house_black_line&txtfile=

Mississippi   black and yellow lines, semi-transparent fill,-89.457997&zoom=7&basemap=USA_basemap&overlay=MS_state_house_fill,MS_state_house_black_line&txtfile=

Missouri   black and yellow lines,-92.631135&zoom=7&basemap=USA_basemap&overlay=MO_state_house_black_line&txtfile=

Montana   black and yellow lines

The map has to be zoomed in a bit before the legislature district lines will display.
In this state the house districts and senate districts are the same.,-111.913729&zoom=9&basemap=USA_basemap&overlay=MT_legislature_black_line&txtfile=

Nebraska   black and yellow lines

The legislature only has one chamber and it is non-partisan.,-100.331647&zoom=7&basemap=USA_basemap&overlay=NE_legislature_black_line&txtfile=

Nevada,-118.668928&zoom=6&basemap=USA_basemap&overlay=NV state house&txtfile=

New Hampshire   black and yellow lines,-71.339955&zoom=7&basemap=USA_basemap&overlay=NH state house black line&txtfile=

New Jersey   black and yellow lines, semi-transparent fill

In this state the house districts and senate districts are the same.,-74.726426&zoom=8&basemap=USA_basemap&overlay=NJ_state_house_fill,NJ_legislative_black_line&txtfile=

New Mexico,-107.025454&zoom=6&basemap=USA_basemap&overlay=NM_state_house&txtfile=

New York,-76.194198&zoom=7&basemap=USA_basemap&overlay=NY_state_house&txtfile=

North Carolina,-79.700418&zoom=7&basemap=USA_basemap&overlay=NC_state_house&txtfile=

North Dakota   black and yellow lines

In this state the house districts and senate districts are the same.,-100.896770&zoom=7&basemap=USA_basemap&overlay=ND_legislature_black_line&txtfile=

Ohio   black and yellow lines, semi-transparent fill,-82.534485&zoom=7&basemap=USA_basemap&overlay=OH_state_house_fill,OH_state_house_black_line&txtfile=

Oklahoma   black and yellow lines,-98.486469&zoom=7&basemap=USA_basemap&overlay=OK_state_house_black_line&txtfile=

Oregon   black and yellow lines, semi-transparent fill,-120.537377&zoom=7&basemap=USA_basemap&overlay=OR_state_house_fill,OR_state_house_black_line&txtfile=


Rhode Island   black and yellow lines,-71.552125&zoom=9&basemap=USA_basemap&overlay=RI_state_house_black_line&txtfile=

South Carolina,-81.151109&zoom=7&basemap=USA_basemap&overlay=SC_state_house&txtfile=

South Dakota   black and yellow lines

Did not find the current legislature district data on the state's ArcGIS server. I emailed the state GIS staff.
In this state the house districts and senate districts are the same.

Tennessee   black and yellow lines,-86.217299&zoom=7&basemap=USA_basemap&overlay=TN_state_house_black_line&txtfile=

Texas   black and yellow lines, semi-transparent fill,-100.516009&zoom=6&basemap=USA_basemap&overlay=TX_state_house_fill,TX_state_house_black_line&txtfile=


Vermont   black and yellow lines,-72.478381&zoom=8&basemap=USA_basemap&overlay=VT_state_house_black_line&txtfile=

Virginia   black and yellow lines,-79.481818&zoom=7&basemap=USA_basemap&overlay=VA_state_house_black_line&txtfile=

Washington   black and yellow lines

In this state the house districts and senate districts are the same.,-121.032254&zoom=7&basemap=USA_basemap&overlay=WA_legislature_black_line&txtfile=

West Virginia   black and yellow lines,-80.014995&zoom=7&basemap=USA_basemap&overlay=WV state house black line&txtfile=


Wyoming   black and yellow lines,-107.971346&zoom=7&basemap=USA_basemap&overlay=WY state house black line&txtfile=

Close State

Peek Under The Hood
Close Peek

For the curious among you, here is some insight into how I produced these political district maps with color shading based on party affiliation.

In order to display GIS data on a map you first have to know the address of the server that is hosting the data you want to display. So I started by referring to the list of ArcGIS server addresses that I curate. The list is closing in on 3,000 addresses for USA-based ArcGIS servers at all levels of government from federal down to local. And while it is tedious to skim through a server's table of contents looking for a particular type of data, it is generally not technically difficult.

This curated list of ArcGIS server addresses is in a PDF file at:

When I find a layer on a server that has district boundary data then I look to see if the criteria are satisfied that will enable me to display those districts with semi-transparent coloring based on party. Is the data hosted on the GIS server (1) as a MapServer layer (2) with dynamic layers enabled and (3) with an giving party affiliation of the person holding the seat?

GISsurfer uses the free open source Leaflet map API (Application Program Interface) and the ESRI Leaflet plugin. My code uses dynamic layers syntax to tell the server how to color the districts before the server sends that data to your screen. Each GISsurfer map link includes a pointer to a txt file that specifies (1) the GIS overlay layers the map can display and (2) any styling the server should apply to those layers. To view the dynamic layers syntax GISsurfer is using, simply paste the address for any of those txt files into your browser. If you are familiar with JSON syntax then you will feel right at home. Otherwise this will likely look like gibberish.

Notice that each set of districts usually has two overlay layers that you can turn on/off on the map. One layer displays the semi-transparent shading but does not display the district boundaries. The other layer only displays the district boundaries. The reason for doing it this way is so the boundary data only displays once. Otherwise a lot of the boundary data would display twice where adjoining districts were held by different parties. Both of these overlays (fill and boundary) that you can turn on/off with GISsurfer come from the exact same layer on the ArcGIS server and will display the same set of attribute data irrespective of which overlay is 'on top'.

Close Peek

How To Make Google District Maps
Close Google

The U.S. Census Bureau operates a GIS server that has district boundary data for the state legislature districts and congressional districts. Anyone can download that boundary data for a district and then import that data into Google maps. The result is a nice Google map that shows the boundary of that political district and costs nothing.

A Google map showing the boundary of a political district can be used on a campaign website and for various other purposes.

Below is a link to a PDF file I produced with step-by-step instructions for using boundary data from the Census Bureau to make a Google map for a political district. The PDF file includes a link to a Google map that was made by following these steps.

Close Google