Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function buildGreatCircleArc(originCoords, destinationCoords, worldMapProjection) {
if (isEqual(originCoords, destinationCoords)) {
return null;
}
const arc = greatCircle(originCoords, destinationCoords, { offset: 400, npoints: 100 });
if (arc.geometry.type === 'MultiLineString') {
return buildCustomArc(originCoords, destinationCoords, worldMapProjection);
}
const pathMaker = geoPath().projection(worldMapProjection);
return pathMaker(arc);
}
type: 'Feature',
properties: {},
geometry: {
type: 'LineString',
coordinates: [[start.longitude, start.latitude], [end.longitude, end.latitude]],
},
}
const lengthKm = length(rawFeature, { units: 'kilometers' })
const lengthNmi = lengthKm / 1.852
const lengthKmFormatted = lengthKm.toFixed(lengthKm > 100 ? 0 : 1)
const lengthNmiFormatted = lengthNmi.toFixed(lengthNmi > 100 ? 0 : 1)
const finalFeature =
lengthKm < 100
? rawFeature
: greatCircle([start.longitude, start.latitude], [end.longitude, end.latitude])
finalFeature.properties.label = `${lengthKmFormatted}km - ${lengthNmiFormatted}nmi`
finalFeature.properties.isNew = isNew
return finalFeature
}