Repository
OCA/geospatial · module folder · Try on Runboat
Module version
1.2.0
Category
GeoBI
Folder size
5.71 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/geospatial
Last tracking update
2026-08-07 08:42:57
Authors
Camptocamp, ACSONE SA/NV, Odoo Community Association (OCA)
Maintainers
Camptocamp, ACSONE SA/NV, Odoo Community Association (OCA)
Committers
Christopher Ormaza, Weblate, Dmytro Katyukha, OCA-git-bot, oca-ci, anusrinps96
Odoo dependencies
odoo/odoo:
- web
Python dependencies
geojson, shapely
System dependencies
None
Required by
fieldservice_geoengine
Description
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](http://openlayers.org) and
[PostgGIS](http://postgis.refractions.net/) 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.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer list New
geo_vector_geoengine_view_form geoengine.vector.layer.geoengine.form geoengine.vector.layer form New
geo_vector_view_form geoengine.vector.layer.form geoengine.vector.layer form New
geo_vector_view_tree geoengine.vector.layer.tree geoengine.vector.layer list New
geoengine_view_form geoengine.view.form ir.ui.view form Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields form Inherits base.view_model_fields_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (6)

New fields (0)

No new fields.

Public methods (5)
  • fields_get(self, allfields=None, attributes=None)
    @api.model
    Add geo_type definition for geo fields
  • geo_search(self, domain=None, geo_domain=None, offset=0, limit=None, order=None)
    @api.model
    Perform a geo search it allows direct domain: geo_search( domain=[('name', 'ilike', 'toto']), geo_domain=[('the_point', 'geo_intersect', myshaply_obj or mywkt or mygeojson)]) We can also support indirect geo_domain ( ‘geom’, ‘geo_operator’, {‘res.zip.poly’: [‘id’, ‘in’, [1,2,3]] }) The supported operators are : * geo_greater * geo_lesser * geo_equal * geo_touch * geo_within * geo_contains * geo_intersect
  • get_edit_info_for_geo_column(self, column)
    @api.model
  • get_geoengine_layers(self, view_id=None, view_type='geoengine', **options)
    @api.model
  • set_field_real_name(self, in_tuple)
    @api.model

New fields (25)
  • dimensions Char
    help="List of dimensions separated by ','"
  • field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_'), ('model', '=', 'view_id.model')] args: 'ir.model.fields', 'Odoo layer field to use'
  • format_suffix Char
    help='eg. png' args: 'Format'
  • has_type Boolean
    compute='_compute_has_type'
  • is_wms Boolean
    compute='_compute_is_wms'
  • is_wmts Boolean
    compute='_compute_is_wmts'
  • matrix_set Char
    args: 'Matrix set'
  • max_extent Char
    args: 'Max extent'
  • name Char
    required=True translate=True args: 'Layer Name'
  • opacity Float
    default=1.0
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictiorary of values for dimensions as JSON'
  • params_wms Char
    help='Need to provide at least a LAYERS param' args: 'Params WMS'
  • projection Char
    help='eg. EPSG:21781'
  • raster_type Selection
    default='osm' required=True string='Raster layer type' args: [('osm', 'OpenStreetMap'), ('wmts', 'WMTS'), ('d_wms', 'Distant WMS'), ('odoo', 'Odoo field')]
  • request_encoding Char
    help='eg. REST' args: 'Request encoding'
  • resolutions Char
  • sequence Integer
    default=6 args: 'Layer priority'
  • server_type Char
    help='The type of the remote WMS server: mapserver, geoserver, carmentaserver, or qgis'
  • type Char
    related='type_id.code'
  • type_id Many2one → geoengine.raster.layer.type
    domain="[('service', '=', raster_type)]" args: 'geoengine.raster.layer.type', 'Layer'
  • units Char
    help='eg. m'
  • url Char
    args: 'Service URL'
  • use_to_edit Boolean
    args: 'Use to edit'
  • view_id Many2one → ir.ui.view
    domain=[('type', '=', 'geoengine')] required=True args: 'ir.ui.view', 'Related View'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True
  • name Char
    required=True translate=True
  • service Char
    required=True
Public methods (0)

No public methods.

New fields (20)
  • active_on_startup Boolean
    help='Layer will be shown on startup if checked.'
  • attribute_field_id Many2one → ir.model.fields
    args: 'ir.model.fields', 'Attribute field'
  • attribute_field_id_domain Binary
    compute='_compute_attribute_field_id_domain' readonly=True store=False
  • begin_color Char
    help='hex value' required=False args: 'Begin color class'
  • classification Selection
    required=False string='Classification mode' args: [('unique', 'Unique value'), ('interval', 'Interval'), ('quantile', 'Quantile'), ('custom', 'Custom')]
  • display_polygon_labels Boolean
    args: 'Display Labels on Polygon'
  • end_color Char
    default='#FF680A' help='hex value' required=False args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] ondelete='cascade' required=True args: 'ir.model.fields', 'Geo field'
  • geo_repr Selection
    required=True string='Representation mode' args: [('basic', 'Basic'), ('proportion', 'Proportional Symbol'), ('colored', 'Colored range/Chroma.js')]
  • layer_opacity Float
    default=1.0
  • layer_transparent Boolean
  • model_domain Char
    default='[]'
  • model_id Many2one → ir.model
    compute='_compute_model_id' readonly=False store=True args: 'ir.model', 'Model to use'
  • model_name Char
    readonly=True related='model_id.model'
  • model_view_id Many2one → ir.ui.view
    compute='_compute_model_view_id' domain=[('type', '=', 'geoengine')] readonly=False args: 'ir.ui.view', 'Model view'
  • name Char
    required=True translate=True args: 'Layer Name'
  • nb_class Integer
    default=1 args: 'Number of class'
  • readonly Boolean
    args: 'Layer is read only'
  • sequence Integer
    default=6 args: 'Layer Priority'
  • view_id Many2one → ir.ui.view
    domain=[('type', '=', 'geoengine')] required=True args: 'ir.ui.view', 'Related View'
Public methods (0)

No public methods.

New fields (5)
  • dim Selection
    default='2' string='PostGIs Dimension' args: [('2', '2'), ('3', '3'), ('4', '4')]
  • geo_type Selection
    string='PostGIs type' args: POSTGIS_GEO_TYPES
  • gist_index Boolean
    args: 'Create gist index'
  • srid Integer
    required=False args: 'srid'
  • ttype Selection
    ondelete=GEO_TYPES_ONDELETE selection_add=GEO_TYPES
Public methods (0)

No public methods.

New fields (7)
  • default_extent Char
    default='-123164.85222423, 5574694.9538936, 1578017.6490538, 6186191.1800898' args: 'Default map extent'
  • default_zoom Integer
    args: 'Default map zoom'
  • projection Char
    default='EPSG:3857' required=True
  • raster_layer_ids One2many → geoengine.raster.layer
    required=False args: 'geoengine.raster.layer', 'view_id', 'Raster layers'
  • restricted_extent Char
    args: 'Restricted map extent'
  • type Selection
    ondelete={'geoengine': 'cascade'} selection_add=[('geoengine', 'GeoEngine')]
  • vector_layer_ids One2many → geoengine.vector.layer
    required=True args: 'geoengine.vector.layer', 'view_id', 'Vector layers'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Status
Open migration PR — not merged yet for this version
CI status
green — ready to merge
Open since
54 days ago
Last activity
12 days ago
Repository
OCA/geospatial
Pull request
[19.0][MIG] base_geoengine: consolidated migration (#465)
Status
Open migration PR — not merged yet for this version
CI status
green — ready to merge
Open since
320 days ago
Last activity
55 days ago
Repository
OCA/geospatial
Pull request
[MIG] base_geoengine: Migrated to 19.0 (#414)