如何生成逗号分隔格式的随机经纬度坐标对
调整方案
你原来的代码是单次循环输出1个数值,只需调整循环逻辑,每次循环生成2个随机值拼接后输出即可。如果需要生成符合真实地理规范的坐标,注意纬度的合法取值范围是-9090,经度是-180180,也可以根据你的需求保留原有范围。
推荐写法(逻辑更清晰,方便调整生成组数)
function getRandomInRange(from, to, fixed) { return (Math.random() * (to - from) + from).toFixed(fixed) * 1; } // 需要生成多少组经纬度,就把循环次数设为多少 for (var i = 0; i < 2; i++) { // 生成经度 const longitude = getRandomInRange(-180, 180, 3); // 生成纬度,若不需要规范范围可替换为(-180, 180, 3) const latitude = getRandomInRange(-90, 90, 3); // 拼接输出 console.log(`${longitude},${latitude}`); }
兼容原有4次循环的写法
如果你不想修改循环次数逻辑,也可以临时存储第一个数值,第二个数值生成后拼接输出:
function getRandomInRange(from, to, fixed) { return (Math.random() * (to - from) + from).toFixed(fixed) * 1; } let firstVal = null; for(var i = 0; i < 4; i++) { const current = getRandomInRange(-180, 180, 3); if (firstVal === null) { firstVal = current; } else { console.log(`${firstVal},${current}`); firstVal = null; } }
两种写法都可以得到你需要的输出格式,第一种更易维护,后续要调整生成坐标组数时直接修改循环次数即可。
内容的提问来源于stack exchange,提问作者rob.m
相关产品推荐
相关产品推荐

