in src/lib/components/molecules/canvas-map/lib/util/simplify.js [246:288]
export function radialDistance(
flatCoordinates,
offset,
end,
stride,
squaredTolerance,
simplifiedFlatCoordinates,
simplifiedOffset,
) {
if (end <= offset + stride) {
// zero or one point, no simplification possible, so copy and return
for (; offset < end; offset += stride) {
simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset]
simplifiedFlatCoordinates[simplifiedOffset++] =
flatCoordinates[offset + 1]
}
return simplifiedOffset
}
let x1 = flatCoordinates[offset]
let y1 = flatCoordinates[offset + 1]
// copy first point
simplifiedFlatCoordinates[simplifiedOffset++] = x1
simplifiedFlatCoordinates[simplifiedOffset++] = y1
let x2 = x1
let y2 = y1
for (offset += stride; offset < end; offset += stride) {
x2 = flatCoordinates[offset]
y2 = flatCoordinates[offset + 1]
if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {
// copy point at offset
simplifiedFlatCoordinates[simplifiedOffset++] = x2
simplifiedFlatCoordinates[simplifiedOffset++] = y2
x1 = x2
y1 = y2
}
}
if (x2 != x1 || y2 != y1) {
// copy last point
simplifiedFlatCoordinates[simplifiedOffset++] = x2
simplifiedFlatCoordinates[simplifiedOffset++] = y2
}
return simplifiedOffset
}