* ・画像ファイルの更新日付リストをCSV形式のファイルとして出力する。\r
* ・・結果は、取り込み元のGPXファイルとは別に、元ファイル名にアンダーバー「_」を付加した.ファイルに出力します。\r
*\r
- * argv[0] = 画像リストの出力ファイル\r
- * argv[1] = 画像ファイルが格納されているディレクトリ\r
- * argv[2] = 時刻補正の基準とする画像ファイル\r
- * argv[3] = 基準画像ファイルの精確な撮影日時 "yyyy-mm-dd'T'HH:MM:ss"\r
- * argv[4] = 撮影位置をロギングしたGPXファイル\r
+ * argv[-] = dummy\r
+ * argv[0] = 画像ファイルが格納されているディレクトリ\r
+ * argv[1] = 時刻補正の基準とする画像ファイル\r
+ * argv[2] = 基準画像ファイルの精確な撮影日時 "yyyy-mm-dd'T'HH:MM:ss"\r
+ * argv[3] = 撮影位置をロギングしたGPXファイル\r
* \r
* @throws IOException\r
*/\r
{\r
Date jptime;\r
\r
- \r
- File csvfile = new File("ImportPicture.csv");\r
if (argv.length > 0) {\r
- csvfile = new File(argv[0]);\r
- }\r
-\r
- if (argv.length > 1) {\r
- gpxDir = new File(argv[1]);\r
+ gpxDir = new File(argv[0]);\r
}\r
\r
- if (argv.length < 4) {\r
- System.out.println("> java -jar importPicture.jar <outputfile> <targetDir> <time base image> <time> (gpx)");\r
- System.out.println("> java -jar importPicture.jar list.csv . IMG_01234.JPG 2012-06-15T12:52:22");\r
+ if (argv.length < 3) {\r
+ System.out.println("> java -jar importPicture.jar <targetDir> <time base image> <time> (gpx)");\r
+ System.out.println("> java -jar importPicture.jar . IMG_01234.JPG 2012-06-15T12:52:22");\r
}\r
\r
// 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。\r
- File baseFile = new File(gpxDir, argv[2]);\r
+ File baseFile = new File(gpxDir, argv[1]);\r
jptime = new Date(baseFile.lastModified());\r
\r
// 第5引数が指定されなければ、指定されたディレクトリ内のGPXファイルすべてを対象とする\r
ArrayList<File> gpxFiles = new ArrayList<File>();\r
- if (argv.length > 4) {\r
- gpxFiles.add(new File(gpxDir, argv[4]));\r
+ if (argv.length > 3) {\r
+ gpxFiles.add(new File(gpxDir, argv[3]));\r
}\r
else {\r
File[] files = gpxDir.listFiles();\r
if (trk != null) {\r
HashMap<Long,Element> map = trkptMap(trk);\r
\r
- PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(csvfile)));\r
- String timeStr = argv[3];\r
+ String timeStr = argv[2];\r
try {\r
Date t = dfjp.parse(timeStr);\r
long delta = t.getTime() - jptime.getTime();\r
}\r
}\r
\r
- System.out.println("時差: "+ (delta / 1000) +"(sec)");\r
- pw.println(" 時差: "+ (delta / 1000) +"(sec)");\r
- pw.println(" Target GPX: ["+ gpxFile.getName() +"]");\r
- pw.println("GPX start time: "+ dfjp.format(new Date(gpxStartTime).getTime()));\r
- pw.println(" GPX end time: "+ dfjp.format(new Date(gpxEndTime).getTime()));\r
-\r
- pw.println("\"name\",\"orignal\",\"gpstime\"");\r
- proc(gpxDir, delta, gpxStartTime, gpxEndTime, map, pw, gpx);\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
+\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
}\r
catch (ParseException e) {\r
System.out.println("'"+ timeStr +"' の書式が違います(yyyy-MM-dd'T'HH:mm:ss)");\r
}\r
- finally {\r
- pw.close();\r
- }\r
}\r
\r
// 出力\r
* 再帰メソッド\r
* @throws ParseException \r
*/\r
- static void proc(File dir, long delta, long gpxStartTime, long gpxEndTime, HashMap<Long,Element> map, PrintWriter pw, Node gpx) throws ParseException {\r
+ static void proc(File dir, long delta, long gpxStartTime, long gpxEndTime, HashMap<Long,Element> map, Node gpx) throws ParseException {\r
File[] files = dir.listFiles();\r
Arrays.sort(files, new FileSort());\r
for (File image : files) {\r
if (image.isDirectory()) {\r
- proc(image, delta, gpxStartTime, gpxEndTime, map, pw, gpx);\r
+ proc(image, delta, gpxStartTime, gpxEndTime, map, gpx);\r
}\r
else {\r
String imageName = image.getName();\r
if ((uktime.getTime() >= gpxStartTime) && (uktime.getTime() <= gpxEndTime)) {\r
Element trkpt = trkpt(map, uktime);\r
if (trkpt != null) {\r
- pw.print("\""+ image.getName() +"\",");\r
- pw.print("\""+ dfjp.format(itime) +"\",");\r
- pw.println("\""+ dfjp.format(uktime) +"\"");\r
+ System.out.print("\""+ image.getName() +"\"\t");\r
+ System.out.print("\""+ dfjp.format(itime) +"\"\t");\r
+ System.out.println("\""+ dfjp.format(uktime) +"\"\t");\r
\r
Element wpt = createWptTag(image, uktime.getTime(), trkpt);\r
+ System.out.println("\""+ wpt.getAttribute("lat") +"\"\t");\r
+ System.out.println("\""+ wpt.getAttribute("lon") +"\"\t");\r
+ \r
+ NodeList nodes = wpt.getChildNodes(); // 子ノードを取得\r
+ for (int i4=0; i4< nodes.getLength(); i4++) {\r
+ Node node = nodes.item(i4);\r
+ if (node != null) {\r
+ if (node.getNodeType() == Node.TEXT_NODE) {\r
+ String eleStr = node.getNodeValue();\r
+ System.out.println("\""+ eleStr +"\"");\r
+ }\r
+ }\r
+ }\r
+\r
Element temp = getCopy(gpx.getOwnerDocument(), wpt);\r
gpx.appendChild(temp);\r
}\r