|
@@ -6,14 +6,21 @@ function ExifGps(lat, latRef, lon, lonRef) {
|
|
|
this.lat = null;
|
|
this.lat = null;
|
|
|
this.lon = null;
|
|
this.lon = null;
|
|
|
|
|
|
|
|
|
|
+ let latSign = 1;
|
|
|
|
|
+ let lonSign = 1;
|
|
|
|
|
+
|
|
|
if (!lat || !lon)
|
|
if (!lat || !lon)
|
|
|
return;
|
|
return;
|
|
|
- if (latRef && latRef !== 'N' && lat >= 0)
|
|
|
|
|
- lat[0] *= -1;
|
|
|
|
|
- if (lonRef && lonRef !== 'E' && lon[0] >= 0)
|
|
|
|
|
- lon[0] *= -1;
|
|
|
|
|
- this.lat = lat[0] + lat[1] / 60 + lat[2]/3600;
|
|
|
|
|
- this.lon = lon[0] + lon[1] / 60 + lon[2]/3600;
|
|
|
|
|
|
|
+ if ((latRef && latRef !== 'N') || lat < 0) {
|
|
|
|
|
+ lat[0] = Math.abs(lat[0]);
|
|
|
|
|
+ latSign = -1;
|
|
|
|
|
+ }
|
|
|
|
|
+ if ((lonRef && lonRef !== 'E') || lon[0] < 0) {
|
|
|
|
|
+ lon[0] = Math.abs(lon[0]);
|
|
|
|
|
+ lonSign = -1;
|
|
|
|
|
+ }
|
|
|
|
|
+ this.lat = (lat[0] + lat[1] / 60 + lat[2]/3600) * latSign;
|
|
|
|
|
+ this.lon = (lon[0] + lon[1] / 60 + lon[2]/3600) * lonSign;
|
|
|
if (!this.lat || isNaN(this.lat) || !this.lon || isNaN(this.lon))
|
|
if (!this.lat || isNaN(this.lat) || !this.lon || isNaN(this.lon))
|
|
|
this.lat = this.lon = null;
|
|
this.lat = this.lon = null;
|
|
|
}
|
|
}
|