This project is not covered by Drupal’s security advisory policy.
Provider Map takes a spreadsheet of organizations and turns it into a searchable, clickable map of the areas they serve. Those areas can be counties, parishes, boroughs, tribal nations, health districts, catchment areas, or anything else you can supply as GeoJSON.
If you run a second program, or cover a second state, you add a second map. You do not fork the module.
What you get
- A map with no dependencies. The geometry is stored in Drupal and projected to SVG in the browser. There is no Leaflet, no Mapbox, no Google Maps, no tile server, no API key, and no request to any third party once the page has loaded. Nothing about your visitors leaves your site.
- Every region is a real DOM node. Each area is a <path> with role="button", tabindex, aria-pressed and a label that reads "Sangamon, 3 providers". You can focus it, operate it from the keyboard, and a screen reader can address it. It is not a pixel on a canvas.
- It works before JavaScript. The full unfiltered directory is rendered server side. Before a byte of JS runs, a visitor has every provider in a real table, the browser's own find works, and the page prints properly.
- A CSV import that validates first. Upload the file, match the columns, then review exactly what will be created and updated, and which rows have an unknown region or a malformed coordinate, before anything is written. Re-importing updates records rather than duplicating them.
- Filters you define. A workforce directory filters by services and supports. A childcare directory filters by ages served and program type. Facets are configuration, not code.
- Tooltips and detail panels you control. You choose what a hover reveals, and which fields the detail dialog shows, per map, from the admin UI.
Who it is for
Public agencies, health departments, workforce boards, non-profits and universities that publish a "find a provider near you" directory, and need it to be accessible, printable, and free of third party embeds.
Try it in one step
Enable the provider_map_example submodule. It installs a working map with all 102 Illinois counties and a sample child care and early learning directory, so you can see a finished configuration before building your own. Uninstall it and it removes every trace.
Everything in it is invented. The organizations, the phone numbers and the example.org addresses do not correspond to real programs. It is there to demonstrate the module, not to publish a directory.
What it does not do
Being clear about this saves everyone an issue report.
- No basemap. There are no streets, labels or satellite imagery. This draws your regions on a plain background. If you need a road map underneath, use Leaflet or Geofield Map.
- No geocoding. Coordinates for provider pins are entered or imported, not looked up from an address. Pair it with Geocoder if you need that.
- No routing or distance search. It answers the question "who serves this area" rather than "who is closest to this point".
- It ships no geodata. You supply your own GeoJSON. Census cartographic boundary files and state open data portals both export it directly, and the importer will simplify a high detail file for you.
Requirements
Drupal 10.3 or 11. It uses core's File, Filter, Options and User modules only, with no contributed dependencies.
Accessibility
Filters come before the map in the document, because filters are what a visitor reaches for, and a map at the top buries the controls below the fold on a phone. Result counts announce through an aria-live region. Filter state lives in the URL, so a filtered view can be bookmarked, shared, or printed on a leaflet. On narrow screens the results table becomes cards, rather than hiding the columns people came for. Both prefers-reduced-motion and prefers-color-scheme are respected.
The detail panel is a real dialog. Focus moves into it, Tab is trapped inside it, Escape closes it, and focus returns to whatever opened it.
Similar modules
Reach for Leaflet or Geofield Map when you need a real basemap, markers on streets, or distance search. Reach for Views with an exposed filter when you need a filterable list and no map at all.
Provider Map sits in the gap between those two. It draws a choropleth of service areas rather than points on a street map, and the directory and the map filter each other.
Project information
- Project categories: Content display
- Created by aftrix on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
First public release.
Development version: 1.0.x-dev updated 19 Aug 2026 at 18:13 UTC







