跳转到主要内容

将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/12.0/web_view_leaflet_map/static/description/res_partner_map_1.png
https://raw.githubusercontent.com/OCA/geospatial/12.0/web_view_leaflet_map/static/description/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

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

当前 维护者

legalsylvain

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

欢迎您贡献力量。欲了解更多信息,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

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

源代码发行版

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

构建发行版

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面