19package org.sleuthkit.autopsy.geolocation.datamodel;
22import org.sleuthkit.datamodel.AbstractFile;
23import org.sleuthkit.datamodel.BlackboardArtifact;
24import org.sleuthkit.datamodel.BlackboardAttribute;
25import org.sleuthkit.datamodel.TskCoreException;
30final class EXIFWaypoint
extends Waypoint {
39 EXIFWaypoint(BlackboardArtifact
artifact)
throws GeoLocationDataException {
52 private EXIFWaypoint(BlackboardArtifact
artifact, Map<BlackboardAttribute.ATTRIBUTE_TYPE, BlackboardAttribute> attributeMap, AbstractFile
image)
throws GeoLocationDataException {
55 attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED) !=
null ? attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED).getValueLong() :
null,
56 attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE) !=
null ? attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE).getValueDouble() :
null,
57 attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE) !=
null ? attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE).getValueDouble() :
null,
58 attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE) !=
null ? attributeMap.get(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE).getValueDouble() :
null,
59 image, attributeMap,
null);
72 private static AbstractFile getImageFromArtifact(BlackboardArtifact
artifact)
throws GeoLocationDataException {
73 AbstractFile abstractFile =
null;
74 BlackboardArtifact.ARTIFACT_TYPE artifactType = BlackboardArtifact.ARTIFACT_TYPE.fromID(
artifact.getArtifactTypeID());
75 if (artifactType == BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA_EXIF) {
77 abstractFile =
artifact.getSleuthkitCase().getAbstractFileById(
artifact.getObjectID());
78 }
catch (TskCoreException ex) {
79 throw new GeoLocationDataException(String.format(
"Unable to getAbstractFileByID for artifactID: %d",
artifact.getArtifactID()), ex);
final BlackboardArtifact artifact