js如何根据经纬度和半径,随机获取当前经纬度半径内的一组经纬度

js如何根据经纬度和半径,随机获取当前经纬度半径内的一组经纬度

阅读 3.5k
2 个回答
let originX = 0, originY = 0, radius = 100;
let targetX = originX + Math.floor(Math.random() * radius * 2 + 1 - radius),
    targetY = originY + Math.floor(Math.random() * radius * 2 + 1 - radius);

其实就是给定原点,然后 X、Y 分别加个取值范围为 [-R, R) 的随机数。

P.S. Math.floor 是取整,如果你的经纬度支持小数也可以不去取整。


【补充】

忘了还有球体的问题了,看楼下 @边城 的回答吧。

就是个极坐标转直接坐标的算法,转换参考:https://www.zhihu.com/questio...

  1. [0, R) 之间取随机数,确定一个范围内的半径(区间开合自己根据情况决定)
  2. [0, 360) 之间取随机数,确定一个随机角度。不过 JS 的三角函数是按弧度算的,所以应该是 [0, 2π) 范围内取随机数
  3. 按 1、2 可得到一个极坐标,把它转换成直角坐标
  4. 按给定的经纬度进行偏移(就是刚算出来的直角坐标原点偏移到给定的经纬度上去)

搞定!

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