import java.util.Date;\r
import java.util.HashMap;\r
import java.util.Iterator;\r
-import java.util.Locale;\r
import java.util.Set;\r
+import java.util.TimeZone;\r
import java.util.logging.LogManager;\r
import java.util.logging.Logger;\r
\r
</wpt>\r
</gpx>\r
*/\r
+ HashMap<Long,Element> map = new HashMap<Long,Element>();\r
Element trk = null;\r
gpx = builder.parse(gpxFile).getFirstChild();\r
NodeList nodes = gpx.getChildNodes();\r
Node node2 = nodes.item(i);\r
if (node2.getNodeName().equals("trk")) {\r
trk = (Element) node2;\r
+ trkptMap(trk, map);\r
}\r
}\r
\r
if (trk != null) {\r
- HashMap<Long,Element> map = trkptMap(trk);\r
-\r
+ dfjp.setTimeZone(TimeZone.getTimeZone("JST"));\r
String timeStr = argv[2];\r
try {\r
Date t = dfjp.parse(timeStr);\r
/*\r
* GPXへ割りつける開始時刻と終了時刻を求める\r
*/\r
- long gpxStartTime = (new Date()).getTime(); // 対象とする開始時刻\r
+ long gpxStartTime = (new Date()).getTime(); // 対象とする開始時刻(現在時刻)\r
long gpxEndTime = 0L; // 対象とする終了時刻\r
Set<Long> keySet = map.keySet(); //すべてのキー値を取得\r
for (Iterator<Long> keyIte = keySet.iterator(); keyIte.hasNext();) {\r
\r
System.out.println(" 時差: "+ (delta / 1000) +"(sec)");\r
System.out.println(" Target GPX: ["+ gpxFile.getName() +"]");\r
- System.out.println("GPX start time: "+ dfjp.format(new Date(gpxStartTime).getTime()));\r
- System.out.println(" GPX end time: "+ dfjp.format(new Date(gpxEndTime).getTime()));\r
+ System.out.println("GPX start time: "+ dfjp.format(new Date(gpxStartTime)) + "\t[GMT " + dfuk.format(new Date(gpxStartTime))+"]");\r
+ System.out.println(" GPX end time: "+ dfjp.format(new Date(gpxEndTime)) + "\t[GMT " + dfuk.format(new Date(gpxEndTime))+"]");\r
System.out.println();\r
- System.out.println("------------|--------------------|--------------------|--------|-------|--------");\r
- System.out.println(" name | UpdateTime | GPStime | LAT | LON | ele");\r
- System.out.println("------------|--------------------|--------------------|--------|-------|--------");\r
+ System.out.println("------------|--------------------|--------------------|------------|----------|--------");\r
+ System.out.println(" name | UpdateTime | GPStime | LAT | LON | ele");\r
+ System.out.println("------------|--------------------|--------------------|------------|----------|--------");\r
proc(gpxDir, delta, gpxStartTime, gpxEndTime, map, gpx);\r
- System.out.println("------------|--------------------|--------------------|--------|-------|--------");\r
+ System.out.println("------------|--------------------|--------------------|------------|----------|--------");\r
}\r
catch (ParseException e) {\r
System.out.println("'"+ timeStr +"' の書式が違います("+ TIME_FORMAT_STRING +")");\r
Element trkpt = trkpt(map, uktime);\r
if (trkpt != null) {\r
System.out.print(String.format("%12s ", image.getName()));\r
- System.out.print(String.format("%19s ", dfjp.format(itime)));\r
- System.out.print(String.format("%19s ", dfjp.format(uktime)));\r
+ System.out.print(String.format("%20s ", dfjp.format(itime)));\r
+ System.out.print(String.format("%20s ", dfjp.format(uktime)));\r
\r
Element wpt = createWptTag(image, uktime.getTime(), trkpt);\r
System.out.print(String.format("%12s ", wpt.getAttribute("lat")));\r
- System.out.print(String.format("%12s "+ wpt.getAttribute("lon")));\r
+ String lonStr = wpt.getAttribute("lon");\r
+ //System.out.print(String.format("%12s "+ lonStr));\r
+ System.out.print(lonStr + " ");\r
\r
NodeList nodes = wpt.getChildNodes(); // 子ノードを取得\r
for (int i4=0; i4< nodes.getLength(); i4++) {\r
System.out.println(eleStr);\r
}\r
}\r
+ else {\r
+ System.out.println("-");\r
+ }\r
}\r
\r
Element temp = getCopy(gpx.getOwnerDocument(), wpt);\r
*/\r
public static final String TIME_FORMAT_STRING = "yyyy-MM-dd'T'HH:mm:ss";\r
public static SimpleDateFormat dfjp = new SimpleDateFormat(TIME_FORMAT_STRING);\r
- public static SimpleDateFormat dfuk = new SimpleDateFormat(TIME_FORMAT_STRING +"'Z'", Locale.UK);\r
+ public static SimpleDateFormat dfuk = new SimpleDateFormat(TIME_FORMAT_STRING +"'Z'");\r
\r
/**\r
* XMLエレメント<trkpt>をTIMEでキー付したHashMapを生成する<br>\r
* @return\r
* @throws ParseException\r
*/\r
- public static HashMap<Long,Element> trkptMap(Element trk) throws ParseException {\r
- HashMap<Long,Element> map = new HashMap<Long,Element>();\r
-\r
+ public static void trkptMap(Element trk, HashMap<Long,Element> map) throws ParseException {\r
+ dfuk.setTimeZone(TimeZone.getTimeZone("GMT"));\r
+ \r
NodeList nodes1 = trk.getChildNodes();\r
for (int i1=0; i1 < nodes1.getLength(); i1++) {\r
Node node2 = nodes1.item(i1);\r
if (node5 != null) {\r
if (node5.getNodeType() == Node.TEXT_NODE) {\r
String timeStr = node5.getNodeValue();\r
- long t = dfuk.parse(timeStr).getTime() + (9L * 3600000L);\r
+ long t = dfuk.parse(timeStr).getTime();\r
map.put(new Long(t), getCopy(trk.getOwnerDocument(), trkpt));\r
}\r
}\r
}\r
}\r
}\r
- return map;\r
}\r
\r
public static Element trkpt(HashMap<Long,Element> map, Date jptime) throws ParseException {\r
}\r
\r
if (sa < (60000L * 10L)) {\r
- System.out.println(dfuk.format(jpt) +" ("+ sa +")");\r
+ // System.out.println(dfuk.format(jpt) +" ("+ sa +")");\r
return ret;\r
}\r
return null;\r