Köprü sınıfı, yön bazlı waypoint mimarisi, KGM 2026 tarife matrisi, akaryakıt eskalasyonu — 8 araç sınıfı için ayrı hesap. Manuel yapamayacağın bir denklem.
Engine kararı saf TypeScript'te alır. OSRM (OpenStreetMap) rotayı çözer, BACS engine köprü zincirini ve fiyat bandını üretir.
Standart routing API'leri köprü sınıfını bilmez. Excel bu denklemi çözemez. Aşağıda engine'in 5 katmanı — her birinin verisi ve mantığı açık.
Her köprünün iki şeridi farklı koordinatta. Routing motoruna sadece "FSM" demek yetmez — Asya→Avrupa veya Avrupa→Asya şeridinin koordinatı ayrı verilmeli; aksi halde rota yanlış tarafa düşer ve köprüyü atlar.
| Köprü | Yön | Latitude | Longitude |
|---|---|---|---|
| FSM | Asya → Avrupa | 41.0914417 | 29.0618725 |
| FSM | Avrupa → Asya | 41.0912375 | 29.0617078 |
| YSS | Asya → Avrupa | 41.2030227 | 29.1123462 |
| YSS | Avrupa → Asya | 41.2034521 | 29.1106269 |
| Osmangazi | Çift yön | 40.7555839 | 29.5159248 |
| 1915 Çanakkale | Doğu / Batı | 40.2510 / 40.2520 | 26.6210 / 26.6220 |
planChain.direction (forward / reverse)'tan gelir; long-haul rotalar için en güvenilir kaynak.
UKOME ve KGM yönetmeliği: 1.-2. sınıf hafif vasıtalar FSM kullanabilir; 3.-5. sınıf ağır vasıtalar (kamyon/TIR) YSS'den geçmek zorunda. Yanlış araç eşlemesi → ücret yanlış hesaplanır.
| Araç | KGM Sınıf | Boğaz | ₺/km fallback |
|---|---|---|---|
| Minivan | 1. | FSM | 0,90 |
| Panelvan 3,5-5t | 2. | FSM | 1,05 |
| Panelvan 5-7,5t · Kamyonet | 2. | FSM | 1,05 |
| Panelvan 5-7,5t · Kamyon | 3. | YSS | 1,35 |
| Kamyon 7,5-12t | 3. | YSS | 1,35 |
| Onteker 10-15t | 3. | YSS | 1,35 |
| Kırkayak 15-20t | 4. | YSS | 1,75 |
| TIR 22-26t | 5. | YSS | 2,15 |
Sınıf × köprü matrisi. Aynı köprü için 1. sınıf ve 5. sınıf arasında 12,5× fark olabilir. Yanlış sınıflandırma → ihale veya teklif başarısız.
| Köprü | 1. | 2. | 3. | 4. | 5. |
|---|---|---|---|---|---|
| 15 Temmuz Şehitler | 59 | — | — | — | — |
| FSM | 59 | 75 | — | — | — |
| YSS | 95 | 125 | 235 | 595 | 740 |
| Osmangazi | 995 | 1.590 | 1.890 | 2.505 | 3.165 |
| 1915 Çanakkale | 995 | 1.245 | 2.240 | 2.490 | 3.755 |
Tek bir koridor yeterli değil. Bursa → Edirne rotası Osmangazi + YSS ister; engine bu zinciri otomatik kurar.
İki ipucu — akaryakıt-bazlı ve eskalasyon-bazlı — 500'e yuvarlanmış band haline getirilir. Pazarda konuşulabilir, müzakere edilebilir aralık.
fuel = avgConsumption × km / 100 × ₺/L quote = fuel / fuelShare
quote = max(km × ₺/km, minFloor) ₺/km: Minivan 11,5 → TIR 47,0
alt = (akaryakıt × 0,40) + (eskalasyon × 0,60), aşağı 500.
üst = (akaryakıt × 0,45) + (eskalasyon × 0,55), yukarı 500.
Bu repo, Megapol Lojistik için ürettiğim Spot Araç fiyatlama motorunun sanitize edilmiş lite versiyonu. Türkiye'de Koç Holding, Tüpraş, Şişecam, Carrefour SA, NIVEA, Abdi İbrahim, Madame Coco'ya hizmet veren bir lojistik firmasında — aynı algoritma çekirdeği live üretim ortamında çalışıyor.
Public versiyon Google Maps bağımlılığını, müşteri-spesifik iş mantığını ve dahili API uçlarını kaldırır. Geriye saf TypeScript engine + 43 unit test + production-grade tipler kalır. Çalışır, denenebilir, fork edilebilir.
Bu repo bir bitmiş ürün değil — kanıt. Aynı engine zemini sizin TMS, fiyatlama platformu veya satınalma sistemi için özelleştirilebilir. 30 dakikalık görüşmede kapsamı netleştirelim; taahhüt yok.