function* fib_pts(n, gap) {
const lonstep = 720 / (Math.sqrt(5) + 1);
const degrees = 180 / Math.PI;
const polegap = gap(n);
const latstep = 2 / (n - 1 + 2 * polegap);
const latstart = -1 + polegap * latstep;
yield [0, -90];
if (n <= 1) return;
for (let i = 1; i < n - 1; i++) {
const lon = lonstep * i - 360 * Math.round((lonstep * i) / 360);
const lat = degrees * Math.asin(latstart + i * latstep);
yield [lon, lat];
}
yield [0, 90];
}