mirror of
https://github.com/xuthus83/pigallery2.git
synced 2025-01-14 14:43:17 +08:00
Merge pull request #859 from martyone/xmp-gps
Read GPS coordinates from XMP sidecar too
This commit is contained in:
commit
e3a0f5967c
@ -666,6 +666,22 @@ export class MetadataLoader {
|
|||||||
metadata.creationDate;
|
metadata.creationDate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ((sidecarData as SideCar).exif !== undefined) {
|
||||||
|
if (
|
||||||
|
(sidecarData as SideCar).exif.GPSLatitude !== undefined &&
|
||||||
|
(sidecarData as SideCar).exif.GPSLongitude !== undefined
|
||||||
|
) {
|
||||||
|
metadata.positionData = metadata.positionData || {};
|
||||||
|
metadata.positionData.GPSData = {};
|
||||||
|
|
||||||
|
metadata.positionData.GPSData.longitude = Utils.xmpExifGpsCoordinateToDecimalDegrees(
|
||||||
|
(sidecarData as SideCar).exif.GPSLongitude
|
||||||
|
);
|
||||||
|
metadata.positionData.GPSData.latitude = Utils.xmpExifGpsCoordinateToDecimalDegrees(
|
||||||
|
(sidecarData as SideCar).exif.GPSLatitude
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -381,6 +381,14 @@ export class Utils {
|
|||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static xmpExifGpsCoordinateToDecimalDegrees(text: string): number {
|
||||||
|
const parts = text.match(/^([0-9]+),([0-9.]+)([EWNS])$/);
|
||||||
|
const degrees: number = parseInt(parts[1], 10);
|
||||||
|
const minutes: number = parseFloat(parts[2]);
|
||||||
|
const sign = (parts[3] === "N" || parts[3] === "E") ? 1 : -1;
|
||||||
|
return sign * (degrees + (minutes / 60.0))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class LRU<V> {
|
export class LRU<V> {
|
||||||
|
@ -30,11 +30,17 @@ export interface MediaDimension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface SideCar {
|
export interface SideCar {
|
||||||
|
exif?: SideCarExif;
|
||||||
dc?: SideCarDc;
|
dc?: SideCarDc;
|
||||||
xmp?: SideCarXmp;
|
xmp?: SideCarXmp;
|
||||||
photoshop?: SideCarPhotoshop;
|
photoshop?: SideCarPhotoshop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface SideCarExif {
|
||||||
|
GPSLatitude?: string;
|
||||||
|
GPSLongitude?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface SideCarDc {
|
export interface SideCarDc {
|
||||||
subject?: string[];
|
subject?: string[];
|
||||||
}
|
}
|
||||||
|
@ -18,5 +18,11 @@
|
|||||||
"Výlet",
|
"Výlet",
|
||||||
"Travel"
|
"Travel"
|
||||||
],
|
],
|
||||||
|
"positionData": {
|
||||||
|
"GPSData": {
|
||||||
|
"latitude": 50.08958748333333,
|
||||||
|
"longitude": 14.397409516666666
|
||||||
|
}
|
||||||
|
},
|
||||||
"rating": 3
|
"rating": 3
|
||||||
}
|
}
|
||||||
|
@ -19,5 +19,11 @@
|
|||||||
"Výlet",
|
"Výlet",
|
||||||
"Travel"
|
"Travel"
|
||||||
],
|
],
|
||||||
|
"positionData": {
|
||||||
|
"GPSData": {
|
||||||
|
"latitude": 50.08958748333333,
|
||||||
|
"longitude": 14.397409516666666
|
||||||
|
}
|
||||||
|
},
|
||||||
"rating": 3
|
"rating": 3
|
||||||
}
|
}
|
||||||
|
@ -19,5 +19,11 @@
|
|||||||
"Výlet",
|
"Výlet",
|
||||||
"Travel"
|
"Travel"
|
||||||
],
|
],
|
||||||
|
"positionData": {
|
||||||
|
"GPSData": {
|
||||||
|
"latitude": 50.08958748333333,
|
||||||
|
"longitude": 14.397409516666666
|
||||||
|
}
|
||||||
|
},
|
||||||
"rating": 3
|
"rating": 3
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user