gpt4 book ai didi

javascript - 生成给定距离的坐标,距中心的 Angular

转载 作者:行者123 更新时间:2023-11-30 15:13:56 25 4
gpt4 key购买 nike

我在 map [x1,y1] 中有一个给定的中心。从那个中心我画了一个半径为 1 英里的圆。我需要在圆周围再生成 8 个点,各个点到中心的距离应该是 1 英里,所以它们在圆的边界上。我确实知道获得 x2、y2 的公式,但问题是它不适用于地球 map ,因为它不是一个完美的球体。

我试过使用 this , 但没有运气。

谁能指出我在什么地方或者我弄错了吗?

编辑:已解决!

所以仔细阅读整个 Movable Type Scripts 我发现了这个(为我的使用而稍微修改):

   let getPoint = (distance, bearing, center) => {

let δ = Number(distance) / 6371e3;
let θ = Number(bearing).toRadians();

let φ1 = center[0].toRadians();
let λ1 = center[1].toRadians();

let sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1);
let sinδ = Math.sin(δ), cosδ = Math.cos(δ);
let sinθ = Math.sin(θ), cosθ = Math.cos(θ);

let sinφ2 = sinφ1*cosδ + cosφ1*sinδ*cosθ;
let φ2 = Math.asin(sinφ2);
let y = sinθ * sinδ * cosφ1;
let x = cosδ - sinφ1 * sinφ2;
let λ2 = λ1 + Math.atan2(y, x);

return [φ2.toDegrees(), (λ2.toDegrees()+540)%360-180];
};

它确实解决了我的问题。

最佳答案

您正在尝试解决所谓的 first (or direct) geodetic problem .知道这个名字将使您的研究更容易。

正如“How to draw polyline perpendicular to another polyline using Leaflet”和“Find destination coordinates given starting coodinates, bearing, and distance”的答案所指出的,在 javascript 中解决此问题的主要选项是 cheap-ruler对于小(ish)区域和greographiclib远距离。

cheap-ruler 往往非常快但不准确,geographiclib 往往较慢但非常准确。

您可能会发现其他实现,每个都有自己的妥协。大地测量很难,所以 there is no "one true way"计算距离或方位 Angular 。

关于javascript - 生成给定距离的坐标,距中心的 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44740076/

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