Mapbox GL Project Suite
Give every Odoo project and task a geographic home — draw site area boundaries, annotate locations, and view all projects and tasks on an interactive map. The parent project's geometry appears automatically as an orange overlay inside every task, so spatial context is always visible.
Screenshots
Product Overview
Mapbox GL Project Suite brings interactive maps and geographic drawing to Odoo's Project module. It adds a dedicated Map view to both Projects and Tasks so managers can see at a glance where work is located, and it adds a Site Area tab to every project and task form where users can draw and store the geographic footprint of their sites — boundaries, routes, access points, hazard zones, and named annotations — without ever leaving Odoo.
The suite is built on four infrastructure and drawing modules — the same foundation used across the full Mapbox GL product family — with a fifth module, project_mapbox_gl, providing the Project and Task integration layer. That top-level module extends project.project and project.task with geographic fields, configures the drawing widgets for both models, and automatically injects the Map view into the standard Project and Task menus on install.
One of the suite's defining features is the parent-project overlay in task views: whenever a task is opened or its map is loaded, the parent project's full geometry renders beneath the task's own drawing as a distinct orange overlay. Teams always see the project boundary alongside the task site — no switching records, no cross-referencing, no manual context-building.
This page describes all five modules in the bundle and the capabilities each contributes.
The Problem It Solves
Odoo's Project module manages schedules, milestones, and deliverables well, but it has no concept of where a project is located or what physical area it covers. A construction project, a field survey, an infrastructure rollout, a landscape contract — all of these have a geographic footprint that matters to the team, but there is nowhere in standard Odoo to store or view it.
Without spatial data in the project record, teams end up maintaining separate maps in external tools — a GIS application, a shared Google My Maps, a folder of screenshots — and manually copying location references into task descriptions or notes. There is no standard way to see all active projects on a map, no way to define a site boundary and use it as context when dispatching tasks, and no way to measure the area a project covers without reaching for a separate tool.
Tasks face the same problem at a more granular level. A task might cover a specific sub-zone of the project site — a particular floor of a building, a section of a pipeline, a survey parcel within a larger tract. Standard Odoo provides no mechanism for drawing that sub-zone or for placing it in the visual context of the parent project boundary.
Mapbox GL Project Suite adds all of this to Odoo directly. Projects and tasks gain a drawing canvas, a map view, automatic area calculation, and a label annotation tool — and every task automatically shows its parent project's boundary as a spatial reference. The entire workflow lives inside Odoo; no external mapping tool is needed.
The Five Modules
The suite is organized in three layers: two infrastructure modules provide the Mapbox GL foundation and the Odoo view type framework; two application modules deliver the GeoJSON display view and the interactive drawing widget; and one project integration module wires all four together into Odoo's Project application.
Base Mapbox GL JS
The configuration and library hub for all Mapbox GL JS functionality in Odoo. Manages your access token, visual preferences, and on-map controls centrally — so every map across your instance uses the same settings without per-view configuration.
What It Provides
A single Settings page where you enter your Mapbox access token once and choose default style, projection, lighting, theme, and map label language. All subsequent modules inherit these settings automatically. Every map gets standard navigation controls (zoom, compass, fullscreen, scale bar), a 2D/3D view toggle, a fly-to-zoom button, an on-map style switcher, and a location search box — without any additional configuration. The module also ships Mapbox GL JS, Mapbox GL Draw, the Mapbox Search Box SDK, and Turf.js as local static files so maps load reliably in network-restricted environments.
Web View Base Mapbox GL
Introduces mapbox_gl as a new Odoo view type and provides the controller, renderer, model, and sidebar that all map views build upon. Not used directly by end users — but required by web_view_mapbox_gl_draw and every other map-view module in the family.
What It Provides
A full integration with Odoo's standard view system: the map view works with the search bar, filters, group-by, pagination, and action menus exactly as list and kanban do. The sidebar keeps records and map in sync — clicking a record centers the map, clicking a feature opens the record. Box-zoom selection (Shift-drag) selects up to 1,000 map features at once. A Center Map button re-fits the viewport to all visible features with a single click. This framework is what the Project and Task map views are built on top of.
Web View Mapbox GL Draw
A mapbox_gl_draw view type for displaying records whose GeoJSON geometry is stored in a JSON field. Renders all standard geometry types — polygons, lines, points, and multi-geometry variants — with automatic measurement calculations using Turf.js geodesic algorithms.
What It Provides
Every geometry type stored in your records appears on the map as a properly styled feature: filled polygons with auto-darkened stroke borders, lines, and point markers — each with hover and selected-state layers. Click a feature to see its measurements in the sidebar: area in m²/ha/km², perimeter length, line length in cm/m/km, and vertex count. This is the view type that underpins the Project Map View and the Task Map View provided by project_mapbox_gl.
Web Widget Mapbox GL
An interactive drawing widget that embeds a full Mapbox drawing canvas inside any Odoo form field. Users draw, edit, and save geographic shapes directly on the record — no external GIS tool required. This widget powers the Site Area tab on both project and task forms.
What It Provides
A full drawing toolkit embedded in the form view: Point, Line, Polygon, Circle (click center → click radius), Rectangle (click two corners), Polygon Cut (draw a shape to split existing polygons), and Edit. Label annotations let users click the label tool and then click anywhere on the map to place a named text annotation; click any placed label to select it and edit the text at any time. An Undo/Redo stack preserves up to 20 steps (Ctrl+Z / Ctrl+Y). While drawing, a floating overlay shows the current total area or length in real time; per-segment length labels appear at each edge midpoint. Changes are committed only when the explicit Save button in the toolbar is clicked. Geometries can be imported from or exported to a standard GeoJSON file.
Project Mapbox GeoJSON
The integration module that extends Odoo's project.project and project.task models with geographic fields, injects the Map view into existing Project and Task menus automatically, and configures the drawing widgets for both models — including the parent-project orange overlay on task forms.
What It Provides
On Projects: a Site Area tab with a full drawing canvas for capturing site boundaries, routes, and named annotations; an area field updated automatically on save; a colour picker for map styling; and an HTML notes field for rich-text site observations.
On Tasks: a Site Area tab with the same drawing capability, plus the parent project's full boundary rendered beneath the canvas as a distinct orange overlay for instant spatial context. A read-only parent project area figure is displayed above the canvas for reference. Task geometry and area fields work independently of the project.
Menu integration: the Map view is added to all standard Project and Task window actions automatically on install and removed cleanly on uninstall — no manual configuration required.
How It Works
From initial setup to fully mapped projects and tasks in five stages:
- Go to Settings → General Settings → Mapbox GL JS, enter your access token once, and choose your default map style, projection, lighting, theme, and label language. Every map in the suite inherits these settings immediately.
- Open Projects and click the Map icon in the view switcher. All projects that have geometry stored on their Site Area tab appear as colour-coded shapes on the interactive Mapbox map. Click any project to open its sidebar and use the View Tasks shortcut to jump directly to that project's task list.
- Open any project, go to the Site Area tab, and draw your site boundary — polygon, line, or a combination — using the drawing toolbar. Place named label annotations for key reference points: click the font icon, click the map position, enter the label text. Click Save in the toolbar to commit the geometry. The
mapbox_areafield updates automatically with the enclosed area in m². - Open a Task under that project and go to the Site Area tab. The parent project's full geometry loads automatically beneath the drawing canvas as an orange overlay — polygon fill, dashed outline, point markers, and label text all render in orange so they are clearly distinct from the task's own editable geometry. The parent project's total area is displayed as a read-only figure above the canvas for reference.
- Switch to the Tasks map view. All tasks with geometry appear on the map alongside the orange project overlays, giving a full spatial picture of where each piece of work sits relative to the project boundaries. Use search, filters, and group-by to focus on specific projects or stages; the orange overlays update accordingly.
The map views and the Site drawing tabs are independent: you can use only the drawing canvas (without the map view), only the map view (to display geometries drawn elsewhere), or both together. The drawing widget and map view both work from the same mapbox_geojson JSON field on each model.
Key Features
Project Map View
- Spatial Project Overview — All projects with geographic data appear as colour-coded shapes on a single interactive Mapbox map, giving managers an immediate spatial summary of active work across all sites.
- Per-Project Colour Coding — Each project's colour is set via the
color_pickerwidget on the project form and reflected in the map view automatically — no extra configuration. - Project Name Labels — Each map feature is labelled with the project name and customer for quick identification without opening the sidebar.
- View Tasks Shortcut — Clicking a project on the map opens a sidebar panel with a View Tasks button that navigates directly to the filtered task list for that project.
- Standard View Integration — The Map view integrates with the Odoo search bar, filters, group-by, and the standard view switcher exactly like List and Kanban — no separate navigation path.
- Automatic Menu Injection — The Map view button appears in the view switcher for all four standard Project window actions immediately after installation, with no manual XML editing required.
Task Map View
- Spatial Task Distribution — All tasks with geometry appear on a single map so teams can see geographic spread across the project portfolio and identify tasks by location.
- Orange Parent-Project Overlay — For every unique parent project found in the visible task set, the project boundary renders as a distinct orange overlay so every task is visually grounded in its project site.
- Task and Project Labels — Each task feature is labelled with the task name and parent project name for clear identification.
- Three Task Window Actions — The Map view is available in all three standard task windows — project-scoped, global, and personal — immediately after installation.
Project Site Area Drawing
- Site Area Tab on Project Form — A dedicated Site Area tab with a full Mapbox drawing canvas, drawing toolbar, measurement overlays, and label annotation tool lives directly inside the project form.
- 8 Drawing Tools — Point, Line, Polygon, Circle (center → radius), Rectangle (two corners), Polygon Cut, Edit mode, and Label annotation.
- Label Annotations — Click the font icon in the toolbar, click anywhere on the map to position a label, then type the text. Labels are stored as standard GeoJSON Point features with a
properties.labelstring alongside other drawn features. Select a label to edit or delete it at any time. - Automatic Area Calculation — On every Save, Turf.js calculates the geodesic area of all drawn polygons and writes the result to the
mapbox_areafield in m². - HTML Notes Field — A rich-text
mapbox_notesfield on the Site Area tab stores site-specific notes, observations, or instructions alongside the geometry — separate from the main project description. - Colour Picker — An integer
mapbox_colorfield with thecolor_pickerwidget assigns a colour to the project, reflected in the Project and Task map views. - GeoJSON Import & Export — Load existing boundaries from any GIS tool via a
.geojsonfile upload; export all drawn features as a timestamped.geojsonfile for downstream use. - Undo / Redo — 20-step history accessible via toolbar buttons or Ctrl+Z / Ctrl+Y.
- Explicit Save — Geometry changes are committed only when the toolbar Save button is clicked, preventing accidental overwrites mid-edit.
Task Site Area Drawing & Project Context
- Site Area Tab on Task Form — Same full drawing canvas as the project form, available directly inside the task form on the Site Area tab.
- Orange Project Overlay on Task Canvas — On map load, the parent project's full geometry renders beneath the task drawing canvas as a distinct orange overlay — polygon boundaries, lines, points, and label annotations all appear in orange so the project site is immediately visible as context.
- Viewport Initialised to Project Bounds — The task map viewport is automatically fitted to the parent project's bounding box on load so the site is immediately visible without manual panning.
- Parent Project Area (Read-Only) — A related
mapbox_project_areaFloat field reads the parent project's total area and displays it above the drawing canvas as a read-only reference figure. - Independent Task Area — Each task has its own
mapbox_areafield updated on save, enabling area tracking per task independent of the parent project.
Foundation & Configuration
- Centralized Token & Settings — One Mapbox access token configured in Settings applies to every map across the entire Odoo instance automatically.
- 10 Preset Map Styles — Standard, Standard Satellite, Streets, Outdoors, Light, Dark, Satellite Streets (Hybrid), Navigation Day, Navigation Night, and OpenStreetMap — or supply a custom Mapbox Studio URL.
- 8 Map Projections — Globe (3D), Mercator, Equal Earth, Natural Earth, Albers USA, Winkel Tripel, Lambert Conformal Conic, and Equirectangular.
- 35+ Language Support — Display map labels in any of 35+ languages, configurable per-instance in Settings.
- Bundled Libraries — Mapbox GL JS, Mapbox GL Draw, Mapbox Search Box SDK, and Turf.js served as local static files — no external CDN dependency.
- Offline Detection & Auto-Retry — Shows a clear offline warning and automatically retries when connectivity is restored — no page refresh needed.
Use Cases & Benefits
See Every Project on a Map
Switch the Projects view to Map and see the geographic spread of all active work at once — colour-coded by project, labelled with project name and customer, with a one-click path to the task list for each. No external mapping tool, no spreadsheet cross-referencing.
Define Site Boundaries Directly on the Record
Draw the project's physical footprint — land parcel, floor plan outline, service territory, survey polygon — directly on the project form's Site Area tab. The boundary is stored as standard GeoJSON on the record, accessible to every team member without needing separate GIS access.
Task Location with Automatic Project Context
Every task Site Area tab automatically shows the parent project's boundary beneath the task drawing in orange. Team members always know exactly where a task sits relative to the full project site — no switching records, no mental mapping.
Automatic Area Calculation
Project and task areas are calculated geodesically by Turf.js and stored as numeric fields on save. No manual measurement, no calculator, no estimation — the system keeps the numbers in sync every time the geometry is updated.
Named Site Annotations
Place text labels anywhere on the project or task map: entrances, hazard zones, equipment locations, reference markers. Labels are stored inside the same GeoJSON field as drawn shapes and appear in all views — including the task's orange project overlay.
Construction & Infrastructure Projects
Draw building footprints, pipeline routes, or infrastructure zones on the project Site Area tab. Assign sub-area polygons to individual tasks. The project boundary renders automatically in every task, so field teams always see the full site context alongside their specific work zone.
Field Surveys & Inspections
Capture survey polygons, inspection routes, and sampling points against project and task records. Line and polygon measurements are calculated automatically. Export geometries as GeoJSON for use in QGIS, ArcGIS, or any downstream system.
Landscape & Agriculture Projects
Define plot or field boundaries at the project level; draw per-task treatment zones, sub-parcel allocations, or irrigation routes on each task. The project boundary stays visible in every task as an orange overlay so operators never lose spatial orientation.
Property Management & Facilities
Assign properties or facility footprints to project records. Create maintenance or inspection tasks scoped to specific areas of the site. Use the task map view to see all open work orders geographically and identify workload concentration by location.
project.project and project.task with Mapbox GL drawing and map views using the web_widget_mapbox_gl and web_view_mapbox_gl_draw modules.
What's in the Bundle
Mapbox GL Project Suite is a 5-module package organized across three layers. The two infrastructure modules and two drawing modules form the same foundation as the Mapbox GL Drawing Suite; the fifth module — project_mapbox_gl — integrates all four into Odoo's Project application.
base_mapbox_gl— Mapbox configuration, on-map controls, geocoding, and all bundled libraries (Mapbox GL JS, Draw, Search Box SDK, Turf.js)web_view_base_mapbox_gl— Themapbox_glOdoo view type: sidebar, search/filter/group-by, box-zoom selection, action menus, and automatic bounds fittingweb_view_mapbox_gl_draw— GeoJSON geometry display view with automatic measurements, colour coding, multi-layer rendering, and a SearchableJson field typeweb_widget_mapbox_gl— Interactive drawing widget for form fields: 8 tools, label annotations, undo/redo, live measurements, area auto-calculation, GeoJSON import/exportproject_mapbox_gl— Project and Task integration: Site Area tab on project and task forms, Project Map View, Task Map View with orange parent-project overlay, automatic area fields, colour picker, HTML notes field, and post-install/uninstall menu hooks
Odoo Project Module
The suite depends on Odoo's built-in project module, which provides the project.project and project.task models that project_mapbox_gl extends. This module is part of every standard Odoo installation and does not need to be purchased separately.
If you need the drawing and map view capabilities without the Project integration, the Mapbox GL Drawing Suite provides the first four modules as a standalone package that can be applied to any custom model.