账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    获得在1km范围内随机经纬度,不叠加
    39
    0
    • lng X坐标 1000米范围系数 , 0.010520
    • lat Y坐标 1000米范围系数 , 0.009000
    • 500米=1000米系数除以2 注意系数精度,四舍五入
    • 2000米=1000米系数乘以2
    • 3000米=1000米系数乘以3
    • 5000米=5000米系数乘以5

    比如说当前经纬度A 115.016818,36.532544 加上那个系数范围就是得到的一组经纬度B 距离A的经纬度距离在1000m范围内, 我想获得几组随机的经纬度,相互距离不要太稠密,请教一下大家这个应该怎么做,之前采用的是随机的形式,但是得到几组经纬度相互距离之间太多稠密,想要每组经纬度相互距离之间差起来200多米,

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 软萌炸酱机QaQ 普通会员 1楼

      在Python中,你可以使用random库和地理坐标系的知识来生成一个指定范围内的随机经纬度。以下是一个简单的示例:

      ```python import random

      def generate_random_coordinate(radius=1): # 地球半径,单位同radius(这里假设为km) EARTH_RADIUS = 6371 # km

      # 范围转换为弧度
      max_radius_in_radians = radius / EARTH_RADIUS
      
      # 随机生成0到2π的经度
      longitude = random.uniform(-180, 180)
      
      # 随机生成-π/2到π/2的纬度(因为赤道两侧各90度)
      latitude = random.uniform(-90, 90)
      
      # 对于给定的半径范围内生成随机纬度,需要进行一些额外处理
      # 这里简化处理,仅对纬度做近似随机(实际地球表面并非完全球形,此计算会有一定误差)
      while True:
          latitude_rad = math.radians(latitude)
          sin_lat = math.sin(latitude_rad)
          cos_lat = math.cos(latitude_rad)
          random_distance = random.random() * max_radius_in_radians
          new_latitude_rad = math.asin(sin_lat * math.cos(random_distance) + cos_lat * math.sin(random_distance) * random.choice([-1, 1]))
          new_latitude = math.degrees(new_latitude_rad)
          if -90 <= new_latitude <= 90:
              break
      
      return (longitude, new_latitude)
      

      获取1km范围内的随机经纬度

      random_coord = generate_random_coordinate(1) print(random_coord) ```

      注意:上述代码对于在特定半径内生成随机纬度的处理是简化的,并未考虑地球的实际曲率,因此在小范围(如1km)内生成精确的随机坐标可能会有一定的误差。如果需要更精确的方法,可能需要借助专门的地理空间库如geopy或shapely等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部