Z-Maps Car
Tính năng
Những gì hiện trên màn hình lái, và những gì chỉnh được trong Cài đặt.
Màn hình lái
Những gì hiện ra trong lúc bạn đang chạy
Toàn bộ vòng lặp lái xe nằm trong một foreground service chứ không nằm ở Activity — trên head unit, Activity bị dừng bất cứ lúc nào: cài số lùi thì camera de chiếm màn hình, có cuộc gọi thì app điện thoại nhảy lên. Chuyến đi và cảnh báo phải sống qua những lần đó.
Số tốc độ đổi màu theo mức
Trắng khi trong giới hạn, vàng khi vào biên an toàn, cam khi vượt, đỏ khi vượt nhiều. Nhìn một cái là biết, không cần đọc chữ.
Biển giới hạn giống biển thật
Nền trắng viền đỏ như biển R.127 ngoài đường. Giá trị do app suy ra thì có thêm chữ ~ ước tính bên dưới.
Trạng thái GPS luôn hiển thị
Đang chờ GPS, GPS tốt, hay tốc độ đang được tính từ GPS thay vì lấy từ driver — bạn luôn biết con số đang dựa trên cái gì.
Bám đường theo khung hình đang vẽ
RoadMatcher đọc các đối tượng đường đang được render để biết bạn đang ở đoạn nào, tên đường gì và cấp đường nào.
Sửa giới hạn ngay trên xe
Đoạn nào app đoán sai thì mở ô sửa giới hạn, chọn đúng con số và app ghi nhớ cho khu vực quanh vị trí đó. Muốn bỏ thì bấm 'dùng lại mặc định'.
Chuyến đi tính liên tục và được lưu
Quãng đường, thời gian chạy, tốc độ trung bình / cao nhất và số lần vượt tốc, cộng dồn suốt hành trình rồi ghi vào lịch sử khi kết thúc.
Cài đặt
Chỉnh cho hợp với xe và thói quen lái
Biên an toàn
Chỉ cảnh báo khi vượt quá giới hạn cộng thêm mức này. Mặc định +5 km/h vì GPS sai số vài km/h, để 0 sẽ kêu oan.
Giọng nói hoặc tiếng bíp
Máy không có giọng tiếng Việt thì app tự chuyển sang tiếng bíp — rất nhiều head unit không cài sẵn TTS vi-VN.
Bật / tắt phần ước tính giới hạn
Tắt đi thì những đoạn đường không có dữ liệu giới hạn sẽ không cảnh báo gì cả, thay vì cảnh báo theo số suy ra.
Kiểu bản đồ
Liberty đầy đủ chi tiết, Dark cho lái đêm, Positron nhạt và ít rối mắt.
Giữ màn hình luôn sáng
Một số head unit tự tắt màn hình giữa đường. Bật tuỳ chọn này thì màn hình sáng suốt chuyến.
Xoá bộ nhớ đệm bản đồ
App tự lưu các đoạn đã đi tối đa 512 MB. Máy sắp đầy bộ nhớ thì xoá ngay trong Cài đặt.
Lịch sử chuyến đi
Mở từ Cài đặt: tổng số chuyến, tổng quãng đường và tổng thời gian, kèm từng chuyến với tốc độ trung bình, cao nhất và số lần vượt. Xoá được từng chuyến hoặc xoá hết.
Xoá các giới hạn đã sửa
Bỏ toàn bộ những con số bạn từng ghi đè để app quay về dùng dữ liệu bản đồ và mức ước tính.
Hai chỗ là suy đoán của app, không phải luật
Ghi rõ ở đây vì hai chỗ này ảnh hưởng trực tiếp tới con số bạn nhìn thấy trên biển.
- Khu vực đông dân cưSuy từ lớp landuse của bản đồ, vì OSM không đánh dấu biển R.420 / R.421. Đây là suy đoán, không phải đọc biển báo.
- Trần theo cấp đườngLuật cho phép 80 km/h trên mọi đường hai chiều ngoài đô thị, kể cả đường làng bê tông rộng 3 m. App kẹp trần theo cấp đường nên kết quả có thể thấp hơn mức luật cho phép — cố ý, vì cảnh báo sớm an toàn hơn cảnh báo muộn.
Ba vấn đề thật
Những chỗ khó nhất, và cách đã xử lý
Head unit báo tốc độ 0 dù xe đang chạy
Nhiều module GPS chỉ parse $GPGGA, không có $GPRMC — Location.hasSpeed() trả true nhưng giá trị luôn bằng 0. Tin thẳng vào nó thì đồng hồ đứng im vĩnh viễn.
SpeedEstimator chạy song song hai nguồn: số driver báo và số tự tính từ hai fix liên tiếp. Sau khoảng 8 mẫu 'đang chạy' mà driver vẫn báo 0 thì kết luận driver hỏng và chuyển hẳn sang tự tính. Có unit test cho đúng ca này.
location/SpeedEstimator.ktTile công cộng không mang tag maxspeed
Schema OpenMapTiles không chứa maxspeed, kể cả với đoạn đường đã có tag trong OSM gốc. Với tile miễn phí thì gần như 100% giới hạn tốc độ phải suy ra.
VietnamSpeedRules cài Thông tư 31/2019/TT-BGTVT cho nhóm xe con và xe tải ≤ 3,5 tấn: 50–60 km/h trong khu đông dân cư, 80–90 km/h ngoài khu đông dân cư, tuỳ đường đôi hay đường đơn. Mọi giá trị suy ra đều hiện kèm chữ ~ ước tính.
speedlimit/VietnamSpeedRules.ktCảnh báo phiền thì tài xế tắt app trong 10 phút
Cảnh báo nhấp nháy theo nhiễu GPS, hoặc đọc liên tục cùng một câu, là cách nhanh nhất để một app cảnh báo tốc độ bị tắt và không bao giờ được bật lại.
OverspeedEngine có độ trễ 3 km/h, chu kỳ nguội 30/20/12 giây theo mức, và biên an toàn mặc định +5 km/h — nhưng khi leo thang lên mức nặng hơn thì báo ngay. VoiceAlerts xin audio focus dạng ducking để hạ nhạc rồi trả lại.
alert/OverspeedEngine.ktThử trên xe của bạn
APK tách theo kiến trúc chip, bản nhỏ nhất chỉ 10 MB.
