Commit | Line | Data |
---|---|---|
e16e3b15 JB |
1 | import javax.swing.*; |
2 | ||
3ae9566e JB |
3 | public class Country { |
4 | private String name; | |
3ae9566e | 5 | private String region; |
f56708fa SP |
6 | private double lat; |
7 | private double lng; | |
e16e3b15 | 8 | private ImageIcon flag; |
3ae9566e | 9 | |
f56708fa SP |
10 | public Country(String name, String region, double lat, double lng) { |
11 | setName(name); | |
12 | setRegion(region); | |
13 | setLat(lat); | |
14 | setLng(lng); | |
3ae9566e JB |
15 | } |
16 | ||
3ae9566e JB |
17 | public void setName(String name) { |
18 | this.name = name; | |
19 | } | |
20 | ||
822afd4f SP |
21 | public String getName() { |
22 | return name; | |
23 | } | |
24 | ||
3ae9566e JB |
25 | public void setRegion(String region) { |
26 | this.region = region; | |
27 | } | |
28 | ||
f56708fa SP |
29 | public void setLat(double lat) { |
30 | this.lat = lat; | |
3ae9566e JB |
31 | } |
32 | ||
f56708fa SP |
33 | public void setLng(double lng) { |
34 | this.lng = lng; | |
3ae9566e JB |
35 | } |
36 | ||
e16e3b15 JB |
37 | public int distanceTo(Country country) { |
38 | if ((this.lat == country.lat) && (this.lng == country.lng)) { | |
39 | return 0; | |
40 | } else { | |
41 | double theta = this.lng - country.lng; | |
42 | Double dist = Math.sin(Math.toRadians(this.lat)) * Math.sin(Math.toRadians(country.lat)) + Math.cos(Math.toRadians(this.lat)) * Math.cos(Math.toRadians(country.lat)) * Math.cos(Math.toRadians(theta)); | |
43 | dist = Math.acos(dist); | |
44 | dist = Math.toDegrees(dist); | |
45 | dist = dist * 60 * 1.1515; | |
46 | // Kilometers | |
47 | dist = dist * 1.609344; | |
48 | return dist.intValue(); | |
49 | } | |
50 | } | |
51 | ||
f56708fa SP |
52 | @Override |
53 | public String toString() { | |
54 | return "Country{" + | |
55 | "name='" + name + '\'' + | |
56 | ", region='" + region + '\'' + | |
57 | ", lat=" + lat + | |
58 | ", lng=" + lng + | |
59 | '}'; | |
3ae9566e JB |
60 | } |
61 | } |