Globe: more arcs across 27 cities with 8 varied colors

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
This commit is contained in:
alireza 2026-06-10 16:53:58 +03:30
parent eecbb9acbb
commit ee4892df75
1 changed files with 34 additions and 12 deletions

View File

@ -11,20 +11,42 @@ type Arc = {
arcAlt: number; color: string
}
const COLORS = ['#22ade0', '#3b82f6', '#CD9E53']
const COLORS = ['#22ade0', '#3b82f6', '#CD9E53', '#e0529c', '#34d399', '#f59e0b', '#a78bfa', '#ef4444']
/* steel-trade arcs centred on Tehran/Shanghai */
/* global steel-trade arcs across many countries, varied colours */
const ARCS: Arc[] = [
{ order: 1, startLat: 35.69, startLng: 51.39, endLat: 31.23, endLng: 121.47, arcAlt: 0.3, color: COLORS[0] },
{ order: 1, startLat: 35.69, startLng: 51.39, endLat: 33.31, endLng: 44.36, arcAlt: 0.1, color: COLORS[2] },
{ order: 2, startLat: 35.69, startLng: 51.39, endLat: 51.92, endLng: 4.47, arcAlt: 0.3, color: COLORS[1] },
{ order: 2, startLat: 31.23, startLng: 121.47, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[0] },
{ order: 3, startLat: 25.20, startLng: 55.27, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[2] },
{ order: 3, startLat: 19.07, startLng: 72.88, endLat: 35.69, endLng: 51.39, arcAlt: 0.3, color: COLORS[1] },
{ order: 4, startLat: 41.01, startLng: 28.97, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[0] },
{ order: 4, startLat: -23.55, startLng: -46.63, endLat: 31.23, endLng: 121.47, arcAlt: 0.5, color: COLORS[2] },
{ order: 5, startLat: 55.75, startLng: 37.62, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[1] },
{ order: 5, startLat: 37.56, startLng: 126.97, endLat: 31.23, endLng: 121.47, arcAlt: 0.2, color: COLORS[0] },
// Tehran hub
{ order: 1, startLat: 35.69, startLng: 51.39, endLat: 31.23, endLng: 121.47, arcAlt: 0.3, color: COLORS[0] }, // → Shanghai
{ order: 1, startLat: 35.69, startLng: 51.39, endLat: 33.31, endLng: 44.36, arcAlt: 0.1, color: COLORS[2] }, // → Baghdad
{ order: 2, startLat: 35.69, startLng: 51.39, endLat: 51.92, endLng: 4.47, arcAlt: 0.3, color: COLORS[1] }, // → Rotterdam
{ order: 2, startLat: 35.69, startLng: 51.39, endLat: 24.71, endLng: 46.68, arcAlt: 0.15, color: COLORS[3] }, // → Riyadh
{ order: 3, startLat: 25.20, startLng: 55.27, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[2] }, // Dubai →
{ order: 3, startLat: 19.07, startLng: 72.88, endLat: 35.69, endLng: 51.39, arcAlt: 0.3, color: COLORS[4] }, // Mumbai →
{ order: 4, startLat: 41.01, startLng: 28.97, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[5] }, // Istanbul →
{ order: 4, startLat: 55.75, startLng: 37.62, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[6] }, // Moscow →
// Shanghai / East-Asia hub
{ order: 2, startLat: 31.23, startLng: 121.47, endLat: 35.69, endLng: 51.39, arcAlt: 0.2, color: COLORS[0] }, // → Tehran
{ order: 5, startLat: 37.56, startLng: 126.97, endLat: 31.23, endLng: 121.47, arcAlt: 0.2, color: COLORS[3] }, // Seoul → Shanghai
{ order: 5, startLat: 35.68, startLng: 139.65, endLat: 22.32, endLng: 114.17, arcAlt: 0.2, color: COLORS[7] }, // Tokyo → Hong Kong
{ order: 6, startLat: 1.35, startLng: 103.82, endLat: 31.23, endLng: 121.47, arcAlt: 0.25, color: COLORS[1] }, // Singapore → Shanghai
{ order: 6, startLat: -6.21, startLng: 106.85, endLat: 35.68, endLng: 139.65, arcAlt: 0.3, color: COLORS[4] }, // Jakarta → Tokyo
// Europe
{ order: 3, startLat: 51.51, startLng: -0.13, endLat: 52.52, endLng: 13.40, arcAlt: 0.1, color: COLORS[6] }, // London → Berlin
{ order: 7, startLat: 51.92, startLng: 4.47, endLat: 40.71, endLng: -74.0, arcAlt: 0.35, color: COLORS[2] }, // Rotterdam → New York
{ order: 7, startLat: 52.52, startLng: 13.40, endLat: 41.01, endLng: 28.97, arcAlt: 0.2, color: COLORS[5] }, // Berlin → Istanbul
// Americas
{ order: 8, startLat: -23.55, startLng: -46.63, endLat: 31.23, endLng: 121.47, arcAlt: 0.5, color: COLORS[3] }, // São Paulo → Shanghai
{ order: 8, startLat: 40.71, startLng: -74.0, endLat: 51.51, endLng: -0.13, arcAlt: 0.3, color: COLORS[0] }, // New York → London
{ order: 9, startLat: 34.05, startLng: -118.24, endLat: 35.68, endLng: 139.65, arcAlt: 0.4, color: COLORS[7] }, // LA → Tokyo
{ order: 9, startLat: -34.60, startLng: -58.38, endLat: 6.45, endLng: 3.39, arcAlt: 0.4, color: COLORS[4] }, // Buenos Aires → Lagos
{ order: 10, startLat: 19.43, startLng: -99.13, endLat: 40.71, endLng: -74.0, arcAlt: 0.2, color: COLORS[1] }, // Mexico City → New York
// Africa / Middle East
{ order: 10, startLat: 30.04, startLng: 31.24, endLat: 41.01, endLng: 28.97, arcAlt: 0.15, color: COLORS[5] }, // Cairo → Istanbul
{ order: 11, startLat: 6.45, startLng: 3.39, endLat: 51.92, endLng: 4.47, arcAlt: 0.4, color: COLORS[6] }, // Lagos → Rotterdam
{ order: 11, startLat: -26.20, startLng: 28.04, endLat: 19.07, endLng: 72.88, arcAlt: 0.4, color: COLORS[2] }, // Johannesburg → Mumbai
{ order: 12, startLat: -1.29, startLng: 36.82, endLat: 25.20, endLng: 55.27, arcAlt: 0.3, color: COLORS[0] }, // Nairobi → Dubai
// Oceania
{ order: 12, startLat: -33.87, startLng: 151.21, endLat: 31.23, endLng: 121.47, arcAlt: 0.35, color: COLORS[3] }, // Sydney → Shanghai
]
function GlobeObject({ countries }: { countries: { features: object[] } }) {