From: yuuhayashi Date: Tue, 29 Dec 2015 13:51:42 +0000 (+0900) Subject: GPX: セグメントの最初の1ノードは無視する。 X-Git-Tag: release_2016-10-30~21 X-Git-Url: http://git.osdn.net/view?p=importpicture%2Fimportpicture.git;a=commitdiff_plain;h=cc7a7f344d09d63fc48f9e0470c5a6ded4676d72 GPX: セグメントの最初の1ノードは無視する。 --- diff --git a/importPicture/src/osm/jp/gpx/AppParameters.java b/importPicture/src/osm/jp/gpx/AppParameters.java index 951614d..0bb11f2 100644 --- a/importPicture/src/osm/jp/gpx/AppParameters.java +++ b/importPicture/src/osm/jp/gpx/AppParameters.java @@ -11,11 +11,14 @@ import java.util.Properties; public class AppParameters extends Properties { static final String FILE_PATH = "AdjustTime.ini"; - // GPX出力: 時間的に間隔が開いたGPXログを別の<>セグメントに分割する。 {ON | OFF} + // GPX: 時間的に間隔が開いたGPXログを別のセグメントに分割する。 {ON | OFF} public static String GPX_GPXSPLIT = "GPX.gpxSplit"; - // EXIF出力: 画像ファイルのEXIF情報を変更する {ON | OFF} - public static String EXIF_GPXSPLIT = "EXIF.noEXIF"; + // GPX: セグメントの最初の1ノードは無視する。 {ON | OFF} + public static String GPX_NO_FIRST_NODE = "GPX.noFirstNode"; + + // GPX: 基準時刻 {FILE_UPDATE | EXIF} + public static String GPX_BASETIME = "GPX.BASETIME"; public AppParameters() throws FileNotFoundException, IOException { super(); @@ -40,7 +43,7 @@ public class AppParameters extends Properties { } //------------------------------------------------ - // GPX出力: 時間的に間隔が開いたGPXログを別の<>セグメントに分割する。 {ON | OFF} + // GPX出力: 時間的に間隔が開いたGPXログを別のセグメントに分割する。 {ON | OFF} String valueStr = this.getProperty(GPX_GPXSPLIT); if (valueStr == null) { update = true; @@ -48,11 +51,19 @@ public class AppParameters extends Properties { } //------------------------------------------------ - // EXIF出力: 画像ファイルのEXIF情報を変更する {ON | OFF} - valueStr = this.getProperty(EXIF_GPXSPLIT); + // GPX出力: セグメントの最初の1ノードは無視する。 {ON | OFF} + valueStr = this.getProperty(GPX_NO_FIRST_NODE); + if (valueStr == null) { + update = true; + this.setProperty(GPX_NO_FIRST_NODE, "ON"); + } + + //------------------------------------------------ + // GPX: 基準時刻 {FILE_UPDATE | EXIF} + valueStr = this.getProperty(GPX_BASETIME); if (valueStr == null) { update = true; - this.setProperty(EXIF_GPXSPLIT, "ON"); + this.setProperty(GPX_BASETIME, "FILE_UPDATE"); } if (update) { diff --git a/importPicture/src/osm/jp/gpx/ImportPicture.java b/importPicture/src/osm/jp/gpx/ImportPicture.java index c0dc6b1..27b795e 100644 --- a/importPicture/src/osm/jp/gpx/ImportPicture.java +++ b/importPicture/src/osm/jp/gpx/ImportPicture.java @@ -188,9 +188,24 @@ public class ImportPicture extends Thread { public boolean exif = false; public ArrayList gpxFiles = new ArrayList<>(); public AppParameters params; - + public boolean param_GpxSplit = false; + public boolean param_GpxNoFirstNode = false; + @Override public void run() { + String paramStr = params.getProperty(AppParameters.GPX_GPXSPLIT); + if ((paramStr != null) && (paramStr.toUpperCase().equals(AppParameters.GPX_GPXSPLIT))) { + param_GpxSplit = true; + } + + paramStr = params.getProperty(AppParameters.GPX_NO_FIRST_NODE); + if ((paramStr != null) && (paramStr.toUpperCase().equals(AppParameters.GPX_NO_FIRST_NODE))) { + param_GpxNoFirstNode = true; + } + + System.out.println(" - param: "+ AppParameters.GPX_GPXSPLIT +"="+ param_GpxSplit); + System.out.println(" - param: "+ AppParameters.GPX_NO_FIRST_NODE +"="+ param_GpxNoFirstNode); + System.out.println(" - param: "+ AppParameters.GPX_BASETIME +"="+ params.getProperty(AppParameters.GPX_BASETIME) ); /** * @@ -232,22 +247,21 @@ public class ImportPicture extends Thread { document = domImpl.createDocument("", "gpx", null); /* - - - - - - - 47.20000076293945 - - 0.5 - - - - - - - */ + * + * + * + * + * + * + * 47.20000076293945 + * + * 0.5 + * + * + * + * + * + */ TreeMap map = new TreeMap<>(); Element trk = null; gpx = builder.parse(gpxFile).getFirstChild(); @@ -277,7 +291,7 @@ public class ImportPicture extends Thread { gpxEndTime = gpxTime; } } - + System.out.println(" 時差: "+ (delta / 1000) +"(sec)"); System.out.println(" Target GPX: ["+ gpxFile.getAbsolutePath() +"]"); System.out.println("GPX start time: "+ dfjp.format(new Date(gpxStartTime)) + "\t[GMT " + dfuk.format(new Date(gpxStartTime))+"]"); @@ -289,8 +303,6 @@ public class ImportPicture extends Thread { System.out.println("------------|--------------------|--------------------|------------|------------|--------|------|"); change = proc(imgDir, delta, gpxStartTime, gpxEndTime, map, exif, gpx); System.out.println("------------|--------------------|--------------------|------------|------------|--------|------|"); - System.out.println(" param: "+ AppParameters.EXIF_GPXSPLIT +"="+ params.getProperty(AppParameters.EXIF_GPXSPLIT) ); - System.out.println(" param: "+ AppParameters.GPX_GPXSPLIT +"="+ params.getProperty(AppParameters.GPX_GPXSPLIT) ); } // 出力 @@ -524,7 +536,7 @@ public class ImportPicture extends Thread { * @param map * @throws ParseException */ - public static void trkptMap(Element trk, TreeMap map) throws ParseException { + public void trkptMap(Element trk, TreeMap map) throws ParseException { dfuk.setTimeZone(TimeZone.getTimeZone("GMT")); NodeList nodes1 = trk.getChildNodes(); @@ -540,6 +552,9 @@ public class ImportPicture extends Thread { NodeList nodes3 = trkpt.getChildNodes(); for (int i3=0; i3 < nodes3.getLength(); i3++) { + if (param_GpxNoFirstNode && (i3 == 0)) { + continue; + } Node node4 = nodes3.item(i3); if (node4.getNodeName().equals("time")) { Element time = (Element) node4; @@ -569,7 +584,7 @@ public class ImportPicture extends Thread { * </trkpt> * @return * @param map - * @param jptime + * @param jptime 画像ファイルの撮影日時 ミリ秒(日本時間) * @throws ParseException */ public static Element trkpt(TreeMap map, Date jptime) throws ParseException { @@ -681,7 +696,7 @@ public class ImportPicture extends Thread { } if (sa < (60000L * 10L)) { - // System.out.println(dfuk.format(jpt) +" ("+ sa +")"); + // GPX時刻との差が10分以内なら有効 return ret; } return null; diff --git a/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java b/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java index a40f8a8..8ea7ccd 100644 --- a/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java +++ b/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java @@ -20,8 +20,6 @@ import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; import org.apache.commons.imaging.formats.tiff.write.TiffOutputField; import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet; - - /** * 本プログラムのメインクラス */ diff --git a/importPicture/src/osm/jp/gpx/matchtime/gui/QuitDialog.java b/importPicture/src/osm/jp/gpx/matchtime/gui/QuitDialog.java index bbe4df3..26eb088 100644 --- a/importPicture/src/osm/jp/gpx/matchtime/gui/QuitDialog.java +++ b/importPicture/src/osm/jp/gpx/matchtime/gui/QuitDialog.java @@ -12,6 +12,7 @@ import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; +@SuppressWarnings("serial") public class QuitDialog extends JDialog implements WindowListener { public static final String TITLE = "終了?";