Fedir Gontsa
All maps
Interactive

A Map for Election Day for Civil Network OPORA

Interactive map of Ukraine's newly formed districts and communities for the OPORA civic network, built for the local elections of 25 October 2020.

ShareXfTG

An interactive map of Ukraine’s newly formed districts (raions) and communities (hromadas), built for the civic network OPORA ahead of the local elections of 25 October 2020 — covering 26 regions, 136 districts, and 1,470+ communities.

The central difficulty of the project was the absence of any ready geometry or stable structure for Ukraine’s new administrative-territorial system, adopted in 2020 just months before the vote. As of September 2020, no state body responsible for cartographic data held accurate, accessible information on the makeup of the newly formed communities — only Cabinet of Ministers resolutions and the old boundaries of the earlier amalgamated communities. The geometry therefore had to be built from scratch: working through the textual descriptions in the government resolutions with a few Python scripts, region by region, across the whole of September.

The map’s content was based on electoral data prepared by OPORA, a civic network monitoring the electoral process throughout Ukraine. The structure follows the three tiers of the 2020 elections: regional councils, district councils, and the councils of the newly formed communities. Each tier is a separate layer — regions, districts, and communities — loaded progressively as the map zooms, with each layer carrying the attribute data for its corresponding level of voting. At every level a community or unit carries a popup with its electoral details, drawn over a choropleth of registered voters. The interaction model builds on Mapbox’s data-driven choropleth approach, with feature-state styling updated as the user moves between zoom levels.

The map ran on a custom Mapbox style with simplified GeoJSON layers hosted on GitHub Gist for fast updates and access; the progressive, zoom-dependent loading kept it light to use. Over the month-long campaign the map went through seven versions and reached around 40,000 visitors on peak days, with the final version available online and on mobile.

The community geometry is not perfect and still needs refinement, but it served its purpose — informing voters about the electoral process in the newly formed communities. The data can be reused as a basis for other cartographic projects and for further refinement; the geometry of Ukraine’s new administrative-territorial system is available on OPORA’s GitHub profile.

Built with Python, QGIS, Mapbox GL, GeoJSON, HTML, and CSS. Data released under a Creative Commons Attribution 4.0 International license.

Color palette Color palette

Region level Region level

Distric level Distric level

Hromada level Hromada level

PopUp Card PopUp Card

Year
2020
Client
Civil Network OPORA
Role
Cartography, Web & development
Format
Interactive web map
Tools
QGISPythonMapBox GLGeoJSONHTMLCSS
Data
OpenstreetmapUkraine cadastre map
Tags
ukraineelection

Interactive map

Open in new tab