跳转到主要内容

将leaflet.js库集成到Odoo中,并添加新的“leaflet_map”视图,用于显示标记。

项目描述

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

此模块扩展了Odoo视图,以添加一种名为 leaflet_map 的新视图,该视图使用Leaflet JavaScript库来使用地图。 (https://leaflet.npmjs.net.cn/) 此库例如在OpenStreetMap项目中使用。 (https://www.openstreetmap.org/)

您可以在同一OCA存储库中的 web_view_leaflet_map_partner 模块中看到简单的用法,该模块在地图中显示您的联系信息,如果已定义纬度和经度。 (要定义纬度和经度,请参阅Odoo模块 base_geolocalize)

https://raw.githubusercontent.com/OCA/geospatial/16.0/web_view_leaflet_map/static/description/view_res_partner_map_1.png
https://raw.githubusercontent.com/OCA/geospatial/16.0/web_view_leaflet_map/static/description/view_res_partner_map_2.png

重要提示

JavaScript库是开源的,并按照BSD 2许可证分发。请参阅: https://github.com/Leaflet/Leaflet/blob/main/LICENSE 您可以自由使用它。

但是,显示地图需要显示由瓦片服务器提供的图层,这需要资源。

用于测试目的

您可以使用openStreetMap URL https://tile.openstreetmap.org/{z}/{x}/{y}.png 或其他,在该页面上列出: https://wiki.openstreetmap.org/wiki/Tile_servers

除了非常有限的测试目的之外,您不应使用OpenStreetMap.org本身提供的瓦片。OpenStreetMap是一个由志愿者运营的非营利组织,无法为大规模商业用途提供瓦片。

常规/高使用率

目录

配置

  • 转到设置 > 技术 > 参数 > 系统参数

  • 创建或编辑键为 leaflet.tile_url 的参数

  • 作为值,设置您选择的瓦片服务器URL。(见说明)

开发

创建新视图

<record id="view_my_model_map" model="ir.ui.view">
    <field name="model">my.model</field>
    <field name="arch" type="xml">
        <leaflet_map
                field_latitude="FIELD_LATITUDE"
                field_longitude="FIELD_LONGITUDE"
                field_title="FIELD_TITLE"
                field_address="FIELD_ADDRESS"
                field_marker_icon_image="FIELD_MARKER_ICON_IMAGE"
            >
            <field name="__last_update"/>
            <field name="FIELD_LATITUDE"/>
            <field name="FIELD_LONGITUDE"/>
            <field name="FIELD_TITLE"/>
            <field name="FIELD_ADDRESS"/>
        </leaflet_map>
    </field>
</record>
  1. FIELD_LATITUDE 和 FIELD_LONGITUDE 是包含模型GPS坐标的字段名称。

  2. FIELD_TITLE 将在弹出窗口显示时用作标题。

  3. FIELD_ADDRESS 将在弹出窗口显示时显示地址。

  4. (可选)FIELD_MARKER_ICON_IMAGE 是放置为标记图标的图像字段名称。注意:您可以设置额外的设置 marker_icon_size_xmarker_icon_size_y 以定义图像大小,以及 marker_popup_anchor_xmarker_popup_anchor_y 以定义弹出窗口的位置。

地图选项

  • default_zoom:定义默认缩放值。(未定义时为7)

  • max_zoom:定义最大缩放值。(未定义时为19)

  • zoom_snap:定义每次更改的缩放级别。(未定义时为1)

  • 为模型创建或更新操作

<record id="my_module.action_my_model" model="ir.actions.act_window">
    <field name="view_mode">tree,form,leaflet_map</field>
</record>

库更新

目前,该模块嵌入的 leaflet.js 库版本为 1.8.0(发布于 2022 年 4 月 18 日。)

如果有新版本发布

地图默认位置

默认情况下,地图位置由用户在函数 get_default_leaflet_position 中定义。如果已定义,则返回当前公司的位置。您可以全局覆盖此函数,或按模型覆盖。

已知问题/路线图

错误跟踪器

错误在 GitHub Issues 上跟踪。如果遇到问题,请检查是否已报告您的问题。如果您是第一个发现它的,请通过提供详细且受欢迎的 反馈 来帮助我们解决问题。

请不要直接联系贡献者以获取支持或帮助解决技术问题。

致谢

作者

  • GRAP

贡献者

其他致谢

该模块嵌入 Leaflet.js 库。

维护者

该模块由 OCA 维护。

Odoo Community Association

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

当前维护者

legalsylvain

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

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

项目详情


下载文件

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

源代码发行版

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

构建发行版

支持者