gpt4 book ai didi

javascript - 纬度/经度 map 上的圆半径

转载 作者:行者123 更新时间:2023-11-28 02:47:30 25 4
gpt4 key购买 nike

我正在尝试在CloudMade地图上画一个圆。圆心以纬度/经度表示,半径以米为单位。以下是我使用的JavaScript,但有些测试似乎表明我对半径的转换使半径太短。有人理解我做错了吗?

函数DrawCircle(中心,半径)
{
    var circlePoints = Array();

with (Math)
{
var d = radius/6371000; // radians
var lat1 = (PI/180) * center.lat(); // radians
var lng1 = (PI/180) * center.lng(); // radians

for (var a = 0; a <= 360; a++)
{
var tc = (PI/180) * a;
var y = asin(sin(lat1) * cos(d) + cos(lat1) * sin(d) * cos(tc));
var dlng = atan2(sin(tc) * sin(d) * cos(lat1), cos(d) - sin(lat1) * sin(y));
var x = ((lng1 - dlng + PI) % (2 * PI)) - PI ; // MOD function
var point = new CM.LatLng(parseFloat(y * (180/PI)), parseFloat(x * (180/PI)));
circlePoints.push(point);
}

circle = new CM.Polygon(circlePoints, circleBorderColor, circleBorderWidth, circleBorderOpacity, circleFillColor, circleFillOpacity);
map.addOverlay(circle);
}


}

最佳答案

我要做的是首先确定椭圆中的点。我选择了360以简化操作。然后,对于绕圆每度的每个点,获取径向距离处的点,并以此方式制作多边形。我从here中提取了算法。

关于javascript - 纬度/经度 map 上的圆半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4547588/

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