This project is not covered by Drupal’s security advisory policy.
Provider Map turns a spreadsheet of organizations into a searchable, clickable map of the areas they serve — counties, parishes, boroughs, tribal nations, health districts, catchment areas, or anything else you can supply as GeoJSON.
Adding a second state means adding a second map, not forking the module.
What you get
- A dependency-free map. The geometry is stored in Drupal and projected to SVG in the browser. No Leaflet, no Mapbox, no Google Maps, no tile server, no API key, and no request to any third party after page load. 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". It is focusable, keyboard-operable and screen-reader addressable — not a pixel on a canvas.
- Works before JavaScript. The complete 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 wizard that validates first. Upload, match 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 rather than duplicates.
- Filters you define. A workforce directory filters by services and supports; a childcare directory by ages served and programme type. Facets are configuration, not code.
- Configurable tooltips and detail panels. 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 publishing a "find a provider near you" directory — anyone who needs a service-area map that is accessible, printable, and free of third-party embeds.
Try it in one step
Enable the provider_map_example submodule. It installs a working map — 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. Every record in it is invented; the organizations, phone numbers and example.org addresses do not correspond to real programmes.
What it deliberately does not do
- No basemap. There are no streets, labels or satellite imagery. If you need a road map underneath, use Leaflet or Geofield Map instead.
- 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, distance search or "nearest to me". It answers "who serves this area", not "who is closest to this point".
- It does not ship 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. Core's File, Filter, Options and User modules only — 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. The results table becomes cards on narrow screens rather than hiding the columns people came for. prefers-reduced-motion and prefers-color-scheme are both 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
Leaflet and Geofield Map are the right choice when you need a real basemap, markers on streets, or distance search. Views with an exposed filter is the right choice when you need a filterable list and no map at all.
Provider Map sits in the narrow gap between them: a choropleth of service areas rather than points on a street map, with the directory and the map filtering 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.







