diff --git a/bindings/java/src/org/sleuthkit/datamodel/BlackboardArtifact.java b/bindings/java/src/org/sleuthkit/datamodel/BlackboardArtifact.java
index 6838fe7a413d15bef0c4ab43c5729bc2d75187ef..e6f53518bc089d347ab56eb36939e9bc69ff550e 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/BlackboardArtifact.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/BlackboardArtifact.java
@@ -77,6 +77,7 @@ public enum ARTIFACT_TYPE implements SleuthkitVisitableItem {
 		TSK_ENCRYPTION_DETECTED(33, "TSK_ENCRYPTION_DETECTED", "Encryption Detected"), ///< Encrypted File 
 		TSK_EXT_MISMATCH_DETECTED(34, "TSK_EXT_MISMATCH_DETECTED", "Extension Mismatch Detected"), ///< Extension Mismatch
 		TSK_INTERESTING_ARTIFACT_HIT(35, "TSK_INTERESTING_ARTIFACT_HIT", "Interesting Results"),	// Any artifact that should be called out
+		TSK_GPS_ROUTE(36, "TSK_GPS_ROUTE", "GPS Route"),	// Route bases on GPS coordinates
 		; 
 		/* SEE ABOVE -- KEEP C++ CODE IN SYNC */
 		private String label;
diff --git a/bindings/java/src/org/sleuthkit/datamodel/BlackboardAttribute.java b/bindings/java/src/org/sleuthkit/datamodel/BlackboardAttribute.java
index 80ba575252deedcba87bf6ac5c75d8dc3dcc7aaa..4c38473816e730b0e79837ba4d42f7065d5221a4 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/BlackboardAttribute.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/BlackboardAttribute.java
@@ -199,7 +199,10 @@ public enum ATTRIBUTE_TYPE {
 		TSK_PERMISSIONS(95, "TSK_PERMISSIONS", "Permissions"), // Permissions
 		TSK_ASSOCIATED_ARTIFACT(96, "TSK_ASSOCIATED_ARTIFACT", "Associated Artifact"), // Artifact ID of a related artifact
 		TSK_ISDELETED(97, "TSK_ISDELETED", "Is Deleted"), // boolean to indicate that the artifact is recovered fom deleted content
-		
+		TSK_GEO_LATITUDE_START(98, "TSK_GEO_LATITUDE_START", "Starting Latitude"), // Starting location lattitude
+		TSK_GEO_LATITUDE_END(99, "TSK_GEO_LATITUDE_END", "Ending Latitude"), // Ending location lattitude
+		TSK_GEO_LONGITUDE_START(100, "TSK_GEO_LONGITUDE_START", "Starting Longitude"), // Starting location longitude
+		TSK_GEO_LONGITUDE_END(101, "TSK_GEO_LONGITUDE_END", "Ending Longitude"), //Ending Location longitude
 		
 		;
 		/* SEE ABOVE -- ALSO ADD TO C++ CODE */
diff --git a/framework/tsk/framework/services/TskBlackboard.cpp b/framework/tsk/framework/services/TskBlackboard.cpp
index 0d6dfe83186148ab053d1cc81d6f150743b9f52f..f823397710be994e8d8f3b64d243559ff558a264 100755
--- a/framework/tsk/framework/services/TskBlackboard.cpp
+++ b/framework/tsk/framework/services/TskBlackboard.cpp
@@ -47,7 +47,8 @@ map<int, TskArtifactNames> initializeArtifactTypeMap(){
     retval.insert(pair<int, TskArtifactNames>(TSK_ENCRYPTION_DETECTED, TskArtifactNames("TSK_ENCRYPTION_DETECTED", "Encryption Detected")));
     retval.insert(pair<int, TskArtifactNames>(TSK_EXT_MISMATCH_DETECTED, TskArtifactNames("TSK_EXT_MISMATCH_DETECTED", "Extension Mismatch Detected")));
     retval.insert(pair<int, TskArtifactNames>(TSK_INTERESTING_ARTIFACT_HIT, TskArtifactNames("TSK_INTERESTING_ARTIFACT_HIT", "Interesting Results")));
-	
+	retval.insert(pair<int, TskArtifactNames>(TSK_GPS_ROUTE, TskArtifactNames("TSK_GPS_ROUTE", "GPS Route")));
+    
     return retval;
 }
 
@@ -147,6 +148,10 @@ map<int, TskAttributeNames> initializeAttributeTypeMap(){
 	retval.insert(pair<int, TskAttributeNames>(TSK_PERMISSIONS, TskAttributeNames("TSK_PERMISSIONS",  "Permissions")));
 	retval.insert(pair<int, TskAttributeNames>(TSK_ASSOCIATED_ARTIFACT, TskAttributeNames("TSK_ASSOCIATED_ARTIFACT", "Associated Artifact")));
     retval.insert(pair<int, TskAttributeNames>(TSK_ISDELETED, TskAttributeNames("TSK_ISDELETED", "Is Deleted")));
+    retval.insert(pair<int, TskAttributeNames>(TSK_GEO_LATITUDE_START, TskAttributeNames("TSK_GEO_LATITUDE_START", "Starting Latitude")));
+    retval.insert(pair<int, TskAttributeNames>(TSK_GEO_LATITUDE_END, TskAttributeNames("TSK_GEO_LATITUDE_END", "Ending Latitude")));
+    retval.insert(pair<int, TskAttributeNames>(TSK_GEO_LONGITUDE_START, TskAttributeNames("TSK_GEO_LONGITUDE_START", "Starting Longitude")));
+    retval.insert(pair<int, TskAttributeNames>(TSK_GEO_LONGITUDE_END, TskAttributeNames("TSK_GEO_LONGITUDE_END", "Ending Longitude")));
 
     return retval;
 }
diff --git a/framework/tsk/framework/services/TskBlackboard.h b/framework/tsk/framework/services/TskBlackboard.h
index de967bfd3c5c77a8b9f1352fe7c02d80677396ab..bf585df9b7f881df934f65997e1b1e7669b4ec26 100755
--- a/framework/tsk/framework/services/TskBlackboard.h
+++ b/framework/tsk/framework/services/TskBlackboard.h
@@ -81,7 +81,8 @@ enum TSK_ARTIFACT_TYPE {
     TSK_ENCRYPTION_DETECTED = 33, ///< Encrypted File
     TSK_EXT_MISMATCH_DETECTED = 34, ///< Extension Mismatch
     TSK_INTERESTING_ARTIFACT_HIT = 35,	///< Any artifact interesting enough that it should be called out in the UI.
-		
+	TSK_GPS_ROUTE = 36,	///< Route based on GPS coordinates
+    
     /* SEE ABOVE:
     * - KEEP JAVA CODE IN SYNC 
     * - UPDATE map in TskBlackboard.cpp
@@ -196,7 +197,10 @@ enum TSK_ATTRIBUTE_TYPE {
 	TSK_PERMISSIONS = 95, ///< Permissions
 	TSK_ASSOCIATED_ARTIFACT = 96, ///< Artifact ID of a related artifact
     TSK_ISDELETED = 97, ///< the artifact is recovered from deleted content
-
+    TSK_GEO_LATITUDE_START= 98, ///< Starting location lattitude
+    TSK_GEO_LATITUDE_END= 99, ///< Ending location lattitude
+    TSK_GEO_LONGITUDE_START= 100, ///< Starting location longitude
+    TSK_GEO_LONGITUDE_END = 101, ///< Ending Location longitude
     /* SEE ABOVE: 
     * - KEEP JAVA CODE IN SYNC 
     * - UPDATE map in TskBlackBoard.cpp too */