Geospatial support for Odoo

base_geoengine
REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/18.0/base_geoengine
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSDmytro Katyukha, Weblate, OCA-git-bot, oca-ci, Christopher Ormaza, anusrinps96
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
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 notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
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.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/17.0/base_geoengine
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Sergio Sancho, Jose Zambudio, Antoni Marroig Campomar, anusrinps96, sanazzzmi
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
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 tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
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 (21)
  • 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')]
  • intermediate_colors Char
    help='Comma-separated hex values for intermediate gradient stops' required=False args: 'Intermediate colors'
  • 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.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/16.0/base_geoengine
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Weblate, OCA-git-bot, oca-ci, Sergio Sancho, anusrinps96, Hadrien Huvelle, Samuel Kouff
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
simplejson
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

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 tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
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 (24)
  • 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'
  • 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 (19)
  • 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
  • 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.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/14.0/base_geoengine
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, Yannick Payot
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
simplejson
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (7)

New fields (0)

No new fields.

Public methods (4)
  • fields_get(self, allfields=None, attributes=None)
    @api.model
    Add geo_type definition for geo fields
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Returns information about the available fields of the class. If view type == 'map' returns geographical columns available
  • 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

New fields (21)
  • dimensions Char
    help="List of dimensions separated by ','" args: 'dimensions'
  • 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: 'formatSuffix'
  • has_type Boolean
    compute='_compute_has_type'
  • is_wmts Boolean
    compute='_compute_is_wmts'
  • matrix_set Char
    args: 'matrixSet'
  • max_extent Char
    args: 'max_extent'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictiorary of values for dimensions as JSON' args: 'params'
  • projection Char
    help='eg. EPSG:21781' args: 'projection'
  • 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: 'requestEncoding'
  • resolutions Char
    args: 'resolutions'
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • 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
    size=1024 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 (1)
  • onchange_set_wmts_options(self)
    @api.onchange('raster_type')
    Abstract method for WMTS modules to set default options

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 (15)
  • active_on_startup Boolean
    help='Layer will be shown on startup if checked.'
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 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 size=64 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
    args: 'Layer Opacity'
  • 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 lower on top'
  • symbol_ids One2many → geoengine.vector.symbol
    args: 'geoengine.vector.symbol', 'vector_layer_id'
  • 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 (4)
  • fieldname Char
    help='Name of the char field or selection field used for comparison' args: 'Category field'
  • img Char
    help="URL of the image to use. You can put an image in your module in static folder e.g. 'base_geoengine/static/img/map-marker.png'"
  • value Char
    help='All object equal to this value will use this symbol'
  • vector_layer_id Many2one → geoengine.vector.layer
    args: 'geoengine.vector.layer'
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
    size=128 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.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/13.0/base_geoengine
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSYannick Vaucher, Ronald Portier (Therp BV), oca-travis, OCA-git-bot, Timon Tschanz, Brian McMaster, Sergio Sancho
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
simplejson
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (7)

New fields (0)

No new fields.

Public methods (4)
  • fields_get(self, allfields=None, attributes=None)
    @api.model
    Add geo_type definition for geo fields
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Returns information about the available fields of the class. If view type == 'map' returns geographical columns available
  • 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

New fields (21)
  • dimensions Char
    help="List of dimensions separated by ','" args: 'dimensions'
  • 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: 'formatSuffix'
  • has_type Boolean
    compute='_compute_has_type'
  • is_wmts Boolean
    compute='_compute_is_wmts'
  • matrix_set Char
    args: 'matrixSet'
  • max_extent Char
    args: 'max_extent'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictiorary of values for dimensions as JSON' args: 'params'
  • projection Char
    help='eg. EPSG:21781' args: 'projection'
  • 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: 'requestEncoding'
  • resolutions Char
    args: 'resolutions'
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • 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
    size=1024 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 (1)
  • onchange_set_wmts_options(self)
    @api.onchange('raster_type')
    Abstract method for WMTS modules to set default options

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 (15)
  • active_on_startup Boolean
    help='Layer will be shown on startup if checked.'
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 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 size=64 args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] 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
    args: 'Layer Opacity'
  • 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 lower on top'
  • symbol_ids One2many → geoengine.vector.symbol
    args: 'geoengine.vector.symbol', 'vector_layer_id'
  • 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 (4)
  • fieldname Char
    help='Name of the char field or selection field used for comparison' args: 'Category field'
  • img Char
    help="URL of the image to use. You can put an image in your module in static folder e.g. 'base_geoengine/static/img/map-marker.png'"
  • value Char
    help='All object equal to this value will use this symbol'
  • vector_layer_id Many2one → geoengine.vector.layer
    args: 'geoengine.vector.layer'
Public methods (0)

No public methods.

New fields (5)
  • dim Selection
    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
    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' size=128 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
    size=128 args: 'Restricted map extent'
  • type Selection
    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.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/12.0/base_geoengine
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSYannick Vaucher, Sylvain LE GAL, GitHub, Akim Juillerat, Alexandre Saunier, nans, Ronald Portier (Therp BV), oca-travis, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, Stéphane Brunner, Sergio Sancho, Ahmed Magdy
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
simplejson
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (7)

New fields (0)

No new fields.

Public methods (4)
  • fields_get(self, allfields=None, attributes=None)
    @api.model
    Add geo_type definition for geo fields
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Returns information about the available fields of the class. If view type == 'map' returns geographical columns available
  • 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

New fields (21)
  • dimensions Char
    help="List of dimensions separated by ','" args: 'dimensions'
  • 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: 'formatSuffix'
  • has_type Boolean
    compute='_compute_has_type'
  • is_wmts Boolean
    compute='_compute_is_wmts'
  • matrix_set Char
    args: 'matrixSet'
  • max_extent Char
    args: 'max_extent'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictionary of values for dimensions as JSON' args: 'params'
  • projection Char
    help='eg. EPSG:3857' args: 'projection'
  • 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: 'requestEncoding'
  • resolutions Char
    args: 'resolutions'
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • 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
    size=1024 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 (1)
  • onchange_set_wmts_options(self)
    @api.onchange('raster_type')
    Abstract method for WMTS modules to set default options

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 (15)
  • active_on_startup Boolean
    help='Layer will be shown on startup if checked.'
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 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 size=64 args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] 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
    args: 'Layer Opacity'
  • 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 lower on top'
  • symbol_ids One2many → geoengine.vector.symbol
    args: 'geoengine.vector.symbol', 'vector_layer_id'
  • 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 (4)
  • fieldname Char
    help='Name of the char field or selection field used for comparison' args: 'Category field'
  • img Char
    help="URL of the image to use. You can put an image in your module in static folder e.g. 'base_geoengine/static/img/map-marker.png'"
  • value Char
    help='All object equal to this value will use this symbol'
  • vector_layer_id Many2one → geoengine.vector.layer
    args: 'geoengine.vector.layer'
Public methods (0)

No public methods.

New fields (5)
  • dim Selection
    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
    selection_add=GEO_TYPES
Public methods (0)

No public methods.

New fields (6)
  • default_extent Char
    default='-123164.85222423, 5574694.9538936, 1578017.6490538, 6186191.1800898' size=128 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
    size=128 args: 'Restricted map extent'
  • vector_layer_ids One2many → geoengine.vector.layer
    required=True args: 'geoengine.vector.layer', 'view_id', 'Vector layers'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/11.0/base_geoengine
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSYannick Vaucher, Maxime Chambreuil, GitHub, Alexandre Saunier, Tonow-c2c, oca-travis, OCA-git-bot, Josue Bulle
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
simplejson
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (6)

New fields (22)
  • dimensions Char
    help="List of dimensions separated by ','" args: 'dimensions'
  • 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: 'formatSuffix'
  • has_type Boolean
    compute='_compute_has_type'
  • is_wmts Boolean
    compute='_compute_is_wmts'
  • matrix_set Char
    args: 'matrixSet'
  • max_extent Char
    args: 'max_extent'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictiorary of values for dimensions as JSON' args: 'params'
  • projection Char
    help='eg. EPSG:21781' args: 'projection'
  • 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: 'requestEncoding'
  • resolutions Char
    args: 'resolutions'
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • server_resolutions Char
    help="List of dimensions separated by ',' eg. 50, 20, 10" args: 'resolutions'
  • 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
    size=1024 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 (1)
  • onchange_set_wmts_options(self)
    @api.onchange('raster_type')
    Abstract method for WMTS modules to set default options

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 (15)
  • active_on_startup Boolean
    help='Layer will be shown on startup if checked.'
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 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 size=64 args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] 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
    args: 'Layer Opacity'
  • 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 lower on top'
  • symbol_ids One2many → geoengine.vector.symbol
    args: 'geoengine.vector.symbol', 'vector_layer_id'
  • 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 (4)
  • fieldname Char
    help='Name of the char field or selection field used for comparison' args: 'Category field'
  • img Char
    help="URL of the image to use. You can put an image in your module in static folder e.g. 'base_geoengine/static/img/map-marker.png'"
  • value Char
    help='All object equal to this value will use this symbol'
  • vector_layer_id Many2one → geoengine.vector.layer
    args: 'geoengine.vector.layer'
Public methods (0)

No public methods.

New fields (5)
  • dim Selection
    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
    selection_add=GEO_TYPES
Public methods (0)

No public methods.

New fields (6)
  • default_extent Char
    default='-123164.85222423, 5574694.9538936, 1578017.6490538, 6186191.1800898' size=128 args: 'Default map extent'
  • default_zoom Integer
    args: 'Default map zoom'
  • projection Char
    default='EPSG:900913' required=True
  • raster_layer_ids One2many → geoengine.raster.layer
    required=False args: 'geoengine.raster.layer', 'view_id', 'Raster layers'
  • restricted_extent Char
    size=128 args: 'Restricted map extent'
  • vector_layer_ids One2many → geoengine.vector.layer
    required=True args: 'geoengine.vector.layer', 'view_id', 'Vector layers'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/10.0/base_geoengine
VERSION
VERSION 2.0.5
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSYannick Vaucher, Pedro M. Baeza, GitHub, Laurent Mignon (ACSONE), nans, Pierre Verkest, Luis Felipe Mileo, Emanuel Cino, oca-travis, OCA-git-bot, Benjamin Willig, Devendra Kavthekar
WEBSITE
WEBSITEhttps://github.com/OCA/geospatial
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
simplejson
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (6)

New fields (22)
  • dimensions Char
    help="List of dimensions separated by ','" args: 'dimensions'
  • 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: 'formatSuffix'
  • has_type Boolean
    compute='_compute_has_type'
  • is_wmts Boolean
    compute='_compute_is_wmts'
  • matrix_set Char
    args: 'matrixSet'
  • max_extent Char
    args: 'max_extent'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictiorary of values for dimensions as JSON' args: 'params'
  • projection Char
    help='eg. EPSG:21781' args: 'projection'
  • 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: 'requestEncoding'
  • resolutions Char
    args: 'resolutions'
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • server_resolutions Char
    help="List of dimensions separated by ',' eg. 50, 20, 10" args: 'resolutions'
  • 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
    size=1024 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 (1)
  • onchange_set_wmts_options(self)
    @api.onchange('raster_type')
    Abstract method for WMTS modules to set default options

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 (15)
  • active_on_startup Boolean
    help='Layer will be shown on startup if checked.'
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 args: 'Begin color class'
  • classification Selection
    required=False string='Classification mode' args: [('unique', 'Unique value'), ('interval', 'Interval'), ('quantile', 'Quantile')]
  • display_polygon_labels Boolean
    args: 'Display Labels on Polygon'
  • end_color Char
    default='#FF680A' help='hex value' required=False size=64 args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] 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
    args: 'Layer Opacity'
  • 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 lower on top'
  • symbol_ids One2many → geoengine.vector.symbol
    args: 'geoengine.vector.symbol', 'vector_layer_id'
  • 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 (4)
  • fieldname Char
    help='Name of the char field or selection field used for comparison' args: 'Category field'
  • img Char
    help="URL of the image to use. You can put an image in your module in static folder e.g. 'base_geoengine/static/img/map-marker.png'"
  • value Char
    help='All object equal to this value will use this symbol'
  • vector_layer_id Many2one → geoengine.vector.layer
    args: 'geoengine.vector.layer'
Public methods (0)

No public methods.

New fields (5)
  • dim Selection
    string='PostGIs type' 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
    required=True args: '_get_fields_type', 'Field Type'
Public methods (0)

No public methods.

New fields (6)
  • default_extent Char
    default='-123164.85222423, 5574694.9538936, 1578017.6490538, 6186191.1800898' size=128 args: 'Default map extent'
  • default_zoom Integer
    args: 'Default map zoom'
  • projection Char
    default='EPSG:900913' required=True
  • raster_layer_ids One2many → geoengine.raster.layer
    required=False args: 'geoengine.raster.layer', 'view_id', 'Raster layers'
  • restricted_extent Char
    size=128 args: 'Restricted map extent'
  • vector_layer_ids One2many → geoengine.vector.layer
    required=True args: 'geoengine.vector.layer', 'view_id', 'Vector layers'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/9.0/base_geoengine
VERSION
VERSION 1.2.5
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSYannick Vaucher, Ronald Portier, Pedro M. Baeza, GitHub, Laurent Mignon (ACSONE), Olivier-LAURENT, Benjamin Henquet, Alan Ramos
WEBSITE
WEBSITEhttp://openerp.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (6)

New fields (23)
  • dimensions Char
    help="List of dimensions separated by ','" args: 'dimensions'
  • 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: 'formatSuffix'
  • has_type Boolean
    compute='_get_has_type'
  • is_wmts Boolean
    compute='_get_is_wmts'
  • mapbox_id Char
    size=256 args: 'Mapbox ID'
  • matrix_set Char
    args: 'matrixSet'
  • max_extent Char
    args: 'max_extent'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • params Char
    help='Dictiorary of values for dimensions as JSON' args: 'params'
  • projection Char
    help='eg. EPSG:21781' args: 'projection'
  • raster_type Selection
    default='osm' required=True string='Raster layer type' args: [('osm', 'OpenStreetMap'), ('mapbox', 'MapBox'), ('wmts', 'WMTS'), ('d_wms', 'Distant WMS'), ('odoo', 'Odoo field')]
  • request_encoding Char
    help='eg. REST' args: 'requestEncoding'
  • resolutions Char
    args: 'resolutions'
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • server_resolutions Char
    help="List of dimensions separated by ',' eg. 50, 20, 10" args: 'resolutions'
  • 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
    size=1024 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 (1)
  • onchange_set_wmts_options(self)
    @api.one@api.onchange('raster_type')
    Abstract method for WMTS modules to set default options

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 (12)
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 args: 'Begin color class'
  • classification Selection
    required=False string='Classification mode' args: [('unique', 'Unique value'), ('interval', 'Interval'), ('quantile', 'Quantile')]
  • end_color Char
    default='#FF680A' help='hex value' required=False size=64 args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] 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/Choropleth')]
  • name Char
    required=True size=256 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 lower on top'
  • symbol_ids One2many → geoengine.vector.symbol
    args: 'geoengine.vector.symbol', 'vector_layer_id'
  • 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 (4)
  • fieldname Char
    help='Name of the char field or selection field used for comparison' args: 'Category field'
  • img Char
    help="URL of the image to use. You can put an image in your module in static folder e.g. 'base_geoengine/static/img/map-marker.png'"
  • value Char
    help='All object equal to this value will use this symbol'
  • vector_layer_id Many2one → geoengine.vector.layer
    args: 'geoengine.vector.layer'
Public methods (0)

No public methods.

New fields (5)
  • dim Selection
    string='PostGIs type' 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
    required=True size=64 args: '_get_fields_type', 'Field Type'
Public methods (0)

No public methods.

New fields (6)
  • default_extent Char
    default='-123164.85222423, 5574694.9538936, 1578017.6490538, 6186191.1800898' size=128 args: 'Default map extent'
  • default_zoom Integer
    args: 'Default map zoom'
  • projection Char
    default='EPSG:900913' required=True
  • raster_layer_ids One2many → geoengine.raster.layer
    required=False args: 'geoengine.raster.layer', 'view_id', 'Raster layers'
  • restricted_extent Char
    size=128 args: 'Restricted map extent'
  • vector_layer_ids One2many → geoengine.vector.layer
    args: 'geoengine.vector.layer', 'view_id', 'Vector layers'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/8.0/base_geoengine
VERSION
VERSION 0.4.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Pedro M. Baeza, Nicolas Bessi, GitHub, Laurent Mignon (ACSONE), Daniel Reis, OCA Transbot, Jonathan Nemry, Laurent Mignon, Laurent Mignon (aka lmi), mpanarin, David Lasley
WEBSITE
WEBSITEhttp://openerp.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geojson
shapely
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_common assets_common ir.ui.view qweb Inherits web.assets_common
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields sheet Inherits base.view_model_fields_form
Models touched (4)

New fields (12)
  • field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_'), ('model', '=', 'view_id.model')] args: 'ir.model.fields', 'OpenERP layer field to use'
  • google_type Selection
    string='Google raster layer type' args: [('G_NORMAL_MAP', 'Google normal map'), ('G_SATELLITE_MAP', 'Google staellite map'), ('G_HYBRID_MAP', 'Google Hybrid map'), ('G_PHYSICAL_MAP', 'Google Physical map')]
  • mapbox_id Char
    size=256 args: 'Mapbox ID'
  • name Char
    required=True size=256 translate=True args: 'Layer Name'
  • overlay Boolean
    args: 'Is overlay layer?'
  • raster_type Selection
    default='osm' required=True string='Raster layer type' args: [('osm', 'OpenStreetMap'), ('mapbox', 'MapBox'), ('d_wms', 'Distant WMS'), ('swisstopo', 'swisstopo'), ('openerp', 'OpenERP -- not implemented')]
  • sequence Integer
    default=6 args: 'layer priority lower on top'
  • swisstopo_time Char
    size=256 args: 'Release date'
  • swisstopo_type Selection
    string='Swisstopo raster layer type' args: [('ch.swisstopo.pixelkarte-farbe', 'Color map'), ('ch.swisstopo.swissimage', 'Aerial imagery')]
  • url Char
    size=1024 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 (13)
  • attribute_field_id Many2one → ir.model.fields
    domain=[('ttype', 'in', SUPPORTED_ATT)] args: 'ir.model.fields', 'attribute field'
  • begin_color Char
    help='hex value' required=False size=64 args: 'Begin color class'
  • classification Selection
    required=False string='Classification mode' args: [('unique', 'Unique value'), ('interval', 'Interval'), ('quantile', 'Quantile')]
  • end_color Char
    default='#FF680A' help='hex value' required=False size=64 args: 'End color class'
  • geo_field_id Many2one → ir.model.fields
    domain=[('ttype', 'ilike', 'geo_')] 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/Choropleth')]
  • name Char
    required=True size=256 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 lower on top'
  • symbol_binary Binary
    args: 'Binary Symbol'
  • symbol_url Text
    args: 'Symbol URL'
  • 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
    string='PostGIs type' 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
    required=True size=64 args: '_get_fields_type', 'Field Type'
Public methods (0)

No public methods.

New fields (6)
  • default_extent Char
    default='-123164.85222423, 5574694.9538936, 1578017.6490538, 6186191.1800898' size=128 args: 'Default map extent'
  • default_zoom Integer
    string='Default map zoom'
  • projection Char
    default='EPSG:900913' required=True string='Projection'
  • raster_layer_ids One2many → geoengine.raster.layer
    required=False args: 'geoengine.raster.layer', 'view_id', 'Raster layers'
  • restricted_extent Char
    size=128 string='Restricted map extent'
  • vector_layer_ids One2many → geoengine.vector.layer
    required=True args: 'geoengine.vector.layer', 'view_id', 'Vector layers'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/7.0/base_geoengine
VERSION
VERSION 0.2
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Alexandre Fayolle, Sandy Carter, Nicolas Bessi, Sandy, Laurent Mignon
WEBSITE
WEBSITEhttp://openerp.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
     Geospatial support based on PostGIS
     add the ability of server to server geojson
     to do geo CRUD and view definition
 

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
geo_conf_panel res.company.form.inherit res.company notebook Inherits base.view_company_form
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook 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
Models touched (4)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/geospatial
GIT
GIThttps://github.com/OCA/geospatial.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/geospatial/tree/6.1/base_geoengine
VERSION
VERSION 0.2.0
CATEGORY
CATEGORYGeoBI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Alexandre Fayolle, Nicolas Bessi, Alexandre Fayolle @ camptocamp, Guewen Baconnier @ Camptocamp, Vincent Renaville, openerp, Frederic Junod, Nicolas Bessi (nbessi)
WEBSITE
WEBSITEhttp://openerp.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:04:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
     Geospatial support based on PostGIS
     add the ability of server to server geojson
     to do geo CRUD and view definition
 

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
geo_conf_panel res.company.form.inherit res.company notebook Inherits base.view_company_form
geo_raster_view_form geoengine.raster.layer.form geoengine.raster.layer form New
geo_raster_view_tree geoengine.raster.layer.tree geoengine.raster.layer tree 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 tree New
geoengine_view_form geoengine.view.form ir.ui.view notebook Inherits base.view_view_form
view_model_fields_form_geo ir.model.fields.form.geo ir.model.fields notebook Inherits base.view_model_fields_form
Models touched (0)

No models found for this module.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/geospatial
PULL REQUEST
PULL REQUEST[MIG] base_geoengine: Migrated to 19.0 (#414)