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);
}
}
나는이 기능이 완벽하게 정확하다는 것을 두 번 확인하고 발견했다. 내가 잘못된 점은 내가 결과를 비교하는 다른 기능 이었다는 것이다. 당신을 괴롭히는 것에 대해 유감스럽게 생각합니다 :) –