Rota Optimizasyon Motoru

Aynı görev, daha kısa rota.
Her seferinde.

Rota Optimizasyon Motoru, bir ekibin duraklarını Haversine mesafesi, En Yakın Komşu (Nearest-Neighbor) başlangıç turu ve 2-Opt yerel arama ile yeniden sıralar — ardından tek bir çağrıda daha kısa bir rota ve render edilmeye hazır bir harita döndürür.

Haversine + 2-Opt Canlı Rota Haritası İstek / Yanıt Ekip Rotalama Ekranı
Haversine + 2-Opt

Gerçek ekipler için tasarlanmış
yaklaşık bir TSP çözücü

Her "Rotayı Optimize Et" tıklaması aynı üç adımlı sezgisel yöntemi çalıştırır: her durak arasındaki gerçek dünya mesafesini ölçer, hızlı bir açgözlü (greedy) tur oluşturur, ardından hiçbir yer değişimi turu kısaltmayana kadar yerel olarak iyileştirir.

  • Haversine mesafesi — Dünya'nın gerçek yarıçapını (6.371 km) kullanarak herhangi iki enlem/boylam noktası arasındaki büyük daire (great-circle) mesafesi, km cinsinden
  • En Yakın Komşu başlangıcı — köken merkezden başlar, her seferinde en yakın ziyaret edilmemiş durağa atlar
  • 2-Opt iyileştirmesi — toplam mesafeyi kısalttığı her durumda tur segmentlerini tekrar tekrar ters çevirir, başlangıç turunun kötü atlamalarını düzeltir
  • O(n²) — bir saha ekibinin bir günde gerçekten yaptığı 2-15 duraklı rotalar için anında sonuç
Ekip Rotalamayı Aç
totalapp.app / energy-crew-routing
Önce — Sırasız Duraklar
3
1
5
2
4
Toplam mesafe: 78,4 km
Sonra — Optimize Edilmiş Sıra
1
2
3
4
5
Toplam mesafe: 51,2 km
−%34,7 mesafe
Canlı Rota Haritası

Render edilmeye hazır
bir harita çıktısı

Optimize edilmiş tur, AnyChart connector-map formatında önceden paketlenmiş olarak döner — numaralandırılmış noktalar artı düz bir enlem/boylam bağlayıcı serisi — böylece istemci çizmeden önce hiçbir dönüşüm yapmak zorunda kalmaz.

  • map.points — köken + her durak, numaralandırılmış pinler için bir order indeksiyle birlikte
  • map.connector — düz bir [lat,lng,lat,lng,...] dizisi artı kısa/tam araç ipucu (tooltip) metni
  • Filo modülünün zaten kullandığı aynı paylaşılan rota-haritası bileşenini besler
  • "Haritada Görüntüle" bağımsız kalır — optimize ediciyi hiç çağırmadan mevcut durakları çizer
Bir Rotayı Haritada Görüntüle
totalapp.app / fleet-route-map
H 1 2 3 4
Rota: İstanbul Merkez → 4 durak · 51,2 km
İstek / Yanıt

Tek çağrı içeri,
tek rota dışarı

Tek bir POST /api/en/crew-routing/optimize çağrısı, rotanın duraklarını alır ve yeniden sıralanmış listeyi, yeni toplam mesafeyi ve çizilmeye hazır haritayı döndürür — yan etki yok, kısmi yazma yok.

  • routeId, stops[] ve isteğe bağlı bir köken enlem/boylam gönderin
  • Tek yanıtta optimizedStops, totalDistanceKm ve map geri alın
  • Köken koordinatı gönderilmedi mi? Otomatik olarak İstanbul Merkez'e varsayılan olarak ayarlanır
  • Salt hesaplama — motor diske hiçbir zaman yazmaz; sonucu istemci kaydeder
Tam API Dokümantasyonunu Okuyun
POST /api/en/crew-routing/optimize
// istek
{ "routeId": "rt_204",
  "stops": [ {...} x5 ] }
// yanıt
{ "optimizedStops": [...],
  "totalDistanceKm": 51.2,
  "map": { points, connector } }
Kimlik doğrulanmadıysa 401 · hatalı JSON'da 400
Ekip Rotalama Ekranı

Enerji & Altyapı
saha ekipleri için tasarlandı

Ekip Rotalama (Enerji & Altyapı → Saha & Sevkiyat Operasyonları), bu motoru çağıran tek ekrandır. Rota satırı başına tek bir "Rotayı Optimize Et" tıklaması gerisini halleder.

  • Rotayı Optimize Et — satırın duraklarını motora gönderir, yeniden sıralar ve yeni sırayı + mesafeyi kaydeder
  • Haritada Görüntüle — rotanın mevcut duraklarını doğrudan çizer, optimizasyondan bağımsız olarak
  • Sunucu tarafı hesaplama, rota verisini ve optimize ediciyi aynı backend katmanında tutar
  • Daha sonra gerçek bir Directions API'sine geçiş yalnızca bu tek motor dosyasına dokunur
Enerji & Altyapı'yı Keşfedin
totalapp.app / energy-crew-routing
RotaDurakMesafeİşlem
Rota — Kuzey Şebeke551,2km 🪄 Optimize Et
Rota — Trafo Merkezi B322,7km Haritayı Gör
Rota — Sayaç Taraması764,9km 🪄 Optimize Et
3 aktif rota · Enerji & Altyapı → Saha & Sevkiyat Operasyonları