단국대학교 멀티미디어공학과 HCI프로그래밍2 (2016년 가을학기) 실습
과목코드 : 300890
강사 : 박경신
———————————————————
날짜: 2016년 11월 28일
– 실습번호 : HW4 (Due by 12/12)
– 실습제목 : Window.Forms , Controls, FileIO, GMap.Net, LINQ
– 실습요약 : 지도 위에 한국의 지진 정보를 보여준다.
– 준비자료 : 지진데이터
http://greatmaps.codeplex.com/releases/view/73162
12/12까지 online.dankook.ac.kr 이러닝으로 실행파일(bin\*.exe)과 소스코드(*.cs)와 보고서(*.doc/*.hwp)를 전부 “학번_이름_HW4.zip”으로 묶어서 제출한다. 또한, 비주얼 스튜디오에서 만든 프로젝트 전체 파일(*.sln, *.csproj)을 폴더에 같이 넣어준다. 보고서는 출력해서 수업시간에 제출한다.
– 실습문제
- GMap.Net 컨트롤을 설치한다.
http://www.independent-software.com/gmap-net-tutorial-maps-markers-and-polygons/
http://dis.dankook.ac.kr/lectures/hci16/2016/11/28/custom-control/ 참고
- KEarthquake 클래스를 만든다.
public class KEarthquake: IComparable<KEarthquake>, IEquatable<KEarthquake>
{
public DateTime Time { get; set; }
public double Magnitude { get; set; }
public double Latitutde { get; set; }
public double Longitude { get; set; }
public string Location { get; set; }
public string Link { get; set; }
public Color MagnitudeColor { get { return ComputeARGBColor(); } }
// compute color based on magnitude
public Color ComputeARGBColor()
{
int r = 0, g = 0, b = 0;
if (Magnitude <= 1.5)
{
// BLUE
r = 0; g = 0; b = 255;
}
else if ((Magnitude > 1.5) && (Magnitude <= 2.75))
{
// BLUE->CYAN
r = 0; g = (int)(255 * (Magnitude – 1.5) / 1.25); b = 255;
}
else if ((Magnitude > 2.75) && (Magnitude <= 4.0))
{
// CYAN->GREEN
r = 0; g = 255; b = 255 – (int)(255 * (Magnitude – 2.75) / 1.25);
}
else if ((Magnitude > 4.0) && (Magnitude <= 5.25))
{
// GREEN->YELLOW
r = (int)(255 * (Magnitude – 4.0) / 1.25); g = 255; b = 0;
}
else if ((Magnitude > 5.25) && (Magnitude <= 6.5))
{
// YELLOW->RED
r = 255; g = 255 – (int)(255 * (Magnitude – 5.25) / 1.25); b = 0;
}
else if (Magnitude > 6.5)
{
// RED
r = 255; g = 0; b = 0;
}
return Color.FromArgb(75, r, g, b);
}
}
- 모든 지진데이터 *.csv 파일을 읽어서 List<KEarthquake>를 만들어주는 KEarthquakeImporter 클래스를 만든다.
http://dis.dankook.ac.kr/lectures/hci15/?p=572 Person.csv 파일 읽기 참고
- List<KEarthquake>를 이용해서 Listview에 전체 데이터를 보여준다.
- List<KEarthquake>를 이용해서 지진 강도(Magnitude)에 따른 색깔로 GMap.NET marker (circle polygon)을 그려준다.
class GMapMarkerCircle : GMapMarker // 제작 필요
class GMapMarkerImageAndLink : GMapMarker // 제작 필요
- LINQ를 이용하여 발생기간, 규모(Magnitude) 범위에 따른 지진데이터를 검색하여 보여준다.