

Add Overlays (Markers, Lines and Shapes) to create detailed interactive Maps. You can import/export from GPX/KML/GeoJSON.
❤️ Keep This Project Alive Through Sponsorship ❤️
Use the intuitive Editor to create Maps with one, or thousands of interactive Overlays.
🌟 GitHub
👐 WordPress
📖 Demo & Docs
Embed your Maps using the [Waymark] Shortcode, or link to the Map Details page.
Built to be flexible, Waymark has lots of Settings and Types provide one place to control how Overlays (Markers/Lines/Shapes) are displayed.
Marker Icons can be provided as:
– Font Icons (Ionic Icons v2/Font Awesome v4)
– Simple Text, or Emojis (i.e. 🏕️, 🚩, 📸).
– Custom HTML (good ol’ <img src="https://example.com/icon.svg">, or a more complex structure). So you can pretty much create any kind of Icon you want.
For developers:
waymark- classes.type Property, i.e. {feature: { geometry: { type: 'Point', coordinates: [0, 0] } }, properties: { type: 'Alert', title: 'Bridge Removed!' }.layer.feature.properties Object.waymark_loaded_callback [callback function](https://www.ogis.org/waymark-wp/advanced/using-the-global-callback-function/.Be sure to check out Map First, a minimal WordPress theme with an obsession for Maps (it’s open-source too and contains lots of comments about customisations).
Waymark is free, open-source (GPL v2) and a labour of Love. I try to keep the plugin well supported, so please feel free to reach out with any issues, questions or feedback.
Updated 10 September 2026
[!NOTE]
To develop locally you will need to have both Node.js and NPM installed.
Grunt is used to run the build script, which compiles the JavaScript and CSS and performs some other tasks.
# Clone the repository (and the Waymark JS submodule)
git clone --recurse-submodules https://github.com/opengis/waymark.git
# Navigate to the Waymark directory
cd waymark
# Install the dependencies (or pnpm/yarn install)
npm install
# Run the build script
grunt
The build script will watch for changes to the JavaScript and CSS files.
Pull requests are welcome!
[!IMPORTANT]
Waymark JS is responsible for the Viewer and Editor and is included as a Git submodule (/waymark-jsdirectory). View on GitHub.
A local WordPress environment is provided via wp-env. Docker must be running.
npm run dev
This starts WordPress at http://localhost:8888 and prints the credentials summary:
────────────────────────────────────
MySQL 127.0.0.1 root / password
Admin http://localhost:8888/wp-admin admin / password
────────────────────────────────────