feat(gps): режим «потерян GPS» — LBS-точки помечаются (is_lbs), примерная позиция на карте, пунктир в треке; OSRM map matching трека (matched endpoint + переключатель «По дорогам»)

This commit is contained in:
2026-08-28 17:22:57 +03:00
parent 5d45084af1
commit 60bd52b75a
15 changed files with 374 additions and 42 deletions

View File

@@ -91,12 +91,14 @@ export function useGpsGeozoneEvents(filters: { assetId?: number; geozoneId?: num
});
}
/** Трек объекта за период; загружается только при enabled (по кнопке «Показать») */
export function useGpsTrack(assetId: number | null, from: string, to: string, enabled: boolean) {
/** Трек объекта за период; загружается только при enabled (по кнопке «Показать»).
* matched=true — дополнительно запрашивает линию по дорогам (OSRM) */
export function useGpsTrack(assetId: number | null, from: string, to: string, enabled: boolean, matched = false) {
return useQuery<GpsTrackResponse>({
queryKey: ['/api/gps/assets', assetId, 'track', from, to],
queryKey: ['/api/gps/assets', assetId, 'track', from, to, matched],
queryFn: async () => {
const params = new URLSearchParams({ from, to });
if (matched) params.set('matched', '1');
const res = await apiRequest('GET', `/api/gps/assets/${assetId}/track?${params.toString()}`);
return res.json();
},