gpt4 book ai didi

geolocation - 如何在距另一个地理点的距离 d 内创建随机地理点?

转载 作者:行者123 更新时间:2023-12-05 00:00:36 26 4
gpt4 key购买 nike

如何获得随机地理点[十进制纬度/经度],放置在 100 米半径圆内的任何位置?圆心是另一个引用 GeoPoint。
有没有实现这个的函数/公式?

基本上我正在读取我的 android 设备的 GPS 输入并需要在设备周围生成随机地理点 [在以我的设备为中心的半径 100 米的圆圈内]。

请注意:数据库中没有预先存储的地理点。如上所述,我需要动态创建所有地理点。

最佳答案

我刚刚写了一个 Ruby 方法,它扩展了 Random来提供这个。
警告 : 点都在一个盒子里,而不是一个圆圈里。

class Random
def location(lat, lng, max_dist_meters)
这被称为 Random.new.location(mid_lat, mid_lng, dist) .它将返回一个可能在 max_dist_meters 内的点的中点。
    max_radius = Math.sqrt((max_dist_meters ** 2) / 2.0)
不调整为 max_radius我们会在圆外的正方形内(即在角落中)获得点,其中的距离将大于 max_dist_meters .这将我们限制在圆圈内的正方形,这可能更符合您的要求。
    lat_offset = rand(10 ** (Math.log10(max_radius / 1.11)-5))
lng_offset = rand(10 ** (Math.log10(max_radius / 1.11)-5))
1.115来自 here .
    lat += [1,-1].sample * lat_offset
lng += [1,-1].sample * lng_offset
lat = [[-90, lat].max, 90].min
lng = [[-180, lng].max, 180].min
我们可能应该在这里环绕而不是仅仅限制值,欢迎修复。
    [lat, lng]
end
end
欢迎评论/清理!
样本输出 here如果您粘贴 lat/lngs here,您可以很好地看到它.

关于geolocation - 如何在距另一个地理点的距离 d 内创建随机地理点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9917159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com