OSDN Git Service

all files commit
[tokyorunners/tokyorunners.git] / src / net / kazhik / android / tokyorunners / RunningRecord.java
1 package net.kazhik.android.tokyorunners;\r
2 \r
3 import java.io.FileOutputStream;\r
4 import java.io.IOException;\r
5 import java.io.OutputStreamWriter;\r
6 import java.text.SimpleDateFormat;\r
7 import java.util.ArrayList;\r
8 import java.util.Date;\r
9 import java.util.Iterator;\r
10 \r
11 import android.content.Context;\r
12 import android.location.Location;\r
13 \r
14 public class RunningRecord {\r
15         private class Record {\r
16                 Date date;\r
17                 Location location;\r
18                 Record(Date date, Location loc) {\r
19                         this.date = date;\r
20                         this.location = loc;\r
21                 }\r
22         }\r
23         ArrayList<Record> m_record = new ArrayList<Record>();\r
24 //      HashMap<Date, Location> m_record = new HashMap<Date, Location>();\r
25         private int m_distance = 0;\r
26         private Location m_prevLocation = null;\r
27         \r
28         public void addRecord(Date date, Location loc) {\r
29                 Record newRecord = new Record(date, loc);\r
30                 m_record.add(newRecord);\r
31                 \r
32                 if (m_prevLocation != null) {\r
33                         m_distance += (int)m_prevLocation.distanceTo(loc);\r
34                 }\r
35                 m_prevLocation = loc;\r
36         }\r
37         public float getDistance() {\r
38                 return (float)m_distance / 1000;\r
39         }\r
40         \r
41         public void save(OutputStreamWriter stWriter) throws IOException {\r
42                 stWriter.write(\r
43                         "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +\r
44                         "<gpx\n" +\r
45                         " version=\"1.0\"\n" +\r
46                         "creator=\"Tokyo Runners\"\n" +\r
47                         "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +\r
48                         "xmlns=\"http://www.topografix.com/GPX/1/0\"\n" +\r
49                         "xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd\">\"\n");\r
50 \r
51                 stWriter.write(\r
52                         "<trk>\n"+\r
53                         "<trkseg>\n");\r
54                 \r
55 \r
56             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");           \r
57             SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");             \r
58 \r
59                 for (Iterator<Record> it = m_record.iterator(); it.hasNext();) {\r
60                         Record rec = (Record)it.next();\r
61                         \r
62                         stWriter.write(\r
63                                 "<trkpt lat=\"" + rec.location.getLatitude()+"\" lon=\"" + rec.location.getLongitude()+"\">\n" +\r
64                                 "<time>" + dateFormat.format(rec.date.getTime()) + "T" + timeFormat.format(rec.date.getTime())+"Z</time>\n" +\r
65                                 "<speed>" + "speed" + "</speed>\n"+\r
66                                 "<name>" + "name" + "</name>\n"+\r
67                                 "<fix>none</fix>\n"+\r
68                                 "</trkpt>\n");\r
69 \r
70                 }\r
71                 \r
72                 stWriter.write(\r
73                         "</trkseg>\n"+\r
74                         "</trk>\n"+\r
75                         "</gpx>\n");\r
76                 \r
77                 stWriter.flush();\r
78                 \r
79                 \r
80         }\r
81         public void save(String filename) {\r
82                 \r
83                 \r
84         }\r
85 \r
86 }\r