gpt4 book ai didi

javascript - float 时围绕点的半径不是中心

转载 作者:行者123 更新时间:2023-12-03 06:43:09 25 4
gpt4 key购买 nike

我这样做了,效果很好:

            var radiusMi = parseFloat(obj[8]);
if (typeof radiusMi === 'undefined' || isNaN(radiusMi) || radiusMi == '') {
radiusMi = 2;
}
var radiusMeters = radiusMi * 1609.344;
var currentShape = new google.maps.Circle({
map: map,
radius: radiusMeters,
strokeWeight: 0,
fillColor: '#eb278d',
fillOpacity: 0.25,
center: circleLatLng
});

radiusMi 时,问题就出现了。是一个 float 或低于 1 英里,它会偏离中心。请参见下图了解我的意思(radiusMi 此处设置为 0.5):


(来源:giodev.com)

小房子图标位于正确的位置,但它不是圆圈的中心点,我做错了什么?

最佳答案

纬度和经度是非常精确的 float 。当您使用这些数字进行计算时,由于调用 round、floor、ceil 或简单地将其发送到服务器并检索它,可能会出现舍入错误。

很多因素都会导致精度从点后 8 位变为点后 6 位,这将导致数十米甚至数百米的差异,具体取决于精度损失。

我建议您在此处使用之前检查代码中使用 circleLatLng 的所有位置。因为游戏中可能会出现舍入错误。

确保circleLatLng不包含舍入错误,这可能会使圆中心偏离其原始位置。最好是在代码的开头制作一个副本,以便在这部分代码中显式使用,并准备一个不同的副本用于任意计算。

关于javascript - float 时围绕点的半径不是中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862329/

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