A지점에서 B지점까지 차량이동 거리를 알기위해 지도 관련 API를 검색 해보았다. 1. Google Maps Platform(GoogleMap) - 검색어로 장소 찾기 가능 - 해당 장소의 좌표 취득 가능 - A/B 좌표의 차량 이동거리 취득 가능 (일부 국가 제외) 2. Naver 지도 API - 검색어로 장소 찾기 가능 - 해당 장소의 좌표 취득 가능 - A/B 좌표의 차량 이동거리 취득 불가능 3. Kakao 지도 API - 검색어로 장소 찾기 가능 - 해당 장소의 좌표 취득 가능 - A/B 좌표의 차량 이동거리 취득 불가능 4. Tdeveloper(Tmap) 지도 API - 검색어로 장소 찾기 가능 - 해당 장소의 좌표 취득 가능 - A/B 좌표의 차량 이동거리 취득 가능 Google Maps P..
[ 사전 약속 ] 1. Tile : x,y 좌표를 가지는 정사각형의 바닥 2. Map : x,y 좌표를 갖고 Tile로 이루어진 공간 3. OpenList : 열린 목록 (이동 가능한 Tile) 4. ClosedList : 닫힌 목록 (다시는 검색할 필요가 없는 Tile) 5. 상하좌우 이동값=10, 대각선 이동값=14 [ 핵심 공식 ] F = G + H G : 시작 Tile로부터 현재 Tile까지의 거리 H : 현재 Tile로부터 도착 Tile까지의 거리, 장애물은 없는것으로 생각, 맨하탄 방식(대각선 이동 불가, 상하좌우로만 계산) [ 목적 ] 시작 Tile ~ 도착 Tile 까지의 최소비용의(F) Path를 구한다. [ 로직 ] 1. StartPoint를 OpenList에 추가 ---- 반복 범위 ..
매번 코드를 추가하는게 귀찮아서 dll파일로 만들어서 Github에 올려둔다. Github : github.com/vip00112/LayeredFormDLL [ 일반 Form에 배경 이미지로 지정시 ] [ LayerdForm(투명 폼) 적용시 ] [ 설명 ] 32비트 투명 배경을 가지는 png 파일을 이용하여 Layerd Form을 그려준다. MSDN의 예제파일을 사용하기 쉽도록 dll화 한 프로젝트 이다. System.Windows.Forms.Form class를 상속받아 LayeredForm class를 구현 했다. [ 내장 Override 메서드 ] 1. CreateParams : LAYERED 스타일 반영 2. OnMouseMove,OnMouseDown : Form의 위치 이동 지원 3. OnMo..
매번 코드를 추가하는게 귀찮아서 dll파일로 만들어서 Github에 올려둔다. Github : github.com/vip00112/Cryptor [전체 코드] 1. Hash (MD5, SHA256/384/512) using System; using System.Text; namespace Cryptor { public class Hash { public enum HashType { MD5, SHA256, SHA384, SHA512 } /// /// MD5 암호화 /// /// 암호화 할 평문 /// System.Text.Encoding /// 지정된 인코딩으로 암호화한 문자열 public static string EncryptMD5(string text, Encoding encoding) { var md..
ListView Colum 클릭시 정렬 자체는 간단하지만 기본적으로 문자로 인식하고 정렬하기 때문에 의도치 않는 결과를 얻을 수 있다. ex) 1, 2, 3, 10, 100 -> 1, 10, 100, 2, 3 매번 필요할때마다 찾고 코드를 추가하기 귀찮아서 dll파일로 만들어서 github에 올려둠. Github : github.com/vip00112/ListViewColumSortDLL [전체 코드] public class ItemSort { /// /// ListView ColumnClick 함수 내에서 클릭 /// 최초 클릭시 오름차순(ASC) 정렬 됨 /// /// 정렬할 ListView 객체 /// ColumnClick Event의 이벤트 객체 /// 숫자형 정렬 여부 public static ..
매개인자 전달시 out 또는 ref 키워드와 함께 전달하면 call by reference처럼 변경된 값을 다시 되돌려 받을 수 있다. out과 ref 키워드의 차이점을 간단하게 정리 해둔다. static void Main(string[] args) { int a = 0; int b; // out 인자로 쓰일 변수는 초기화 하지 않아도 가능 RefTest(ref a); OutTest(out b); // ref와 out둘다 전달한 인자값을 돌려 받는다. Console.WriteLine("a in Main : " + a); // 6 Console.WriteLine("b in Main : " + b); // 3 Console.WriteLine("\n\nPress \"Enter\" key..."); Consol..
일반적으로 프로그램을 배포시 exe파일과 Application이 호출하는 dll파일은 동일한 폴더(또는 dll 파일이 System폴더에 위치)에 있어야 한다. Microsoft 공식 배포처에서는 exe와 호출하는 라이브러리를 병합하는 프로그램을 배포중이지만, 컴파일러단에서 자체 해결할 수 있는 방법도 존재한다. 1. 사용하고자 하는 dll을 프로젝트에 참조 2. 해당 dll을 프로젝트 리소스에 추가 3. 리소스에 추가된 dll의 속성 -> 빌드작업 속성 값을 포함 리소스로 지정 4. 프로그램 진입점(Program.cs)에 코드를 아래와 같이 변경 /// /// 해당 응용 프로그램의 주 진입점입니다. /// [STAThread] static void Main() { // 리소스 dll 취득 AppDomai..
초보 개발자가 C#과 웹을 연동하여 작업을 할때 인코딩 문제로 당황하는 경우가 많다. .NET 에서는 사용자의 버전에 따라 HTML 또는 Uri의 인코딩을 지원해 준다. 1) .NET Framwork 4 이상 (Client Profile은 지원하지 않는다.) private string UrlEncode(string text) { return System.Web.HttpUtility.UrlEncode(text); } private string UrlDecode(string text) { return System.Web.HttpUtility.UrlDecode(text); } 2) 그 외 버전 private string UrlEncode(string text) { return System.Uri.EscapeD..
Java로 코딩 당시는 System.currentTimeMillis() 함수를 상당히 유용하게 썼었다. C#을 하면서 같은 결과를 낼 수 있는 방법이 있다. 물론, StopWatch나 TimeSpan등을 이용하면 같은 효과를 낼 수도 있다. 이 글에서는 Java와 동일한 방식을 구현한 코드를 작성했다. private readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); private long CurrentTimeMillis() { return (long) (DateTime.UtcNow - Jan1st1970).TotalMilliseconds; } private void Test() { long oldTime ..
Winhttp를 이용하여 웹서버에 게시글을 작성하는 작업을 할 때, 인코딩 문제로 실제 게시글이 깨져 보이는 현상이 생긴다. 해당 웹서버의 인코딩 설정에 따라 다르지겠지만 가장 자주 쓰이는 UTF-8과 ecu-kr 인코딩 방법을 정리 해둔다. // euc-kr private string EncodingByEuckr(string s) { byte[] euckrBytes = System.Text.Encoding.GetEncoding(51949).GetBytes(s); string urlEncodingText = ""; foreach (byte b in euckrBytes) { string addText = Convert.ToString(b, 16); urlEncodingText = urlEncodingTex..
- Total
- Today
- Yesterday