跳转到主要内容

Odoo的地理空间支持

项目描述

Beta License: AGPL-3 OCA/geospatial Translate me on Weblate Try me on Runboat

GeoEngine是一个Odoo模块,它为Odoo添加了空间/GIS功能。它将允许您

  • 在地图上可视化查询您的业务信息

  • 执行GeoBI和空间查询

  • 配置您的空间层和空间数据源

  • 通过空间列扩展Odoo模型

GeoEngine依赖于OpenLayersPostgGIS技术。

Postgis用于在数据库中存储空间信息。OpenLayer用于表示空间数据,换句话说,用于显示地图和不同的空间层。GeoEngine模块充当数据提供者和OpenLayers配置器。它还提供对Odoo ORM的完整扩展。

目录

安装

要安装此模块,您需要安装PostGIS

在Ubuntu上

.. code-block:: bash

sudo apt-get install postgis

该模块还需要两个额外的Python库

当您安装模块时,这两个额外的库也将被安装。

有关完整文档,请参阅公开文档

使用

Geoengine演示

  1. 作为用户/管理员,当我进入地理引擎演示模块并访问ZIP菜单时。当我点击列表视图中的某个项时,我会看到关于ZIP的不同信息表单视图。我们可以看到它的ZIP代码、城市、优先级、总销售额以及它的空间表示。

  2. 作为用户,我无法修改表单视图中的信息。

  3. 作为管理员,我可以修改表单视图中的信息。我可以点击垃圾桶按钮清除地图,并绘制新形状。

  4. 作为用户,当我转到“零售机”选项卡且没有要显示的项目时,它不会显示任何内容。

  5. 作为管理员,当我转到“零售机”选项卡且没有要显示的项目时,零售机列表视图建议我添加新行。

  6. 作为用户/管理员,如果“零售机”选项卡中有要显示的项目,则我可以点击项目,并显示零售机表单视图。我们可以通过转到“点”选项卡来查看其空间表示,以及在其“属性”选项卡中查看其属性。

  7. 作为用户/管理员,当我点击屏幕右上角的地图按钮进入地理引擎ZIP视图时。地理引擎视图出现,地图上显示了前80个结果。选定的矢量层是由管理员定义为“启动时激活”的层。选定的栅格层是第一个不是叠加层的层。

  8. 作为用户/管理员,当我将鼠标悬停在地图上的某个区域时,该区域会改变其样式。

  9. 作为用户/管理员,当我点击某个区域时,会弹出一个窗口,我可以看到关于该区域的不同信息。如果点击交叉,弹出窗口将消失。如果我在地图的其他位置点击,弹出窗口也会消失。如果点击关于按钮,则将显示表单视图。

  10. 作为用户/管理员,当我使用分页系统时,地图上显示的结果会不同(对应请求)。

  11. 作为用户/管理员,如果我们使用搜索栏,可以通过ZIP或城市搜索结果。

  12. 作为管理员,如果我使用手柄按钮更改层的顺序,则更改将持久保存在数据库中。

  13. 作为用户,如果我使用手柄按钮更改层的顺序,则更改不会持久保存在数据库中。只有显示上的更改。

  14. 作为管理员,如果我使用过滤器按钮更改层的域,则更改将持久保存在数据库中。

  15. 作为用户,如果我使用过滤器按钮更改层的域,则更改不会持久保存在数据库中。只有显示上的更改。

  16. 作为管理员,我有可能通过其对应的按钮编辑层。

  17. 作为用户/管理员,我可以通过其按钮打开/关闭层面板。

  18. 作为用户/管理员,我可以通过其按钮打开/关闭记录面板。

  19. 作为用户/管理员,当我点击记录面板中的某个记录时,地图上会对选定的记录进行移动。

  20. 作为用户/管理员,当我点击记录面板中的某个记录时,我还可以点击左边的放大镜来放大记录。

  21. 作为用户/管理员,当我点击记录面板中的某个记录时,我还可以点击右边的放大镜以获取原始缩放。

  22. 作为用户/管理员,我可以使用搜索栏在记录面板中进行搜索。

  23. 作为管理员,如果地理引擎视图处于编辑模式,我可以在视图中绘制新记录以创建它们。

  24. 作为管理员,如果地理引擎视图处于编辑模式,我可以修改其空间表示。

Geoengine后端

  1. 作为管理员,如果进入栅格层的配置并具有元素,我可以点击其中一个并查看其信息。

  2. 作为管理员,如果我想创建一个新的栅格图层,我可以点击“新建”并填写表格。OpenStreetMap类型所需的字段是“图层名称”和“相关视图”。如果我们想使用WMTS(Web地图瓦片服务)的栅格类型,除了之前的字段外,还需要“服务URL”、“矩阵集”、“格式”、“投影”和“分辨率”。如果我们使用WMS(Web地图服务)的栅格类型,则所需的字段是“图层名称”、“相关视图”、“服务URL”、“参数”和“服务器类型”。

  3. 作为管理员,如果进入矢量图层的配置,并且它有元素,我可以点击一个并查看其信息。

  4. 作为管理员,如果我想创建一个新的矢量图层,我可以点击“新建”并填写表格。所需字段包括“图层名称”、“相关视图”、“地理字段”和“表示模式”。

已知问题/路线图

变更日志

16.0.1.0.0 (2023-03-20)

  • LayerSwitcher已被删除,因为它并不实用。现在活动的是LayerPanel。

  • geo_search方法现在已弃用,并替换为标准的Odoo搜索方法。

  • “geo_edit_map”小部件的“属性”现在不再必要,因为该字段会自动根据其类型检测。我们还可以提供一个允许我们传递不透明度和颜色的参数的选项属性。

<form>
    <notebook colspan="4">
        <page string="Geometry">
            <field name="the_geom" options="{'opacity': 0.8, 'color': '#0000FF' }" />
        </page>
    </notebook>
</form>
  • geo_search方法现在已弃用。我们现在需要使用标准的Odoo搜索方法。

obj.search([("the_point","geo_intersect",{"dummy.zip.the_geom": [("id", "=", rec.id)]})])
  • 现在我们可以将一个模板传递给geoengine视图,以显示在点击要素时要查看的信息。

<geoengine>
    <field name="name" />
    <field name="city" />
    <field name="total_sales" />
    <field name="the_geom" />
    <templates>
        <t t-name="info_box">
            <field name="city" widget="badge" />
            <ul>
                <li>ZIP : <field name="name" />
                </li>
                <li>Total Sales: <field name="total_sales" />
                </li>
            </ul>
        </t>
    </templates>
</geoengine>
  • 现在我们可以将一个模型传递给图层,以在地图上显示其他信息。

<record id="geoengine_vector_layer_hs_retail_machines" model="geoengine.vector.layer">
    <field name="model_id" ref="base_geoengine_demo.model_geoengine_demo_automatic_retailing_machine"/>
    <field name="model_domain">[('state', '=', 'hs')]</field>
    <field name="geo_field_id" ref="base_geoengine_demo.field_geoengine_demo_automatic_retailing_machine__the_point"/>
    <field name="name">HS retail machines</field>
    <field name="view_id" ref="ir_ui_view_resbetterzipgeoview0" />
    <field name="geo_repr">basic</field>
    <field name="attribute_field_id" ref="base_geoengine_demo.field_geoengine_demo_automatic_retailing_machine__name"/>
    <field name="begin_color">#FF0000</field>
    <field name="display_polygon_labels" eval="0" />
    <field name="layer_opacity">0.8</field>
</record>
  • LayerPanel有一些新功能。

  1. 如果您以管理员身份登录,您可以点击编辑按钮来编辑图层。这将打开一个对话框。更改将实时显示在视图中。

  2. 如果您以管理员身份登录,您还可以更改图层的域。如果您以用户身份登录,更改将不会持久保存在数据库中。更改将实时显示在视图中。

  3. 如果您以管理员身份登录,您还可以通过相互滑动来更改图层的顺序。如果您以用户身份登录,更改将不会持久保存在数据库中。

  • 现在已实现了针对地理字段的Widget域。这意味着也实现了地理运算符,并且有添加子域的可能性。如果我们想添加一个包括在geoengine视图中显示的所有记录的域,我们可以使用两个新的运算符:“in active_ids”和“not in active_ids”。它们将自动用id替换标记。请注意,小部件将指示由于标记而域无效。

  • 已创建RecordsPanel。此面板允许您检索所有活动记录。您可以点击记录以将视图移动到所选记录。还有两个放大镜可用。您可以点击左边的放大镜来放大记录。您可以点击右边的放大镜以获得原始缩放。

  • 还有一个搜索栏。它允许您在RecordsPanel中进行搜索。

  • 还有一个按钮可以打开/关闭面板。

  • 该模块已翻译成法语。

  • 现在您可以将geoengine视图设置为可编辑。只需在geoengine视图中添加editable属性。

<geoengine editable="1">
    <field name="name" />
    <field name="city" />
    <field name="total_sales" />
    <field name="the_geom" />
    <field name="display_name" />
    <templates>
      <t t-name="info_box">
        <field name="city" widget="badge" />
        <ul>
          <li>ZIP : <field name="name" />
          </li>
          <li>Total Sales: <field name="total_sales" />
          </li>
        </ul>
      </t>
    </templates>
  </geoengine>

Thanks to that, you can create new records by drawing them directly in the geoengine view. You can also edit record in the same view.

错误跟踪器

错误在GitHub Issues上跟踪。如果遇到问题,请检查是否已报告您的问题。如果您首先发现它,请提供详细的欢迎反馈,以帮助我们将其解决。

请不要直接联系贡献者以寻求支持或技术问题的帮助。

致谢

作者

  • Camptocamp

  • ACSONE SA/NV

贡献者

维护者

本模块由OCA维护。

Odoo Community Association

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。

本模块是GitHub上OCA/geospatial项目的一部分。

欢迎您贡献力量。有关如何贡献的信息,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程

构建分发

odoo_addon_base_geoengine-17.0.1.0.0.4-py3-none-any.whl (1.6 MB 查看哈希值)

上传时间 Python 3

由以下支持