-
C# 네이버 지도 API(AI Naver-Directions 5)를 이용해서 거리 구하기닷넷/C# 2021. 5. 13. 18:25반응형
단순히 좌표를 가지고 출발지와 도착지의 차익을 구하는 건 실제 사람이 겪는 거리와 다르다.
따라서 거리를 계산하려면 도로상황과 여러 변수들을 생각해서 계산이 이루어져야 한다.
그러나 일개 개인이 그것을 하기에는 많이 어렵다.
그러나 또 한 편으로는 네이버나 카카오에서 충분히 그런 자료들을 만들어놨음을 그들의 플랫폼을 살펴보면 충분히 알 수 있는 사실이다.
(비용만 지불하면 다 되는 세상이다.)그 중에서 C#에서 네이버 지도 API 중 Directions 5 혹은 15를 사용하는 방법에 대해 기술한다.
* 상세 API 문서는 네이버 클라우드 플랫폼에서 제공 된다.
/// <summary> /// 네이버 API 중 Directions 5를 통해서 출발지와 도착지 사이의 거리를 계산한다. /// </summary> /// <param name="start">출발지 좌표 / 예시) 127.1058342,37.3597078</param> /// <param name="goal"> 도착지 좌표 / 예시) 129.0759853,35.1794697</param> /// <returns>거리 단위는 meter이며, 예시의 좌표로 했을 때 distance는 385111이다.</returns> private string CalculateDistance(string start, string goal) { string distance = ""; try { string url = string.Format("https://naveropenapi.apigw.ntruss.com/map-direction/v1/driving?start={0}&goal={1}&option=trafast", start, goal); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.ContentType = "application/x-www-form-urlencoded"; request.Headers.Add("X-NCP-APIGW-API-KEY-ID", clientId); request.Headers.Add("X-NCP-APIGW-API-KEY", clientSecret); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream())) { string res = reader.ReadToEnd(); JObject jObject = new JObject(); jObject = JObject.Parse(res); distance = jObject["route"]["trafast"][0]["summary"]["distance"].ToString(); } } catch (Exception ex) { distance = ex.Message; } return distance; }
위 코드에서는 거리만 구했는데 전체 응답 결과에는 소요 시간과 거리, 예상 유류비, 통행 요금 정보를 제공하고 또한 경로마다 네비게이션처럼 길을 안내해 줄 수 있는 자료까지 있다.
상황에 따라, 본인의 서비스에 따라서 활용하면 좋을 듯 싶다.
반응형'닷넷 > C#' 카테고리의 다른 글
C# 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법 (0) 2021.07.19 C# A리스트에서 B리스트에 있는 것을 제외하는 방법(LINQ) (0) 2021.07.13 C# 문자열을 문장으로 나누기 (Split('')할 때 'string'에서 'char'(으)로 변환할 수 없습니다. 해결 방법) (0) 2020.11.11 C# foreach 루프를 LINQ로 변환하는 아주 쉬운 방법 (0) 2020.10.16 C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기) (0) 2020.09.11