Mapy.com
This module integrates interactive maps into your Drupal site using the Mapy.cz API. It allows you to add map location fields to your content, display them using various formatters, and show multiple locations on a single map through Views integration.
Overview
Mapy.com integrates interactive maps into your Drupal site using the
Mapy.com REST API (Seznam.cz's mapping
platform - detailed street-level coverage for Czechia and Slovakia, alongside standard world maps).
A single field type stores a location; a widget lets editors place, search, and adjust it directly on
an interactive map; formatters and a Views style display one or many locations back out. Six modules
in total, so you only enable what you actually need:
- Mapy.com (this project) - the location field, map widget, formatters, Views
style, and address autocomplete. - Mapy.com Webform Integration (
mapycom_webform) - the same
address-picking widget as a Webform element. - Route Planner (
routeplanner) - a field type/widget for a
point-to-point route (ordered stops, drawn and editable on the map), built on top of the base
map widget. - Route Planner Webform Integration (
routeplanner_webform) - the
route planner as a Webform element. - Route Planner - Content reference (
routeplanner_reference) - an
alternative route planner that builds its route from existing content (matched by title)
instead of free-text address search. - Route Planner - Content reference Webform Integration
(routeplanner_reference_webform) - that content-reference route planner as a
Webform element.
Features
- Field type for storing map locations, with a widget for editing them directly on an
interactive map (search-as-you-type address autocomplete included) - Field formatter and a Views style plugin for displaying one or many locations
- Route Planner: an ordered, editable multi-stop route, either from free-text address search or
from matching existing content - Webform elements for both the address picker and the route planner
- Switchable map layers (basic/outdoor/winter/aerial) and AJAX-driven filtering
- No bundled or Composer-fetched third-party JavaScript - MapLibre GL JS and autoComplete.js load
from a CDN with a Subresource Integrity hash pinned to the exact version this module ships
against, so installing is exactlycomposer require drupal/mapycom, nothing else
Requirements
- Drupal core ^10 || ^11 || ^12
- A free Mapy.com API key
- (Optional) The Webform module, if you use
any of the three Webform-element submodules
Installation
- Install via Composer:
composer require drupal/mapycom. - Enable the module(s) you need at
/admin/modules. - Configure your API key at
/admin/config/services/mapycom.
MapLibre GL JS and autoComplete.js are loaded from jsDelivr with a Subresource Integrity hash
pinned to this module's exact version - no extra Composer configuration or manual download needed.
Try it live, or run it yourself
A ready-to-run demo - the base module, all five submodules, demo content, and a CS/EN language
switcher, pre-installed on a Drupal 11 site - is available at
gitlab.com/good_sailors/mapycom-demo.
Run your own local instance (needs Docker):
git clone https://gitlab.com/good_sailors/mapycom-demo.git cd mapycom-demo docker build --provenance=false --sbom=false -t mapycom-demo:local . ./generate-demo.sh --lang en --api-key YOUR_MAPYCOM_API_KEY
--api-key is optional - skip it and the instance still boots fine, just with the map
areas showing an "API key missing" notice instead of real maps (never pass a real production key
here; use a low-quota key made just for this). generate-demo.sh prints the instance's
id; run it again for another, independent instance - each gets its own id, port, and DB credentials.
When you're done, remove that instance completely (containers, volumes, its ledger entry - nothing left behind):
./destroy-demo.sh <demo-id>
Usage
- Add the Mapy.com field to your content types.
- Configure the field widget and formatter as needed.
- Use the provided Views style to display maps with multiple locations.
- Enable Route Planner if you need multi-stop routes instead of a single location.
Troubleshooting
- Ensure your API key is valid and set in the configuration.
- If the map does not display after AJAX filtering, clear Drupal's cache and check the browser's
JavaScript console for errors. - For further help, see the issue
queue.
Credits & License
This module is based on the original Mapy.cz
Drupal project and implements the new
Mapy.com REST API.
Mapy.cz license and useful links:
Mapy.cz License
Original Mapy.cz Drupal module
Mapy.com REST API documentation
Depends on
Dependencies of the latest stable release
- field Drupal core
- inline_form_errors Drupal core
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Release date | |
|---|---|---|---|---|
| 1.1.10 | Stable | 10–11 | Sep 29, 2026 | |
| 1.1.9 | Stable | 10–11 | Sep 8, 2026 | |
| 1.1.8 | Stable | 10–11 | Sep 8, 2026 | |
| 1.1.7 | Stable | 10–11 | Sep 7, 2026 | |
| 1.1.6 | Stable | 10–11 | Sep 7, 2026 | |
| 1.1.5 | Stable | 10–11 | Sep 7, 2026 | |
| 1.1.x-dev | Dev | 10–11 | Sep 6, 2026 | |
| 1.1.4 | Stable | 10–11 | Sep 6, 2026 | |
| 1.1.3 | Stable | 10–11 | Aug 31, 2026 | |
| 1.1.2 | Stable | 10–11 | Aug 27, 2026 | |
| 1.1.1 | Stable | 10–11 | Aug 27, 2026 | |
| 1.1.0 | Stable | 10–11 | Aug 27, 2026 | |
| 1.0.4 | Stable | 10–11 | May 4, 2026 | |
| 1.0.3 | Stable | 10–11 | May 4, 2026 | |
| 1.0.2 | Stable | 10–11 | Mar 31, 2026 | |
| 1.0.1 | Stable | 10–11 | Mar 24, 2026 | |
| 1.0.0 | Stable | 10–11 | Mar 24, 2026 | |
| 1.0.x-dev | Dev | 10–11 | Mar 24, 2026 |