使用 Javascript 打乱半径 100m 半径内的纬度经度坐标
Scramble latitude longitude coordinates within 100m radius with Javascript
标题说明了一切,出于隐私原因,我需要在 100m 半径内打乱纬度/纬度坐标。我只是数学很糟糕,不知道如何将 100m 转换为纬度/纬度......
例如,我会有一个这样的位置:
lat: 52.5037086
lng: 13.434223100000054
需要在 100m 半径内随机加扰,即生成的坐标距离原始坐标在任何方向上最远的距离为 100m。
我见过这个公式:
d = acos( sin(φ1)⋅sin(φ2) + cos(φ1)⋅cos(φ2)⋅cos(Δλ) ) ⋅ R
where:
φ = latitude, λ = longitude
R = radius of earth
d = distance between the points
但是,不知道如何在JavaScript中完成此操作。这些"点"是谷歌地图中的标记,如果它有所作为的话。
老实说,它甚至不需要是一个圆,只需在 100m x 100m 正方形内的随机位置也可以。
在如此小的范围内,我们可以处理问题的线性近似和球形地球模型。
考虑一下,您处于(lat, long)
的位置。然后,将lat
增加 1° 会导致与原始d_lat = Pi * R * 1°/180°
点(圆的简单周长)的距离。
同样,将long
增加 1° 会导致距离 d_long = cos(lat) * Pi * R * 1°/180°
。
然后,您可以计算经纬度的最大变化:
maxChangeLatitude = 100 m / d_lat
maxChangeLongitude = 100 m / d_long
在这个正方形中随机找到一个点,你就有了你的点:
newLat = lat + (2 * Math.random() - 1) * maxChangeLatitude;
newLong = long + (2 * Math.random() - 1) * maxChangeLongitude;
相关文章:
- “可绘制地图”设置地图选项“纬度-经度”
- 如何将纬度经度从HTML表单传递到谷歌地图
- 在D3中确定纬度/经度视图边界
- 地理位置-如何在文本框中显示纬度/经度
- Amcharts-地图:自定义地图上的错误坐标(纬度/经度)(罗马尼亚县级)
- 纬度/经度在D3.js地图上的位置
- 使用 JSON 从数据库检索纬度经度到 PHP 页面
- 纬度/经度 -> x/y,x/y ->纬度/经度
- 海上交通地图 - 纬度/经度 Javascript
- 使用 Javascript 打乱半径 100m 半径内的纬度经度坐标
- 从数据库读取纬度/经度并在地图上放置标记
- 从没有谷歌地理位置的地址获取纬度/经度
- 在数据库中插入纬度经度
- 如何将矢量(X,Y)位置转换为纬度/经度坐标?Javascript
- 地图框:当我尝试更改 geojson 对象的纬度/经度时,该列表不起作用
- 如果定位服务关闭,英特尔 XDK 地理位置将找不到纬度/经度
- 基于点的聚类可在任何给定时间查找图钉聚类纬度经度
- 在阿尔伯斯投影地图上将纬度/经度转换为X/Y坐标
- 如何从外部文件中提取纬度经度组合
- 将纬度/经度转换为地址