Бизнес-идея

Doroga — цифровая платформа логистики Центральной Азии

Автор: Жолошев Музарбек

Doroga (doroga.kg) — цифровая платформа логистики Центральной Азии. В одной системе работают грузовладелец, перевозчик и водитель, компании со своей логистикой (склад, автопарк и развоз) и «Рынок» сельхозпродукции и скота. Веб-платформа и приложение водителя с «Навигатором» учитывают то, от чего зависит рейс в регионе: перевалы, пункты пропуска и очереди на них, таможенные расчёты. Интерфейс на русском, кыргызском, английском и китайском. Автор идеи и концепции — Музарбек Жолошев.

// содержимое
// Doroga (doroga.kg) · фрагмент исходного кода · автор: Музарбек Жолошев
// Какие пункты пропуска встречает грузовик на выбранной дороге — по порядку и с километром от начала маршрута.

const NEAR_KM = 10;   // how close a crossing must be to the road to count as on the route
const DEDUPE_KM = 60; // two crossings of the same border this close together are the same decision

/** The crossings a route passes through, in the order the truck meets them. */
export function crossingsOnRoute(geometry: string, totalKm?: number): LocatedCrossing[] {
  const points = decodePolyline(geometry);
  if (points.length < 2) return [];
  const { cumulative, scale } = measure(points, totalKm);

  const found: Located[] = [];
  for (const crossing of CROSSINGS) {
    const best = nearestOnLine([crossing.lat, crossing.lng], points, cumulative);
    if (best.km <= NEAR_KM) {
      found.push({ crossing, along: best.along, offKm: best.km });
    }
  }

  found.sort((a, b) => a.along - b.along);

  // Same border, same stretch of road: keep whichever sits closer to the line.
  const kept: Located[] = [];
  for (const item of found) {
    const rival = kept.findIndex(
      (k) =>
        Math.abs(k.along - item.along) < DEDUPE_KM && sameBorder(k.crossing, item.crossing),
    );
    if (rival === -1) kept.push(item);
    else if (item.offKm < kept[rival].offKm) kept[rival] = item;
  }
  kept.sort((a, b) => a.along - b.along);

  return kept.map(({ crossing, along }) => ({
    id: crossing.id,
    atKm: Math.round(along * scale),
  }));
}
ФАЙЛЫ
Файл 1↗
СЕРТИФИКАТ № KSTU-DEP-2026-19EE1B
ДАТА: 8 октября 2026 г. в 10:56
ЗАФИКСИРОВАНО
SHA-256
b0ff2923d5f74101003a677fcdda1032a6a459379b207ac853272c066bf8e64a

Запись подтверждает депонирование материала в системе КГТУ на указанную дату. Не является государственным патентом и не подтверждает новизну разработки.