CINXE.COM

Members of Congress & Congressional District Maps - GovTrack.us

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Members of Congress &amp; Congressional District Maps - GovTrack.us</title> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <link rel="apple-touch-icon" sizes="180x180" href="/static/favicon/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon/favicon-16x16.png"> <link rel="manifest" href="/static/favicon/site.webmanifest"> <meta name="msapplication-TileColor" content="#9B2347"> <meta name="theme-color" content="#9B2347"> <link href="/static/vendor/bootstrap.min.css" rel="stylesheet"> <link href="/static/vendor/fontawesome/css/fontawesome.css" rel="stylesheet"> <link href="/static/vendor/fontawesome/css/solid.css" rel="stylesheet"> <link href="/static/vendor/fontawesome/css/brands.css" rel="stylesheet"> <link media="all" rel="stylesheet" href="/static/css/all-min.css?20241114" /> <meta name="description" content="What congressional district are you in? Find your U.S. Congress senators and representative using a map." /> <meta name="keywords" content="United States Congress,U.S. Congress,congressional districts,map,senator,senators,representative,representatives,congressman,congressmen,congresswoman,congresswomen,House of Representatives,Senate" /> <meta name="robots" content="noai, noimageai"> <meta name="fediverse:creator" content="@govtrack@mastodon.social" /> <meta property="fb:app_id" content="119329904748946" /> <meta property="og:site_name" content="GovTrack.us" /> <meta property="og:image" content="https://www.govtrack.us/static/images/media_icon.png?20230729" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-GD8FT6MB9V"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-GD8FT6MB9V'); </script> <script type="text/javascript"> window.post_jquery_load_scripts = []; </script> <!-- Mapbox --> <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' /> <script src='https://api.mapbox.com/mapbox-gl-js/v2.6.0-beta.1/mapbox-gl.js'></script> <link href='https://api.mapbox.com/mapbox-gl-js/v2.6.0-beta.1/mapbox-gl.css' rel='stylesheet' /> <style> .spanbullets span:after { display: inline; content: " · "; } .spanbullets span:last-child:after { display: none; content: ""; } #map { width: 100%; height: 80vh; border: 1px solid #999; } </style> </head> <body class=""> <!--[if lt IE 8]><p style="background-color: black; color: white;">Internet Explorer version 8 or any modern web browser is required to use this website, sorry.<![endif]--> <!--[if gt IE 7]><!--> <div id="bodybody"> <div id="skiptocontent"><a href="#maincontent">skip to main content</a></div> <div style="text-align: center; padding: 15px 5px;"> <a href="https://www.kickstarter.com/projects/govtrack/alert-new-executive-order?ref=bxwr19"> <img src="/static/kickstarter-2025-banner.png" class="img-fluid" style="max-width: 100%; max-height: 20vh;"> </a> </div> <div id="masthead-overbar"> <div class="container"> <a href="/accounts/membership" class="yellow"> <span>Hide The Ads ▶</span> </a> <div style="display: inline-block; padding-left: 2em;"> <a id="nav_login" class="yellow" href="/accounts/login?next=/congress/members/map"><span>Log In ▶</span></a> <div id="nav_session" class="dropdown" style="display: none"> <button class="btn btn-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" style="padding: .15rem .5rem"> Your Account </button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="/accounts/lists">Your Subscriptions &amp; Lists</a></li> <li><a class="dropdown-item" href="/accounts/positions">Your Positions</a></li> <li><a class="dropdown-item" href="/accounts/docket">Your Docket</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="/accounts/profile" title="">Account Settings</a></li> <li><a class="dropdown-item" href="/accounts/logout?next=/congress/members/map">Log Out</a></li> </ul> </div> </div> </div> </div> <div id="masthead"> <nav class="navbar navbar-expand-lg bg-body-tertiary"> <div class="container"> <div id="logo-container"> <a id="logo" href="/" class="navbar-brand ">govtrack.us</a> <div style="margin-top: .75em; line-height: 1em; font-size: 11.75px; letter-spacing: -.25px;">Tracking the U.S. Congress&#x2002;#OpenGov</div> </div> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Bills &amp; Votes </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="/congress/bills">Bills in Congress</a></li> <li><a class="dropdown-item" href="/congress/votes">Congressional Votes</a></li> <li><a class="dropdown-item" href="/posts">Coming Up, Recap, and Analysis</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Legislators </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="/congress/members">Representatives &amp; Senators</a></li> <li><a class="dropdown-item" href="/congress/members/map">Congressional Districts Map</a></li> <li><a class="dropdown-item" href="/congress/committees">Committees</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="/misconduct">Misconduct Database</a></li> <li><a class="dropdown-item" href="/congress/members/missing">Missing Legislators</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Help </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="/how-to-use">How To Use GovTrack</a></li> <li><a class="dropdown-item" href="/for-educators">For Educators</a></li> <li><a class="dropdown-item" href="/for-advocates">For Advocates</a></li> <li><a class="dropdown-item" href="/for-hill-staff">For Congressional Staff</a></li> <li><a class="dropdown-item" href="/for-journalists">For Journalists</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="/how-a-bill-becomes-a-law">How does a bill become a law?</a></li> <li><a class="dropdown-item" href="/what-is-the-law">What is the law?</a></li> <li><a class="dropdown-item" href="/congressional-procedures">Congressional Procedures</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> About Us </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="/about">About GovTrack.us</a></li> <li><a class="dropdown-item" href="/about-our-data">About Our Data</a></li> <li><a class="dropdown-item" href="/posts/news">Site News</a></li> <li><a class="dropdown-item" href="/press">Press Clips</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="/reading-list">Books and Games We Recommend</a></li> <li><a class="dropdown-item" href="/congress/committees/game">Guess the Committee<i>!</i></a></li> </ul> </li> </ul> <form class="d-flex" role="search" name="header_search" action="/search"> <label for="master_search_q" class="sr-only">Search GovTrack for</label> <input class="form-control me-2" type="search" placeholder="bill, legislator, or keyword" aria-label="Search" id="master_search_q" name="q"> <button class="btn btn-outline-success" type="submit"><span class="fas fa-search"></span> <span class="sr-only">Search</span></button> </form> </div> </div> </nav> <div id="sitenewscontainer" class="navbar-default" > <div id="sitenews"> <a href="/posts/479/2025-02-19_hearings-ahoy">Legislative Preview Feb 19, 2025: <b>Hearings Ahoy</b> &raquo;</a> </div> <!-- /sitenews --> </div> <!-- /sitenewscontainer --> </div> <!-- /masthead --> <div id="breadcrumbs"> <div class="container"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="/congress/members">Members of Congress</a></li> </ol> </nav> </div> </div> <div id="maincontent" class="container"> <div id="content"> <h1>Congressional Districts Map</h1> <div style="margin: 2em 0"> <form class="form-inline" onsubmit="do_address(); return false;"> <p>Find your representative (a.k.a. congressman or congresswoman) by entering your address or clicking a district in the map:</p> <div class="form-group"> <label for="user-address" class="sr-only">Address</label> <input type="text" class="form-control" id="user-address" placeholder="Enter an address in the United States"> </div> <button type="submit" class="btn btn-primary">Find My District</button> </form> <div style="margin: .5em"><a href="#" onclick="do_by_current_location(); return false;" style="text-decoration: none"><i class="fas fa-map-marker" aria-hidden="true"></i> I&rsquo;m at home, use my phone/computer&rsquo;s location</a></div> </div> <div class="row"> <div class="col-xs-12"> <div style="margin: 2em 0"> </div> <div id='map'></div> <div style="clear: both; text-align: center; margin: 1em"> <div id="embed_teaser"> <a href="#" onclick="$('#embed_teaser').hide(); $('#embed_details').fadeIn(); return false;">Embed this map on your website...</a> </div> <div id="embed_details" style="display: none;"> <div style="text-align: center">Use this HTML code:</div> <pre id="embedpre" wrap="hard" style="overflow: auto; margin: 15px; font-size: 90%; color: black;">&lt;iframe width="425" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.govtrack.us/congress/members/embed/mapframe?&amp;bounds=<span id="embedbounds"></span>"&gt;&lt;/iframe&gt;</pre> </div> </div> </div> <!-- /col --> </div> <!-- /row --> <div class="ads footer leaderboard" data-zone="footer"> <div class="explainer">(<a href="/advertising">About Ads</a> | <a href="/accounts/membership">Hide These Ads</a>)</div> </div> </div><!-- /content --> </div> <!-- /container --> </div> <!-- /#bodybody --> <footer id="footer"> <div class="container"> <div class="row"> <nav class="col-6 col-md-2"> <ul> <li><a href="/">Home</a></li> <li><a href="/about">About GovTrack</a></li> <li><a href="/about-our-data">About the Data</a></li> <li><a href="/contact">Contact Us</a></li> <li><a href="/legal">Privacy &amp; Legal</a></li> </ul> </nav> <nav class="col-6 col-md-2"> <ul> <li><a href="/posts/news"><i class="fas fa-list fa-fw"></i>Site News</a></li> <li><a rel="me" href="https://mastodon.social/@GovTrack"><i class="fab fa-mastodon fa-fw"></i>Mastodon</a></li> <li><a href="https://bsky.app/profile/govtrack.us"><i class="fab fa-bluesky fa-fw"></i>Bluesky</a></li> <li><a href="https://www.patreon.com/govtrack"><i class="fas fa-dollar-sign fa-fw"></i><span>Patreon</span></a></li> <li><a href="https://github.com/govtrack"><i class="fab fa-github fa-fw"></i><span>GitHub</span></a></li> </ul> </nav> <section class="col-12 col-md-8"> <p>GovTrack helps everyone learn about and track the activities of the United States Congress. Launched more than 20 years ago, we&rsquo;re one of the oldest government transparency and accountability websites on the Internet.</p> <p>This is a project of <a href="http://www.civicimpulse.com">Civic Impulse, LLC</a>. GovTrack.us is <b>not</b> a government website.</p> </section> </div> </div> </footer> <div id="error_modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="errorModalTitle" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title" id="errorModalTitle">[error message]</h2> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-bs-dismiss="modal">OK</button> </div> </div> </div> </div> <script type="text/javascript" src="/static/vendor/jquery.js"></script> <script type="text/javascript" src="/static/js/jquery.cookie.js"></script> <script type="text/javascript" src="/static/js/jquery-utils.js?20160310"></script> <script type="text/javascript" src="/static/vendor/jquery.lazy.min.js"></script> <script src="/static/vendor/bootstrap.bundle.min.js"></script> <script type="text/javascript" src="/_twostream/user-head?path=/congress/members/map"> </script> <script> gtag('set', 'user_properties', { Registered: the_user ? "Logged In" : "Anonymous", GeoSegment: the_segment }); <!-- Master page elements when using the user-head script --> if (the_user) { $('#nav_login').hide(); $('#nav_session').show(); $('#nav_session > button').text(the_user.email); } </script> <script src="/static/js/govtrack.js?20240911"></script> <script src="/static/js/congressional-districts-bboxes-119-2024.js"> </script> <script> // Mapbox configuration var accessToken = 'pk.eyJ1IjoiZ292dHJhY2siLCJhIjoiY2lua2J1cmwzMHhyNnVrbHl3bmx4ZnZneiJ9.Wld_AdbKwOgmF2ZXn2SPmw'; var styleURL = 'mapbox://styles/govtrack/cm55q1wti00ks01s830bgdegp'; var mapId = 'govtrack.cd\u002D119\u002D2024'; var state = null; var district = null; var bbox; if (state && district) bbox = bboxes[state + district] else if (state) bbox = bboxes[state]; else bbox = [-128.8, 23.5, -65.4, 53]; // United States function lngLatBoundsToCameraOptions(bounds) { var w = $('#map').width(); var h = $('#map').height(); // during initialization the element dimensions may not be available and can be negative?! in which case use the window dimensions if (!w || !h || (w*h) < 320*200) { w = $(window).width(); h = $(window).height(); } var zoom = Math.log(((w*h) / ((bounds.getNorth()-bounds.getSouth()) * (bounds.getEast() - bounds.getWest())))) / 1.75 return { center: bounds.getCenter(), zoom: zoom }; } // Initialize the map // Use an Albers equal area projection. Center the projection on the state/district // if we're opening on a state/district to minimize distortion in the default view, // although that creates an interesting effect when zooming out! mapboxgl.accessToken = accessToken; var bounds = mapboxgl.LngLatBounds.convert([[bbox[0], bbox[1]], [bbox[2], bbox[3]]]); var camera = lngLatBoundsToCameraOptions(bounds); var projection = null; if (state != "AK" && state != "AS") // the albers projection doesn't work right for these projection = { name: 'albers', center: camera.center.toArray(), parallels: [23.5, 53] }; var map = new mapboxgl.Map({ container: 'map', style: styleURL, projection: projection, center: camera.center, zoom: camera.zoom }); // Once map is fully loaded... map.on('load', function() { // set controls map.addControl(new mapboxgl.NavigationControl(), 'top-left'); map.touchZoomRotate.disableRotation(); // Create a filter to show only the selected state and district. map.showCongressionalDistrict = function(state, district) { var filter = ['all']; if (state) filter.push(['==', 'state', state]); if (district) filter.push(['==', 'number', district]); map.setFilter("CD-Fills", filter); // Could also do CD-Outlines and CD-Labels. } map.showCongressionalDistrict(state, district); }); // Add markers. map.addMarker = function(label, lnglat) { var marker = new mapboxgl.Popup({ closeButton: false, closeOnClick: false }).setLngLat(lnglat) .setText(label) .addTo(map); return marker; }; function address_to_latlng(address, callback) { $.ajax({ url: 'https://api.mapbox.com/geocoding/v5/mapbox.places/' + encodeURIComponent(address) + '.json?country=us&access_token=' + accessToken, method: 'GET', success: function(resp) { if (resp.type == "FeatureCollection" && resp.features.length > 0) { callback(resp.features[0].center); return; } alert("Could not find that address."); } }); } function map_click_to_district(clickEventData, callback) { // The map control provides a client-side-only way to determine what // is under the cursor. But this only sees features that are currently // shown on the map. so if a filter is applied and the click is on // a district that is not shown, then this will miss the feature, // but we'll fall back to the tilequery API in that case. And it // uses the click event's screen coordinate. var features = map.queryRenderedFeatures( clickEventData.point, { layers: ["CD-Fills"] }); if (features.length > 0) { callback(features[0].properties); return; } if (!map.getFilter("CD-Fills")) { // If no filter is applied, then a negative result is definitive. callback(null); return; } // Fall back to the Mapbox Tilequery API. This is likely to happen // if a filter is applied (which you could test with // map.getFilter("CD-Fills"), but we might as well see if the click // is on a rendered feature before hitting the API. return latlng_to_district(clickEventData.lngLat, callback); } function latlng_to_district(lngLat, callback) { // Note that, from the Mapbox API docs: // "Use of this endpoint is rate limited to 600 requests per minute." $.ajax({ url: 'https://api.mapbox.com/v4/' + mapId + '/tilequery/' + lngLat.lng + ',' + lngLat.lat + '.json?radius=0&access_token=' + accessToken, method: 'GET', success: function(resp) { if (resp.type == "FeatureCollection" && resp.features.length > 0) // resp is always a FeatureCollection, just sanity checking, but it might // be empty. If it's not empty, it will contain a single Feature // (whose geometry is a Polygon) represending the boundaries of a // congressional district. Its properties come from the original // GeoJSON uploaded to Mapbox. callback(resp.features[0].properties); else // Click was not on a district. callback(null); } }); } </script> <script> var current_district_popup; var hover_popup = new mapboxgl.Popup({ closeButton: false, closeOnClick: false }); map.on("mouseenter", "CD-Fills", function(e) { map.getCanvas().style.cursor = 'pointer'; }); //map.on("mouseleave", "CD-Fills", function(e) { map.getCanvas().style.cursor = ''; }); // when going between districts a leave event for the previous district can fire after the enter event for the next district? //map.on("click", "CD-Fills", function(e) { show_district_popup(e, e.features[0].properties); }); // doesn't work if not all districts are shaded map.on("click", function(e) { map_click_to_district(e, function(feature) { show_district_popup(e, feature); }) }); var current_legislators_by_district = { "AL4": { "name": "Rep. Robert Aderholt [R]" }, "FL12": { "name": "Rep. Gus Bilirakis [R]" }, "GA2": { "name": "Rep. Sanford Bishop [D]" }, "FL16": { "name": "Rep. Vern Buchanan [R]" }, "CA41": { "name": "Rep. Ken Calvert [R]" }, "IN7": { "name": "Rep. André Carson [D]" }, "TX31": { "name": "Rep. John R. Carter [R]" }, "FL14": { "name": "Rep. Kathy Castor [D]" }, "CA28": { "name": "Rep. Judy Chu [D]" }, "NY9": { "name": "Rep. Yvette Clarke [D]" }, "MO5": { "name": "Rep. Emanuel Cleaver [D]" }, "SC6": { "name": "Rep. James “Jim” Clyburn [D]" }, "TN9": { "name": "Rep. Steve Cohen [D]" }, "OK4": { "name": "Rep. Tom Cole [R]" }, "VA11": { "name": "Rep. Gerald Connolly [D]" }, "CA21": { "name": "Rep. Jim Costa [D]" }, "CT2": { "name": "Rep. Joe Courtney [D]" }, "AR1": { "name": "Rep. Eric “Rick” Crawford [R]" }, "TX28": { "name": "Rep. Henry Cuellar [D]" }, "IL7": { "name": "Rep. Danny Davis [D]" }, "CO1": { "name": "Rep. Diana DeGette [D]" }, "CT3": { "name": "Rep. Rosa DeLauro [D]" }, "TN4": { "name": "Rep. Scott DesJarlais [R]" }, "FL26": { "name": "Rep. Mario Diaz\u002DBalart [R]" }, "TX37": { "name": "Rep. Lloyd Doggett [D]" }, "TN3": { "name": "Rep. Charles “Chuck” Fleischmann [R]" }, "NC5": { "name": "Rep. Virginia Foxx [R]" }, "CA8": { "name": "Rep. John Garamendi [D]" }, "AZ9": { "name": "Rep. Paul Gosar [R]" }, "MO6": { "name": "Rep. Sam Graves [R]" }, "TX9": { "name": "Rep. Al Green [D]" }, "VA9": { "name": "Rep. Morgan Griffith [R]" }, "AZ7": { "name": "Rep. Raúl Grijalva [D]" }, "KY2": { "name": "Rep. Brett Guthrie [R]" }, "MD1": { "name": "Rep. Andy Harris [R]" }, "CT4": { "name": "Rep. James “Jim” Himes [D]" }, "MD5": { "name": "Rep. Steny Hoyer [D]" }, "MI4": { "name": "Rep. Bill Huizenga [R]" }, "GA4": { "name": "Rep. Henry C. “Hank” Johnson [D]" }, "OH4": { "name": "Rep. Jim Jordan [R]" }, "OH9": { "name": "Rep. Marcy Kaptur [D]" }, "MA9": { "name": "Rep. William R. Keating [D]" }, "PA16": { "name": "Rep. Mike Kelly [R]" }, "WA2": { "name": "Rep. Rick Larsen [D]" }, "CT1": { "name": "Rep. John Larson [D]" }, "OH5": { "name": "Rep. Robert Latta [R]" }, "CA18": { "name": "Rep. Zoe Lofgren [D]" }, "OK3": { "name": "Rep. Frank Lucas [R]" }, "MA8": { "name": "Rep. Stephen Lynch [D]" }, "CA7": { "name": "Rep. Doris Matsui [D]" }, "TX10": { "name": "Rep. Michael McCaul [R]" }, "CA5": { "name": "Rep. Tom McClintock [R]" }, "MN4": { "name": "Rep. Betty McCollum [D]" }, "MA2": { "name": "Rep. James “Jim” McGovern [D]" }, "NY5": { "name": "Rep. Gregory Meeks [D]" }, "WI4": { "name": "Rep. Gwen Moore [D]" }, "NY12": { "name": "Rep. Jerrold Nadler [D]" }, "MA1": { "name": "Rep. Richard Neal [D]" }, "DC0": { "name": "Rep. Eleanor Holmes Norton [D]" }, "NJ6": { "name": "Rep. Frank Pallone [D]" }, "CA11": { "name": "Rep. Nancy Pelosi [D]" }, "ME1": { "name": "Rep. Chellie Pingree [D]" }, "IL5": { "name": "Rep. Mike Quigley [D]" }, "KY5": { "name": "Rep. Harold “Hal” Rogers [R]" }, "AL3": { "name": "Rep. Mike Rogers [R]" }, "LA1": { "name": "Rep. Steve Scalise [R]" }, "IL9": { "name": "Rep. Janice “Jan” Schakowsky [D]" }, "AZ1": { "name": "Rep. David Schweikert [R]" }, "GA8": { "name": "Rep. Austin Scott [R]" }, "GA13": { "name": "Rep. David Scott [D]" }, "VA3": { "name": "Rep. Robert “Bobby” Scott [D]" }, "AL7": { "name": "Rep. Terri Sewell [D]" }, "CA32": { "name": "Rep. Brad Sherman [D]" }, "ID2": { "name": "Rep. Michael “Mike” Simpson [R]" }, "WA9": { "name": "Rep. Adam Smith [D]" }, "NE3": { "name": "Rep. Adrian Smith [R]" }, "NJ4": { "name": "Rep. Christopher “Chris” Smith [R]" }, "CA38": { "name": "Rep. Linda Sánchez [D]" }, "MS2": { "name": "Rep. Bennie Thompson [D]" }, "CA4": { "name": "Rep. Mike Thompson [D]" }, "PA15": { "name": "Rep. Glenn Thompson [R]" }, "NY20": { "name": "Rep. Paul Tonko [D]" }, "OH10": { "name": "Rep. Michael Turner [R]" }, "NY7": { "name": "Rep. Nydia Velázquez [D]" }, "MI5": { "name": "Rep. Tim Walberg [R]" }, "FL25": { "name": "Rep. Debbie Wasserman Schultz [D]" }, "CA43": { "name": "Rep. Maxine Waters [D]" }, "FL11": { "name": "Rep. Daniel Webster [R]" }, "SC2": { "name": "Rep. Joe Wilson [R]" }, "FL24": { "name": "Rep. Frederica Wilson [D]" }, "VA1": { "name": "Rep. Robert Wittman [R]" }, "AR3": { "name": "Rep. Steve Womack [R]" }, "NV2": { "name": "Rep. Mark Amodei [R]" }, "OR1": { "name": "Rep. Suzanne Bonamici [D]" }, "WA1": { "name": "Rep. Suzan DelBene [D]" }, "KY4": { "name": "Rep. Thomas Massie [R]" }, "IL11": { "name": "Rep. Bill Foster [D]" }, "NV1": { "name": "Rep. Dina Titus [D]" }, "CA1": { "name": "Rep. Doug LaMalfa [R]" }, "CA2": { "name": "Rep. Jared Huffman [D]" }, "CA6": { "name": "Rep. Ami Bera [D]" }, "CA14": { "name": "Rep. Eric Swalwell [D]" }, "CA26": { "name": "Rep. Julia Brownley [D]" }, "CA25": { "name": "Rep. Raul Ruiz [D]" }, "CA39": { "name": "Rep. Mark Takano [D]" }, "CA52": { "name": "Rep. Juan Vargas [D]" }, "CA50": { "name": "Rep. Scott Peters [D]" }, "FL22": { "name": "Rep. Lois Frankel [D]" }, "KY6": { "name": "Rep. Garland “Andy” Barr [R]" }, "MO2": { "name": "Rep. Ann Wagner [R]" }, "NC9": { "name": "Rep. Richard Hudson [R]" }, "NY6": { "name": "Rep. Grace Meng [D]" }, "NY8": { "name": "Rep. Hakeem Jeffries [D]" }, "OH3": { "name": "Rep. Joyce Beatty [D]" }, "OH14": { "name": "Rep. David Joyce [R]" }, "PA10": { "name": "Rep. Scott Perry [R]" }, "TX14": { "name": "Rep. Randy Weber [R]" }, "TX20": { "name": "Rep. Joaquin Castro [D]" }, "TX25": { "name": "Rep. Roger Williams [R]" }, "TX33": { "name": "Rep. Marc Veasey [D]" }, "WI2": { "name": "Rep. Mark Pocan [D]" }, "IL2": { "name": "Rep. Robin Kelly [D]" }, "MO8": { "name": "Rep. Jason Smith [R]" }, "MA5": { "name": "Rep. Katherine Clark [D]" }, "NJ1": { "name": "Rep. Donald Norcross [D]" }, "NC12": { "name": "Rep. Alma Adams [D]" }, "AL6": { "name": "Rep. Gary Palmer [R]" }, "AR2": { "name": "Rep. French Hill [R]" }, "AR4": { "name": "Rep. Bruce Westerman [R]" }, "CA10": { "name": "Rep. Mark DeSaulnier [D]" }, "CA33": { "name": "Rep. Pete Aguilar [D]" }, "CA36": { "name": "Rep. Ted Lieu [D]" }, "CA35": { "name": "Rep. Norma Torres [D]" }, "GA1": { "name": "Rep. Earl “Buddy” Carter [R]" }, "GA11": { "name": "Rep. Barry Loudermilk [R]" }, "GA12": { "name": "Rep. Rick Allen [R]" }, "IL12": { "name": "Rep. Mike Bost [R]" }, "MA6": { "name": "Rep. Seth Moulton [D]" }, "MI2": { "name": "Rep. John Moolenaar [R]" }, "MI6": { "name": "Rep. Debbie Dingell [D]" }, "MN6": { "name": "Rep. Tom Emmer [R]" }, "NC7": { "name": "Rep. David Rouzer [R]" }, "NJ12": { "name": "Rep. Bonnie Watson Coleman [D]" }, "NY21": { "name": "Rep. Elise Stefanik [R]" }, "PA2": { "name": "Rep. Brendan Boyle [D]" }, "TX36": { "name": "Rep. Brian Babin [R]" }, "VA8": { "name": "Rep. Donald Beyer [D]" }, "VI0": { "name": "Rep. Stacey Plaskett [D]" }, "WA4": { "name": "Rep. Dan Newhouse [R]" }, "WI6": { "name": "Rep. Glenn Grothman [R]" }, "AS0": { "name": "Rep. Aumua Amata Radewagen [R]" }, "MS1": { "name": "Rep. Trent Kelly [R]" }, "IL16": { "name": "Rep. Darin LaHood [R]" }, "OH8": { "name": "Rep. Warren Davidson [R]" }, "KY1": { "name": "Rep. James Comer [R]" }, "PA3": { "name": "Rep. Dwight Evans [D]" }, "IL10": { "name": "Rep. Bradley “Brad” Schneider [D]" }, "AZ5": { "name": "Rep. Andy Biggs [R]" }, "CA17": { "name": "Rep. Ro Khanna [D]" }, "CA19": { "name": "Rep. Jimmy Panetta [D]" }, "CA24": { "name": "Rep. Salud Carbajal [D]" }, "CA44": { "name": "Rep. Nanette Barragán [D]" }, "CA46": { "name": "Rep. Luis Correa [D]" }, "FL2": { "name": "Rep. Neal Dunn [R]" }, "FL5": { "name": "Rep. John Rutherford [R]" }, "FL9": { "name": "Rep. Darren Soto [D]" }, "FL21": { "name": "Rep. Brian Mast [R]" }, "IL8": { "name": "Rep. Raja Krishnamoorthi [D]" }, "LA3": { "name": "Rep. Clay Higgins [R]" }, "LA4": { "name": "Rep. Mike Johnson [R]" }, "MD8": { "name": "Rep. Jamie Raskin [D]" }, "MI1": { "name": "Rep. Jack Bergman [R]" }, "NE2": { "name": "Rep. Don Bacon [R]" }, "NJ5": { "name": "Rep. Josh Gottheimer [D]" }, "NY13": { "name": "Rep. Adriano Espaillat [D]" }, "PA1": { "name": "Rep. Brian Fitzpatrick [R]" }, "PA11": { "name": "Rep. Lloyd Smucker [R]" }, "TN8": { "name": "Rep. David Kustoff [R]" }, "TX34": { "name": "Rep. Vicente Gonzalez [D]" }, "TX19": { "name": "Rep. Jodey Arrington [R]" }, "WA7": { "name": "Rep. Pramila Jayapal [D]" }, "KS4": { "name": "Rep. Ron Estes [R]" }, "SC5": { "name": "Rep. Ralph Norman [R]" }, "CA34": { "name": "Rep. Jimmy Gomez [D]" }, "TX27": { "name": "Rep. Michael Cloud [R]" }, "OH12": { "name": "Rep. Troy Balderson [R]" }, "OK1": { "name": "Rep. Kevin Hern [R]" }, "NY25": { "name": "Rep. Joseph Morelle [D]" }, "PA5": { "name": "Rep. Mary Gay Scanlon [D]" }, "HI1": { "name": "Rep. Ed Case [D]" }, "NV4": { "name": "Rep. Steven Horsford [D]" }, "AZ4": { "name": "Rep. Greg Stanton [D]" }, "CA9": { "name": "Rep. Josh Harder [D]" }, "CA49": { "name": "Rep. Mike Levin [D]" }, "CO2": { "name": "Rep. Joe Neguse [D]" }, "CO6": { "name": "Rep. Jason Crow [D]" }, "CT5": { "name": "Rep. Jahana Hayes [D]" }, "FL17": { "name": "Rep. Gregory Steube [R]" }, "GA6": { "name": "Rep. Lucy McBath [D]" }, "ID1": { "name": "Rep. Russ Fulcher [R]" }, "IL4": { "name": "Rep. Jesús “Chuy” García [D]" }, "IL6": { "name": "Rep. Sean Casten [D]" }, "IL14": { "name": "Rep. Lauren Underwood [D]" }, "IN4": { "name": "Rep. James Baird [R]" }, "KS3": { "name": "Rep. Sharice Davids [D]" }, "MA3": { "name": "Rep. Lori Trahan [D]" }, "MA7": { "name": "Rep. Ayanna Pressley [D]" }, "MI11": { "name": "Rep. Haley Stevens [D]" }, "MI12": { "name": "Rep. Rashida Tlaib [D]" }, "MN2": { "name": "Rep. Angie Craig [D]" }, "MN5": { "name": "Rep. Ilhan Omar [D]" }, "MN8": { "name": "Rep. Pete Stauber [R]" }, "MS3": { "name": "Rep. Michael Guest [R]" }, "NH1": { "name": "Rep. Chris Pappas [D]" }, "NJ2": { "name": "Rep. Jefferson Van Drew [R]" }, "NJ11": { "name": "Rep. Mikie Sherrill [D]" }, "NV3": { "name": "Rep. Susie Lee [D]" }, "NY14": { "name": "Rep. Alexandria Ocasio\u002DCortez [D]" }, "PA4": { "name": "Rep. Madeleine Dean [D]" }, "PA6": { "name": "Rep. Chrissy Houlahan [D]" }, "PA9": { "name": "Rep. Daniel Meuser [R]" }, "PA13": { "name": "Rep. John Joyce [R]" }, "PA14": { "name": "Rep. Guy Reschenthaler [R]" }, "SC4": { "name": "Rep. William Timmons [R]" }, "SD0": { "name": "Rep. Dusty Johnson [R]" }, "TN2": { "name": "Rep. Tim Burchett [R]" }, "TN6": { "name": "Rep. John W. Rose [R]" }, "TN7": { "name": "Rep. Mark E. Green [R]" }, "TX2": { "name": "Rep. Dan Crenshaw [R]" }, "TX5": { "name": "Rep. Lance Gooden [R]" }, "TX7": { "name": "Rep. Lizzie Fletcher [D]" }, "TX16": { "name": "Rep. Veronica Escobar [D]" }, "TX21": { "name": "Rep. Chip Roy [R]" }, "TX29": { "name": "Rep. Sylvia Garcia [D]" }, "VA6": { "name": "Rep. Ben Cline [R]" }, "WA8": { "name": "Rep. Kim Schrier [D]" }, "WI1": { "name": "Rep. Bryan Steil [R]" }, "WV1": { "name": "Rep. Carol Miller [R]" }, "ME2": { "name": "Rep. Jared Golden [D]" }, "NC3": { "name": "Rep. Gregory Murphy [R]" }, "MD7": { "name": "Rep. Kweisi Mfume [D]" }, "WI7": { "name": "Rep. Thomas Tiffany [R]" }, "CA48": { "name": "Rep. Darrell Issa [R]" }, "TX17": { "name": "Rep. Pete Sessions [R]" }, "CA22": { "name": "Rep. David Valadao [R]" }, "AL1": { "name": "Rep. Barry Moore [R]" }, "CA23": { "name": "Rep. Jay Obernolte [R]" }, "CA40": { "name": "Rep. Young Kim [R]" }, "CA51": { "name": "Rep. Sara Jacobs [D]" }, "CO4": { "name": "Rep. Lauren Boebert [R]" }, "FL3": { "name": "Rep. Katherine “Kat” Cammack [R]" }, "FL18": { "name": "Rep. Scott Franklin [R]" }, "FL19": { "name": "Rep. Byron Donalds [R]" }, "FL28": { "name": "Rep. Carlos Gimenez [R]" }, "FL27": { "name": "Rep. Maria Salazar [R]" }, "GA5": { "name": "Rep. Nikema Williams [D]" }, "GA9": { "name": "Rep. Andrew Clyde [R]" }, "GA14": { "name": "Rep. Marjorie Taylor Greene [R]" }, "IA2": { "name": "Rep. Ashley Hinson [R]" }, "IA1": { "name": "Rep. Mariannette Miller\u002DMeeks [R]" }, "IA4": { "name": "Rep. Randy Feenstra [R]" }, "IL15": { "name": "Rep. Mary Miller [R]" }, "IN1": { "name": "Rep. Frank Mrvan [D]" }, "IN5": { "name": "Rep. Victoria Spartz [R]" }, "KS1": { "name": "Rep. Tracey Mann [R]" }, "MA4": { "name": "Rep. Jake Auchincloss [D]" }, "MI9": { "name": "Rep. Lisa McClain [R]" }, "MN7": { "name": "Rep. Michelle Fischbach [R]" }, "NC2": { "name": "Rep. Deborah Ross [D]" }, "NM3": { "name": "Rep. Teresa Leger Fernandez [D]" }, "NY2": { "name": "Rep. Andrew Garbarino [R]" }, "NY11": { "name": "Rep. Nicole Malliotakis [R]" }, "NY15": { "name": "Rep. Ritchie Torres [D]" }, "OK5": { "name": "Rep. Stephanie Bice [R]" }, "OR2": { "name": "Rep. Cliff Bentz [R]" }, "SC1": { "name": "Rep. Nancy Mace [R]" }, "TN1": { "name": "Rep. Diana Harshbarger [R]" }, "TX4": { "name": "Rep. Patrick “Pat” Fallon [R]" }, "TX11": { "name": "Rep. August Pfluger [R]" }, "TX13": { "name": "Rep. Ronny Jackson [R]" }, "TX22": { "name": "Rep. Troy Nehls [R]" }, "TX23": { "name": "Rep. Ernest “Tony” Gonzales [R]" }, "TX24": { "name": "Rep. Beth Van Duyne [R]" }, "UT1": { "name": "Rep. Blake Moore [R]" }, "UT4": { "name": "Rep. Clarence “Burgess” Owens [R]" }, "WA10": { "name": "Rep. Marilyn Strickland [D]" }, "WI5": { "name": "Rep. Scott Fitzgerald [R]" }, "NY24": { "name": "Rep. Claudia Tenney [R]" }, "LA5": { "name": "Rep. Julia Letlow [R]" }, "LA2": { "name": "Rep. Troy Carter [D]" }, "NM1": { "name": "Rep. Melanie Stansbury [D]" }, "TX6": { "name": "Rep. Jake Ellzey [R]" }, "OH11": { "name": "Rep. Shontel Brown [D]" }, "OH15": { "name": "Rep. Mike Carey [R]" }, "FL20": { "name": "Rep. Sheila Cherfilus\u002DMcCormick [D]" }, "NE1": { "name": "Rep. Mike Flood [R]" }, "MN1": { "name": "Rep. Brad Finstad [R]" }, "NY18": { "name": "Rep. Patrick Ryan [D]" }, "IN2": { "name": "Rep. Rudy Yakym [R]" }, "MT1": { "name": "Rep. Ryan Zinke [R]" }, "AL5": { "name": "Rep. Dale Strong [R]" }, "AZ2": { "name": "Rep. Eli Crane [R]" }, "AZ6": { "name": "Rep. Juan Ciscomani [R]" }, "CA3": { "name": "Rep. Kevin Kiley [R]" }, "CA15": { "name": "Rep. Kevin Mullin [D]" }, "CA37": { "name": "Rep. Sydney Kamlager\u002DDove [D]" }, "CA42": { "name": "Rep. Robert Julio Garcia [D]" }, "CO7": { "name": "Rep. Brittany Pettersen [D]" }, "FL4": { "name": "Rep. Aaron Bean [R]" }, "FL7": { "name": "Rep. Cory Mills [R]" }, "FL10": { "name": "Rep. Maxwell Frost [D]" }, "FL13": { "name": "Rep. Anna Luna [R]" }, "FL15": { "name": "Rep. Laurel Lee [R]" }, "FL23": { "name": "Rep. Jared Moskowitz [D]" }, "GA7": { "name": "Rep. Rich McCormick [R]" }, "GA10": { "name": "Rep. Mike Collins [R]" }, "GU0": { "name": "Rep. James (Jim) Moylan [R]" }, "HI2": { "name": "Rep. Jill Tokuda [D]" }, "IA3": { "name": "Rep. Zachary (Zach) Nunn [R]" }, "IL1": { "name": "Rep. Jonathan Jackson [D]" }, "IL3": { "name": "Rep. Delia Ramirez [D]" }, "IL13": { "name": "Rep. Nicole (Nikki) Budzinski [D]" }, "IL17": { "name": "Rep. Eric Sorensen [D]" }, "IN9": { "name": "Rep. Erin Houchin [R]" }, "KY3": { "name": "Rep. Morgan McGarvey [D]" }, "MD4": { "name": "Rep. Glenn Ivey [D]" }, "MI3": { "name": "Rep. Hillary Scholten [D]" }, "MI10": { "name": "Rep. John James [R]" }, "MI13": { "name": "Rep. Shri Thanedar [D]" }, "MO4": { "name": "Rep. Mark Alford [R]" }, "MO7": { "name": "Rep. Eric Burlison [R]" }, "MS4": { "name": "Rep. Mike Ezell [R]" }, "NC1": { "name": "Rep. Donald Davis [D]" }, "NC4": { "name": "Rep. Valerie Foushee [D]" }, "NC11": { "name": "Rep. Charles (Chuck) Edwards [R]" }, "NJ7": { "name": "Rep. Thomas Kean [R]" }, "NJ8": { "name": "Rep. Robert Jacobsen Menendez [D]" }, "NM2": { "name": "Rep. Gabriel (Gabe) Vasquez [D]" }, "NY1": { "name": "Rep. Nicolas LaLota [R]" }, "NY10": { "name": "Rep. Dan Goldman [D]" }, "NY17": { "name": "Rep. Michael Lawler [R]" }, "NY23": { "name": "Rep. Nicholas Langworthy [R]" }, "OH1": { "name": "Rep. Greg Landsman [D]" }, "OH7": { "name": "Rep. Max Miller [R]" }, "OH13": { "name": "Rep. Emilia Sykes [D]" }, "OK2": { "name": "Rep. Josh Brecheen [R]" }, "OR4": { "name": "Rep. Valerie Hoyle [D]" }, "OR6": { "name": "Rep. Andrea Salinas [D]" }, "PA12": { "name": "Rep. Summer Lee [D]" }, "PA17": { "name": "Rep. Chris Deluzio [D]" }, "RI2": { "name": "Rep. Seth Magaziner [D]" }, "SC7": { "name": "Rep. Russell Fry [R]" }, "TN5": { "name": "Rep. Andrew Ogles [R]" }, "TX1": { "name": "Rep. Nathaniel Moran [R]" }, "TX3": { "name": "Rep. Keith Self [R]" }, "TX8": { "name": "Rep. Morgan Luttrell [R]" }, "TX15": { "name": "Rep. Mónica De La Cruz [R]" }, "TX30": { "name": "Rep. Jasmine Crockett [D]" }, "TX35": { "name": "Rep. Gregorio Casar [D]" }, "TX38": { "name": "Rep. Wesley Hunt [R]" }, "VA2": { "name": "Rep. Jennifer Kiggans [R]" }, "VT0": { "name": "Rep. Becca Balint [D]" }, "WA3": { "name": "Rep. Marie Gluesenkamp Perez [D]" }, "WI3": { "name": "Rep. Derrick Van Orden [R]" }, "WY0": { "name": "Rep. Harriet Hageman [R]" }, "VA4": { "name": "Rep. Jennifer McClellan [D]" }, "RI1": { "name": "Rep. Gabe Amo [D]" }, "UT2": { "name": "Rep. Celeste Maloy [R]" }, "NY3": { "name": "Rep. Thomas Suozzi [D]" }, "NY26": { "name": "Rep. Timothy Kennedy [D]" }, "CA20": { "name": "Rep. Vince Fong [R]" }, "OH6": { "name": "Rep. Michael Rulli [R]" }, "NJ10": { "name": "Rep. LaMonica McIver [D]" }, "WI8": { "name": "Rep. Tony Wied [R]" }, "LA6": { "name": "Rep. Cleo Fields [D]" }, "IN3": { "name": "Rep. Marlin Stutzman [R]" }, "CA31": { "name": "Rep. Gilbert Cisneros [D]" }, "AK0": { "name": "Rep. Nicholas Begich III [R]" }, "AL2": { "name": "Rep. Shomari Figures [D]" }, "AZ3": { "name": "Rep. Yassamin Ansari [D]" }, "AZ8": { "name": "Rep. Abraham Hamadeh [R]" }, "CA12": { "name": "Rep. Lateefah Simon [D]" }, "CA13": { "name": "Rep. Adam Gray [D]" }, "CA16": { "name": "Rep. Sam Liccardo [D]" }, "CA27": { "name": "Rep. George Whitesides [D]" }, "CA29": { "name": "Rep. Luz Rivas [D]" }, "CA30": { "name": "Rep. Laura Friedman [D]" }, "CA45": { "name": "Rep. Derek Tran [D]" }, "CA47": { "name": "Rep. Dave Min [D]" }, "CO3": { "name": "Rep. Jeff Hurd [R]" }, "CO5": { "name": "Rep. Jeff Crank [R]" }, "CO8": { "name": "Rep. Gabe Evans [R]" }, "DE0": { "name": "Rep. Sarah McBride [D]" }, "FL8": { "name": "Rep. Mike Haridopolos [R]" }, "GA3": { "name": "Rep. Brian Jack [R]" }, "IN6": { "name": "Rep. Jefferson Shreve [R]" }, "IN8": { "name": "Rep. Mark Messmer [R]" }, "KS2": { "name": "Rep. Derek Schmidt [R]" }, "MD2": { "name": "Rep. Johnny Olszewski [D]" }, "MD3": { "name": "Rep. Sarah Elfreth [D]" }, "MD6": { "name": "Rep. April McClain Delaney [D]" }, "MI7": { "name": "Rep. Tom Barrett [R]" }, "MI8": { "name": "Rep. Kristen McDonald Rivet [D]" }, "MN3": { "name": "Rep. Kelly Morrison [D]" }, "MO1": { "name": "Rep. Wesley Bell [D]" }, "MO3": { "name": "Rep. Robert Onder [R]" }, "MP0": { "name": "Rep. Kimberlyn King\u002DHinds [R]" }, "MT2": { "name": "Rep. Troy Downing [R]" }, "NC6": { "name": "Rep. Addison McDowell [R]" }, "NC8": { "name": "Rep. Mark Everette Harris [R]" }, "NC10": { "name": "Rep. Pat Harrigan [R]" }, "NC13": { "name": "Rep. Brad Knott [R]" }, "NC14": { "name": "Rep. Tim Moore [R]" }, "ND0": { "name": "Rep. Julie Fedorchak [R]" }, "NH2": { "name": "Rep. Maggie Goodlander [D]" }, "NJ3": { "name": "Rep. Herbert Conaway [D]" }, "NJ9": { "name": "Rep. Nellie Pou [D]" }, "NY4": { "name": "Rep. Laura Gillen [D]" }, "NY16": { "name": "Rep. George Latimer [D]" }, "NY19": { "name": "Rep. Josh Riley [D]" }, "NY22": { "name": "Rep. John Mannion [D]" }, "OH2": { "name": "Rep. David Taylor [R]" }, "OR3": { "name": "Rep. Maxine Dexter [D]" }, "OR5": { "name": "Rep. Janelle Bynum [D]" }, "PA7": { "name": "Rep. Ryan Mackenzie [R]" }, "PA8": { "name": "Rep. Robert Bresnahan [R]" }, "PR0": { "name": "Commish. Pablo José Hernández Rivera [D]" }, "SC3": { "name": "Rep. Sheri Biggs [R]" }, "TX12": { "name": "Rep. Craig Goldman [R]" }, "TX18": { "name": "Rep. Sylvester Turner [D]" }, "TX26": { "name": "Rep. Brandon Gill [R]" }, "TX32": { "name": "Rep. Julie Johnson [D]" }, "UT3": { "name": "Rep. Mike Kennedy [R]" }, "VA5": { "name": "Rep. John J. McGuire [R]" }, "VA7": { "name": "Rep. Eugene Vindman [D]" }, "VA10": { "name": "Rep. Suhas Subramanyam [D]" }, "WA5": { "name": "Rep. Michael Baumgartner [R]" }, "WA6": { "name": "Rep. Emily Randall [D]" }, "WV2": { "name": "Rep. Riley Moore [R]" } }; function show_district_popup(e, feature_properties) { // https://docs.mapbox.com/mapbox-gl-js/example/popup-on-hover/ var district = feature_properties.state_name + (feature_properties.number == "00" ? " At Large" : "’s " + ordinal(parseInt(feature_properties.number)) + " Congressional District"); var url = "/congress/members/" + feature_properties.state + (feature_properties.number == "00" ? "" : "/" + parseInt(feature_properties.number)); var n = $("<div><div style='text-align: center'><div class=district style='font-weight: bold;'></div><div class='repname'></div><div><a>More &raquo;</a></div></div>"); n.find('.district').html(district); var key = feature_properties.state + parseInt(feature_properties.number); if (key in current_legislators_by_district) n.find('.repname').text(current_legislators_by_district[key].name); else n.find('.repname').text("Vacancy"); n.find('a').attr('href', url); if (url == current_district_popup) { // click to toggle visibility hover_popup.remove(); current_district_popup = null; return; } current_district_popup = url; //var coord = feature.geometry.coordinates[0][0]; // works for polygon but not multipolygon features //var coord = [feature_properties.label_pt_lon, feature_properties.label_pt_lat]; // from census data but not the actual label points? hover_popup .setLngLat(e.lngLat) .setHTML(n.html()) .addTo(map); } // Update the map embed iframe code to match the current viewport when the user moves the map map.on("moveend", update_embed_code_bounds); function update_embed_code_bounds() { var b = map.getBounds(); $("#embedbounds").text(Math.round(b.getWest()*1000)/1000 + "," + Math.round(b.getNorth()*1000)/1000 + "," + Math.round(b.getEast()*1000)/1000 + "," + Math.round(b.getSouth()*1000)/1000); } update_embed_code_bounds(); // initialize // Fix the form layout. if ($(window).width() > 768) { var input = $('#user-address'); var w = $('#user-address').parents("form").innerWidth(); $('#user-address').parents("form").find("button").each(function() { w -= $(this).outerWidth(); }) input.width(w-50); } function go_to_district(state, number, fragment) { if (number != 0) { // URLs don't use zero-padding var path = "/congress/members/" + state + "/" + number; if (path == window.location.pathname) { // The page won't reload. Just add a marker & alert. map.addMarker(q, pt); alert("That address is in the same congressional district."); } window.location = path + (fragment || ""); } else { // There is no district page for at-large districts. Redirect to the state page. window.location = "/congress/members/" + state; } } // Handle geocoding result. function go_to_point(pt, q) { // Query Mapbox API to get what district is at this location. latlng_to_district({ lat: pt[1], lng: pt[0]}, function(district) { if (!district) { alert("That location does not seem to be in a United States Congressional District."); return; } var fragment = "#q=" + encodeURIComponent(q) + "&marker_lng=" + pt[0] + "&marker_lat=" + pt[1]; go_to_district(district.state, parseInt(district.number), fragment); // remove zero-padding }); } function do_address(addr) { if (!addr) addr = $("#user-address").val(); if (addr == "") { window.location = "/congress/members/map"; return; } // this special query triggers geocoding if (addr == "my location") { do_by_current_location(); return; } // If a congressional district number is given, skip the geocoding step. // Try matching XXNN, with an optional dash or space, then check that the state and district are a valid district (add zero-padding to the district number). var match = /^\s*([A-Za-z]{2})[- ]?(\d+)$/.exec(addr.toUpperCase()); if (match && ((match[1] + (match[2].length == 2 ? "" : "0") + match[2]) in bboxes)) { go_to_district(match[1], parseInt(match[2])); return; } address_to_latlng(addr, function (pt) { go_to_point(pt, addr); }); } function do_by_current_location() { if ("geolocation" in navigator) navigator.geolocation.getCurrentPosition(function(position) { go_to_point([position.coords.longitude, position.coords.latitude], ""); }); } // utility function function parse_qs(qs) { // Parse something that looks like a query string. Based on // http://stackoverflow.com/a/2880929/125992. var match, pl = /\+/g, // Regex for replacing addition symbol with a space search = /([^&=]+)=?([^&]*)/g, decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, ret = {}; while (match = search.exec(qs)) ret[decode(match[1])] = decode(match[2]); return ret; } var q = parse_qs(window.location.hash.substring(1)); if (q.address) do_address(q.address); else if (q.my_location) do_by_current_location(); if (q.q) $('#user-address').val(q.q); if (q.marker_lat) map.addMarker(q.q ? q.q : "Location", [parseFloat(q.marker_lng), parseFloat(q.marker_lat)]); </script> <!-- Quantcast Tag --> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push({ qacct:"p-NscxJMTcyb6nu" }); </script> <noscript> <div style="display:none;"> <img src="//pixel.quantserve.com/pixel/p-NscxJMTcyb6nu.gif" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> <!-- LinkedIn Insight Tag --> <script type="text/javascript"> _linkedin_partner_id = "6740042"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(l) { if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; window.lintrk.q=[]} var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(window.lintrk); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=6740042&fmt=gif" /> </noscript> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10