Este módulo amplía la vista web de Google Map en Odoo para permitir a los usuarios dibujar polígonos, rectángulos y círculos en el mapa.
[](https://youtu.be/DDUFT6XP8AU "Demo")
Puedes encontrar más información sobre las herramientas de dibujo aquí
Este módulo admitirá tres tipos de formas:
- Rectángulo
- Polígono
- Círculo
Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.
auto_awesome Qué hace este módulo
Generado por IA a partir del código · Odoo 12.0Añade herramientas de dibujo a la vista de Google Map en Odoo, permitiendo a los usuarios dibujar un polígono, rectángulo o círculo en un campo de mapa y almacenar su forma, área o radio.
Este módulo amplía la vista de Google Map para que se pueda usar un campo de mapa para dibujar una forma directamente en el mapa en lugar de escribir coordenadas.
- Un nuevo tipo de campo,
map_drawing_shape, está disponible para campos de texto. En modo edición muestra un mapa de Google con controles de dibujo en la parte inferior para círculo, polígono y rectángulo. - Después de dibujar, la forma permanece editable: los usuarios pueden arrastrarla, mover sus puntos o cambiar su radio, y el valor almacenado se actualiza automáticamente.
- Solo se permite una forma por campo; intentar dibujar una segunda muestra una advertencia.
- Un botón de papelera en el mapa elimina la forma seleccionada.
- El módulo almacena el tipo de forma, su área (para polígonos), su radio (para círculos) y las coordenadas de path/bounds/center. Un método auxiliar
decode_shape_pathsconvierte el texto almacenado de nuevo en datos utilizables. - En modo de solo lectura, la forma guardada simplemente se muestra en el mapa.
Dónde aparece:
- En Settings, bajo la sección Google Maps, una nueva casilla "Drawing" activa o desactiva la librería de dibujo de Google Maps. Esta configuración se guarda como el parámetro del sistema google.maps_libraries.
- El widget de dibujo se añade a los assets de backend de la vista de Google Map.
Modelos afectados: google.map.drawing.shape.mixin (un mixin abstracto que proporciona los campos de forma) y res.config.settings para la opción Drawing. Los derechos de acceso se conceden a todos los usuarios internos.
Depende de
Modelos y campos (2)
- res.config.settings · amplía un modelo existentegoogle_maps_drawing (Drawing)
- google.map.drawing.shape.mixin · modelo nuevoshape_area (Area), shape_name (Name), shape_type (Type), shape_paths (Paths), shape_radius (Radius), shape_description (Description)
Texto generado por IA (DeepSeek) al leer el código de la versión 12.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.
Fuentes · Odoo 12.0
Confirmado el 2026-11-03 en la rama 12.0 de OCA/geospatial.
terminal Instalación y uso
Documentación de OCA · Odoo 12.0Este módulo proporciona un framework extensible y no puede usarse por sí solo. A continuación se ofrece información sobre cómo implementarlo para tu propio módulo.
Drawing Mixin
Para facilitar la implementación de esta funcionalidad, se ha definido una clase mixin que puedes usar en tu modelo
class GoogleMapDrawingShapeMixin(models.AbstractModel):
_name = 'google.map.drawing.shape.mixin'
_description = 'Google Maps Shape Mixin'
_rec_name = 'shape_name'
shape_name = fields.Char(string='Name')
shape_area = fields.Float(string='Area')
shape_radius = fields.Float(string='Radius')
shape_description = fields.Text(string='Description')
shape_type = fields.Selection([
('circle', 'Circle'),
('polygon', 'Polygon'),
('rectangle', 'Rectangle')],
string='Type', default='polygon', required=True)
shape_paths = fields.Text(string='Paths')
@api.multi
def decode_shape_paths(self):
self.ensure_one()
return safe_eval(self.shape_paths)Cómo usar el widget
<field name="shape_paths" widget="map_drawing_shape"/>Cómo cargar forma(s) en la vista map
<record id="view_res_partner_area_map" model="ir.ui.view">
<field name="name">view.res.partner.area.map</field>
<field name="model">res.partner.area</field>
<field name="arch" type="xml">
<map library="drawing" string="Shape">
<field name="partner_id"/>
<field name="shape_name"/>
<field name="shape_description"/>
<field name="shape_type"/>
<field name="shape_radius"/>
<field name="shape_area"/>
<field name="shape_paths"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="oe_kanban_details">
<strong class="o_kanban_record_title oe_partner_heading">
<field name="shape_name"/>
</strong>
<div>
<field name="shape_description"/>
</div>
<div attrs="{'invisible': [('shape_type', 'not in', ['rectangle', 'polygon'])]}">
Area: <field name="shape_area"/>
</div>
<div attrs="{'invisible': [('shape_type', '!=', 'circle')]}">
Radius: <field name="shape_radius"/>
</div>
</div>
</div>
</t>
</templates>
</map>
</field>
</record>Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.