Haversine Formula를 C#에서 찾았습니다.주변 지역을 찾는 방법 현재 사용자 위치에서 위도와 경도를 사용하여
public double HaversineDistance(LatLng pos1, LatLng pos2, DistanceUnit unit)
{
double R = (unit == DistanceUnit.Miles) ? 3960 : 6371;
var lat = (pos2.Latitude - pos1.Latitude).ToRadians();
var lng = (pos2.Longitude - pos1.Longitude).ToRadians();
var h1 = Math.Sin(lat/2) * Math.Sin(lat/2) +
Math.Cos(pos1.Latitude.ToRadians()) * Math.Cos(pos2.Latitude.ToRadians()) *
Math.Sin(lng/2) * Math.Sin(lng/2);
var h2 = 2 * Math.Asin(Math.Min(1, Math.Sqrt(h1)));
return R * h2;
}
위 공식에 어떤 문제가 있습니까? 왜 "더 나은"솔루션을 찾고 있습니까? 그것을 대체 할 이유가 있다면 그 이유를 표현하십시오. –
"더 나은"이란 무엇을 의미합니까? 빨리? 더 정확한? 양자 모두? –