gpt4 book ai didi

javascript - 奇怪的大圆距离计算

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:44 24 4
gpt4 key购买 nike

我在使用 map 计算大圆距离时遇到了一些问题。

上下文:http://airports.palzkill.de/search/

该 map 应该用作大圆距离搜索 map - 您移动圆心标记或半径标记,圆变小或变大。出于调试目的,框标题字段显示以公里为单位的计算距离。

这仅在圆心接近 0/0 并且半径标记离它不太远时才有效。您将其中一个标记移到“极端”的次数越多,整个事情越偏离切线,只会产生废话。

这是用于计算更新的代码,您也可以在JS文件js.js的第146到184行中找到完整代码:

function searchmapupdate()
{
rad_lat_radiuspos = (circleradiusmarker.getPosition().lat()*Math.PI/180);
rad_lon_radiuspos = (circleradiusmarker.getPosition().lng()*Math.PI/180);
rad_lat_circlecenter = (circlecentermarker.getPosition().lat()*Math.PI/180);
rad_lon_circlecenter = (circlecentermarker.getPosition().lng()*Math.PI/180);

circleradiusvar = Math.acos(Math.sin(rad_lat_circlecenter)*Math.sin(rad_lat_radiuspos)+Math.cos(rad_lat_circlecenter)*Math.cos(rad_lon_radiuspos)*Math.cos(rad_lon_circlecenter-rad_lon_radiuspos))*6371.01*1000;

if (isNaN(circleradiusvar)==false) circle.setOptions({center:circlecentermarker.getPosition(), radius:circleradiusvar});

document.getElementById("mapsearchhead").innerHTML = Math.round(circleradiusvar/1000);
}

由于整个过程确实计算出一些正确的输出,我假设数学本身并不是完全错误的,我猜只是缺少一些“修正”的东西?不幸的是,我在三 Angular 学方面绝对糟糕,所以我不知道这里可能出了什么问题,甚至不知道从哪里开始寻找有关如何解决它的想法。

马可

P.S.:我知道由于投影的球形性质,整个事情必须围绕两极​​“违反直觉”。但这并不能真正解释当您将两个标记移动到靠近赤道(0/179、0/-179)的日期变更线时会发生什么。

最佳答案

好吧,在执行更多代码之后,我实际上发现了等式中的一个错误:在我应该使用 lat 的地方使用 lon。

是的,我现在非常尴尬 - 同样很恼火,我花了 5 个小时查看条款却没有早点发现这个明显的错误。

关于javascript - 奇怪的大圆距离计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045409/

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