Cấu hình view viin_map
View viin_map có thể được sử dụng để hiển thị vị trí hoặc tuyến đường trên bản đồ. Dưới đây là các ví dụ về cách cấu hình view cho từng trường hợp.
### Hiển thị dữ liệu vị trí
Để hiển thị vị trí dưới dạng marker trên bản đồ, bạn có thể cấu hình view viin_map cho model như res.partner. View này sẽ hiển thị mỗi đối tượng partner như một marker trên bản đồ kèm thông tin trong popup.
Ví dụ về view viin_map hiển thị vị trí:
<record id="res_partner_view_map" model="ir.ui.view">
<field name="name">res.partner.view.map</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<viin_map res_partner="id">
<marker-popup>
<field name="name" string="Tên"/>
<field name="mapping_address" string="Địa chỉ"/>
</marker-popup>
</viin_map>
</field>
</record>
Giải thích:
- res_partner="id": Bản đồ sử dụng trường id của model res.partner để xác định vị trí trên bản đồ.
- marker-popup: Chỉ định các trường sẽ hiển thị trong popup của marker, trong ví dụ này là name và mapping_address.
### Hiển thị tuyến đường
Để hiển thị tuyến đường qua nhiều waypoint, bạn có thể cấu hình view viin_map với thuộc tính routing="true". Nếu không định nghĩa trường polyline, nó sẽ được tạo tự động từ waypoint.
Ví dụ về view viin_map hiển thị tuyến đường:
<record id="view_route_route_map" model="ir.ui.view">
<field name="name">route.route.viin_map</field>
<field name="model">route.route</field>
<field name="arch" type="xml">
<viin_map res_partner="address_from_id"
routing="true"
waypoint_field="waypoint_ids"
polyline_field="polyline">
<field name="waypoint_ids" />
<field name="polyline" />
<marker-popup>
<field name="code" string="Mã"/>
<field name="mapping_address" string="Hướng dẫn"/>
</marker-popup>
</viin_map>
</field>
</record>
Giải thích:
- routing="true": Kích hoạt tính năng tuyến đường, cho phép hiển thị tuyến đường giữa nhiều waypoint trên bản đồ.
- waypoint_field="waypoint_ids": Xác định trường chứa danh sách waypoint để tính toán tuyến đường.
- polyline_field="polyline": Không bắt buộc. Nếu không khai báo, polyline sẽ được tự động tạo từ waypoint.
- field name="waypoint_ids": Hiển thị tất cả waypoint trên bản đồ.
### Tự động tạo Polyline từ Waypoint
Khi bạn cấu hình tuyến đường mà không khai báo trường polyline, polyline sẽ tự động được tạo từ tọa độ của các waypoint.
Ví dụ:
<record id="view_route_route_map_auto_polyline" model="ir.ui.view">
<field name="name">route.route.viin_map.auto_polyline</field>
<field name="model">route.route</field>
<field name="arch" type="xml">
<viin_map res_partner="address_from_id"
routing="true"
waypoint_field="waypoint_ids">
<field name="waypoint_ids" />
<marker-popup>
<field name="code" string="Mã"/>
<field name="mapping_address" string="Hướng dẫn"/>
</marker-popup>
</viin_map>
</field>
</record>
### Các trường bắt buộc khi sử dụng Routing
Khi sử dụng routing="true", bạn cần khai báo:
- waypoint_field: Định nghĩa waypoint cho tuyến đường.
- res_partner: Bắt buộc trong tất cả các view viin_map.
Nếu không khai báo polyline_field, nó sẽ được tự động tạo từ waypoint.
Tùy chỉnh view bản đồ
Bạn có thể tùy chỉnh bản đồ bằng cách thêm hoặc sửa đổi các trường trong marker-popup hoặc thêm các thuộc tính khác vào thẻ viin_map.
Ví dụ về view tùy chỉnh:
<record id="view_custom_route_map" model="ir.ui.view">
<field name="name">route.route.custom_map</field>
<field name="model">route.route</field>
<field name="arch" type="xml">
<viin_map res_partner="address_from_id"
routing="true"
waypoint_field="waypoint_ids">
<field name="waypoint_ids" />
<field name="polyline" />
<field name="custom_field" string="Thông tin tùy chỉnh"/>
<marker-popup>
<field name="code" string="Mã"/>
<field name="mapping_address" string="Hướng dẫn"/>
<field name="custom_field" string="Thông tin thêm"/>
</marker-popup>
</viin_map>
</field>
</record>
Giải thích:
- field name="custom_field": Thêm một trường tùy chỉnh vào view và hiển thị trong popup của từng marker.