diff --git a/public/js/app.js b/public/js/app.js index 53374e7..1980b38 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -795,21 +795,32 @@ const isAsia = (n) => n.includes('china') || n.includes('hong kong') || n.includes('singapore') || n.includes('korea') || n.includes('seoul') || n.includes('japan') || n.includes('tokyo') || n.includes('shanghai') || n.includes('beijing'); const isEurope = (n) => n.includes('germany') || n.includes('uk') || n.includes('france') || n.includes('london') || n.includes('frankfurt') || n.includes('paris') || n.includes('united kingdom'); + // Specific ports for Trans-Pacific routing separation + const n = (route.source + ' ' + route.dest).toLowerCase(); + const involvesSeattle = n.includes('seattle'); + const involvesLA = n.includes('los angeles') || n.includes('san francisco') || n.includes('la'); + // Determine base curveness to always bend North (Upward) for major East-West routes // In this map: dx < 0 (Westward) -> negative curveness bends North // dx > 0 (Eastward) -> positive curveness bends North let baseCurve = 0.2; if (dx < 0) baseCurve = -0.2; - // Special case: Trans-Pacific (US <-> Japan/Asia) - usually deeper curve + // Special case: Trans-Pacific (US <-> Japan/Asia) if ((isUS(src) && isAsia(dst)) || (isAsia(src) && isUS(dst))) { - baseCurve = (dx < 0 ? -0.35 : 0.35); + if (involvesSeattle) { + baseCurve = (dx < 0 ? -0.45 : 0.45); // High North arc + } else if (involvesLA) { + baseCurve = (dx < 0 ? 0.35 : -0.35); // South arc (positive for Westward = South) + } else { + baseCurve = (dx < 0 ? -0.3 : 0.3); // Default slight North arc + } } - // Trans-Atlantic (US <-> Europe) - use coordinates to detect + // Trans-Atlantic (US <-> Europe) else if ((isUS(src) && isEurope(dst)) || (isEurope(src) && isUS(dst))) { baseCurve = (dx < 0 ? -0.25 : 0.25); } - // Intra-Asia or shorter routes - flatter curve + // Intra-Asia or shorter routes else if (Math.abs(dx) < 50) { baseCurve = (dx < 0 ? -0.15 : 0.15); }