OdooWiki OCA HUB

Geospatial support for Odoo

base_geoengine folder_open OCA/geospatial open_in_new
GeoBI License: AGPL-3

GeoEngine is an Odoo module that adds spatial/GIS capabilites to Odoo. It will allow you to :

  • Visualize and query your business information on map
  • Perform GeoBI and spatial query
  • Configure your spatial layers and spatial datasources
  • Extend Odoo models with spatial columns

GeoEngine relies on OpenLayers and PostgGIS technologies.

Postgis is used to store spatial information in databases. OpenLayer is used to represent spatial data in other words to show maps and the different spatial layers. The GeoEngine module acts as a data provider and as an OpenLayers configurator. It also provides a complete extension to Odoo ORM.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds map views to Odoo so users can see records on an interactive map, search them by location, and draw or edit geographic shapes directly on records.

This module turns Odoo into a mapping tool. It adds a new "GeoEngine" view type that can be used on any model, showing records as points, lines or polygons on an OpenLayers map instead of a list or form.

  • On the map screen you get a Layers panel to switch vector layers on/off and choose a background raster layer, and a Records panel listing the records shown on the map with zoom-in/zoom-out buttons and a search box.
  • Clicking a feature opens a popup with an OPEN button to jump to the record; records can be edited and saved from the map.
  • Administrators configure maps under the GeoEngine Backend menu: Raster Layer Management (OpenStreetMap, WMTS, distant WMS backgrounds) and Vector Layer Management (which model, which geographic field, colours, classification, opacity, labels, filters).
  • Vector layers can be styled as basic, proportional symbol or coloured range, with unique/interval/quantile/custom classification, and can be restricted by a domain.
  • Geographic fields (point, line, polygon and their multi variants) can be added to models; the field definition screen gains PostGIS type, dimension, SRID and gist index options.
  • The module adds a geo_search method supporting spatial operators such as geo_intersect, geo_within, geo_contains, geo_touch, geo_equal, geo_greater and geo_lesser.
  • Access is controlled by Geoengine User and Geoengine Admin groups; all internal users get the user group and ERP managers get the admin group.

Depends on

baseweb

Menus it adds

GeoEngine BackendRaster Layer ManagementVector Layer ManagementConfigurationView Management
Models and fields (6)
  • base · extends an existing model
  • ir.ui.view · extends an existing modeltype, projection, default_zoom (Default map zoom), default_extent (Default map extent), raster_layer_ids, vector_layer_ids, restricted_extent (Restricted map extent)
  • ir.model.fields · extends an existing modeldim (PostGIs Dimension), srid (srid), ttype, geo_type (PostGIs type), gist_index (Create gist index)
  • geoengine.raster.layer · new modelurl (Service URL), name (Layer Name), type, units, is_wms, params, is_wmts, opacity, overlay (Is overlay layer?), type_id, view_id, field_id, has_type, sequence (Layer priority), dimensions, matrix_set (Matrix set), max_extent (Max extent), params_wms (Params WMS), projection, raster_type (Raster layer type), resolutions, server_type, use_to_edit (Use to edit), format_suffix (Format), request_encoding (Request encoding)
  • geoengine.vector.layer · new modelname (Layer Name), view_id, geo_repr (Representation mode), model_id, nb_class (Number of class), readonly (Layer is read only), sequence (Layer Priority), end_color (End color class), model_name, begin_color (Begin color class), geo_field_id, model_domain, layer_opacity, model_view_id, classification (Classification mode), active_on_startup, layer_transparent, attribute_field_id, display_polygon_labels (Display Labels on Polygon), attribute_field_id_domain
  • geoengine.raster.layer.type · new modelcode, name, service

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 13.0

Confirmed on 2026-11-03 in branch 13.0 of OCA/geospatial.

terminal Installation and usage

OCA documentation · Odoo 18.0

To install this module, you need to have PostGIS installed.

On Ubuntu:

> sudo apt-get install postgis

The module also requires two additional python libs:

  • Shapely
  • geojson

When you will install the module this two additional libs will be installed.

For a complete documentation please refer to the public documenation

Geoengine Demo

  • As a user/admin, when I am in the Geoengine Demo module and I go to the ZIP menu. When I click on an item in the list view, I get to the form view showing me the different information about the ZIP. We can see its ZIP, city, priority, total sales and his spatial representation.
  • As a user, I can't modify the information in the form view.
  • As an admin, I can modify the information in the form view. I can click on the bin button to clear the map and I can draw a new shape.
  • As a user, when I go the "Retail machines" tab and there are no items to display, it does not show me anything.
  • As an admin, when I go the "Retail machines" tab and there are no items to display, the list view of the retail machines suggests to me to add a new line.
  • As a user/admin, if there are items to be displayed in the "Retail machines" tab then I can click on an item and the retail machines form view will be displayed. We can see its spatial representation by going to "The point" tab and its attributes in "Attributes" tab.
  • As a user/admin, when I go to the geoengine zip view by clicking on the map button at the top right of the screen. The geoengine view appears with the first 80 results displayed on the map. The vector layers selected are those defined as "active on startup" by the admin. The selected raster layer is the first one that is not an overlay layer.
  • As a user/admin, when I hover over an area on the map, the area changes its style.
  • As a user/admin, when I click on an area, a popup appears an I can see the different information about the area. If I click on the cross, the popup will disappear. If I click somewhere else on the map, the popup will also disappear. If I click on the about button, then the form view will be displayed.
  • As a user/admin, when I use the paging system, then the results displayed on the map are different (corresponding to the request).
  • As a user/admin, if we use the search bar, we can search results by his zip or his city.
  • As an admin, if I change the sequence of layers with the handle button then the change are persisted in database.
  • As a user, if I change the sequence of layers with the handle button then the change are not persisted in database. There are just the changes in the display.
  • As an admin, if I change the domain of a layer with the filter button then the change are persisted in database.
  • As a user, if I change the domain of a layer with the filter button then the change are not persisted in database. There are just the changes in the display.
  • As an admin, I have the possibility to edit the layer with its corresponding button.
  • As a user/admin, I can open/close LayerPanel with its button.
  • As a user/admin, I can open/close RecordsPanel with its button.
  • As a user/admin, when I click on a record in RecordsPanel, a move is made on the map to the selected record.
  • As a user/admin, when I click on a record in RecordsPanel, I can also click on the left magnifying glass to zoom on the record.
  • As a user/admin, when I click on a record in RecordsPanel, I can also click on the right magnifying glass to get the original zoom.
  • As a user/admin, I can use the search bar to search in the RecordsPanel.
  • As an admin,If the geoengine view is in edit mode, I can create new records by drawing them in the view.
  • As an admin, If the geoengine view is in edit mode, I can modify its spatial representation.

Geoengine Backend

  • As an admin, if I go into the configuration of the raster layers and it has elements, I can click on one and see its information.
  • As an admin, if I want to create a new raster layer, I can click on "NEW" and fill out the form. The required fields for OpenStreetMap type are "Layer Name" and "Related View". If we want to have a WMTS (Web Map Tile Service) raster type. The required fields in addition to the precedents are "Service URL", "Matrix set","Format", "Projection" and "Resolutions". If we take WMS (Web Map Service) raster type, then the required fields are "Layer Name", "Related View", "Service URL", "Params", "Server Type".
  • As an admin,if I go into the configuration of the vector layers and it has elements, I can click on one and see its information.
  • As an admin, if I want to create a new vector layer, I can click on "NEW" and fill out the form. The required fields are "Layer Name", "Related View", "Geo field" and "Representation mode".

No verified information in OCA: Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.