Bỏ qua, đến nội dung

Cấu hình

Bảng mapConfiguration

Plugin lưu cấu hình map provider trong database:

CộtKiểuMô tả
typestringLoại map provider (google)
accessKeystringAPI key của map provider
securityJsCodestringMã bảo mật JavaScript (nếu cần)

Admin quản lý qua trang SettingsMap Configuration hoặc qua API trực tiếp.

API endpoints

EndpointMethodMô tả
map-configuration:getGETLấy cấu hình (API key, type)
map-configuration:setPOSTCập nhật cấu hình

Client gọi map-configuration:get để lấy API key trước khi tải Google Maps JavaScript API.

Bốn geo field types chi tiết

Point

  • Lưu trữ: [longitude, latitude] — mảng 2 phần tử.
  • Input widget: Bản đồ với marker có thể kéo — user click để đặt vị trí.
  • Display widget: Marker trên bản đồ nhỏ hoặc text tọa độ.
  • Value parser: Chuyển đổi giữa [lng, lat] (client) và format lưu trữ database.

Polygon

  • Lưu trữ: [[lng1, lat1], [lng2, lat2], ...] — mảng tọa độ tạo vùng khép kín.
  • Input widget: Bản đồ với drawing tool — user vẽ polygon bằng click từng điểm.
  • Display widget: Vùng tô màu trên bản đồ.

LineString

  • Lưu trữ: [[lng1, lat1], [lng2, lat2], ...] — mảng tọa độ tạo đường.
  • Input widget: Bản đồ với drawing tool — user click tạo đường nối.
  • Display widget: Đường nối trên bản đồ.

Circle

  • Lưu trữ: { center: [lng, lat], radius: number } — tâm và bán kính (mét).
  • Input widget: Bản đồ — user click đặt tâm, kéo để chọn bán kính.
  • Display widget: Hình tròn trên bản đồ.

Field widgets

Mỗi geo field type có hai widget:

WidgetMô tả
InputMap picker cho form — user tương tác bản đồ để nhập giá trị
DisplayHiển thị giá trị trên bản đồ nhỏ hoặc text trong table/detail

Widget tự động load Google Maps API bằng @googlemaps/js-api-loader với API key từ configuration.

Value parsers

Server-side value parsers chuyển đổi dữ liệu geo:

  • Input: Nhận dữ liệu từ client format → chuyển sang storage format.
  • Output: Đọc từ database → chuyển sang client format.

Mỗi geo type có parser riêng đăng ký trong server plugin.

Provider config

Hiện tại plugin hỗ trợ Google Maps làm map provider. Cấu hình tối thiểu cần:

  • API key: Key từ Google Cloud Console với quyền Maps JavaScript API.
  • Tương lai có thể mở rộng hỗ trợ thêm provider khác (Mapbox, AMap...).