728x90
728x170
■ 거리를 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
using System;
#region 거리 구하기 - GetDistance(latitude1, longitude1, latitude2, longitude2)
/// <summary>
/// 거리 구하기
/// </summary>
/// <param name="latitude1">위도 1</param>
/// <param name="longitude1">경도 1</param>
/// <param name="latitude2">위도 2</param>
/// <param name="longitude2">경도 2</param>
/// <returns>거리</returns>
public double GetDistance(double latitude1, double longitude1, double latitude2, double longitude2)
{
double theta;
double distance;
theta = longitude1 - longitude2;
double latitudeRadian1 = GetRadian(latitude1);
double latitudeRadian2 = GetRadian(latitude2);
double thetaRadion = GetRadian(theta);
distance = Math.Sin(latitudeRadian1) * Math.Sin(latitudeRadian2) +
Math.Cos(latitudeRadian1) * Math.Cos(latitudeRadian2) * Math.Cos(thetaRadion);
distance = Math.Acos(distance);
distance = distance * 60 * 1.1515;
distance = distance * 1.609344; // MILE에서 KM 단위로 변환한다.
distance = distance * 1000.0; // KM에서 M 단위로 변환한다.
return distance;
}
#endregion
#region 라디안 구하기 - GetRadian(degree)
/// <summary>
/// 라디안 구하기
/// </summary>
/// <param name="degree">각도</param>
/// <returns>라디안</returns>
public double GetRadian(double degree)
{
return degree * Math.PI / 180d;
}
#endregion
#region 각도 구하기 - GetDegree(radian)
/// <summary>
/// 각도 구하기
/// </summary>
/// <param name="radian">라디안</param>
/// <returns>각도</returns>
public double GetDegree(double radian)
{
return radian * 180d / Math.PI;
}
#endregion
728x90
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] API를 사용해 명명 파이프(Named Pipe) 사용하기 (0) | 2018.06.06 |
---|---|
[C#/COMMON] NewtonSoft JSON DLL 버전 충돌 해결하기 (0) | 2018.06.04 |
[C#/COMMON] GZipStream 클래스 : 문자열 압축/해제하기 (0) | 2018.05.17 |
[C#/COMMON] 웹 브라우저에서 프록시 서버 사용하기 (0) | 2018.05.12 |
[C#/COMMON] PerformanceCounter 클래스 사용하기 (0) | 2018.05.09 |
[C#/COMMON] 너비 우선 탐색을 사용해 최단 경로 구하기 (0) | 2018.04.28 |
[C#/COMMON] 너비 우선 탐색하기 (Breadth-First Search) (0) | 2018.04.28 |
[C#/COMMON] 깊이 우선 탐색하기 (Depth-First Search) (0) | 2018.04.28 |
[C#/COMMON] 런타임에서 코드로 C# 코드 생성하기 (0) | 2018.04.26 |
[C#/COMMON] CodeDomProvider 클래스 : 런타임에서 C# 코드를 동적으로 컴파일하고 DLL 파일 생성하기 (0) | 2018.04.26 |