JavaScript - 如何创建随机经度和纬度?

新手上路,请多包涵

我正在尝试创建随机经度和纬度。我需要创建介于 -180.000 和 +180.000 之间的数字。所以,我可能会得到 101.325 或 -3.546 或 -179.561。

你能告诉我一个快速的公式吗?

感谢大家的帮助。我结合了几个例子来满足我的需要。是的,我可以缩短代码,但这确实有助于了解发生了什么。

 // LONGITUDE -180 to + 180
function generateRandomLong() {
    var num = (Math.random()*180).toFixed(3);
    var posorneg = Math.floor(Math.random());
    if (posorneg == 0) {
        num = num * -1;
    }
    return num;
}
// LATITUDE -90 to +90
function generateRandomLat() {
    var num = (Math.random()*90).toFixed(3);
    var posorneg = Math.floor(Math.random());
    if (posorneg == 0) {
        num = num * -1;
    }
    return num;
}

原文由 Evik James 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 760
2 个回答
function getRandomInRange(from, to, fixed) {
    return (Math.random() * (to - from) + from).toFixed(fixed) * 1;
    // .toFixed() returns string, so ' * 1' is a trick to convert to number
}

在你的情况下: getRandomInRange(-180, 180, 3)

 12.693
-164.602
-7.076
-37.286
52.347
-160.839

原文由 Sergey Metlov 发布,翻译遵循 CC BY-SA 3.0 许可协议

Math.random()*360 - 180

这将使你的范围为 -180 到 180

如果你真的只想要 3 位小数

Math.round((Math.random()*360 - 180) * 1000)/1000

原文由 Joseph Marikle 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题