diff --git a/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts b/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts index 73e67b97..5a98dcf5 100644 --- a/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts +++ b/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts @@ -154,27 +154,12 @@ export class GalleryMapLightboxComponent implements OnChanges, AfterViewInit { } - private calcDistance(loc: MapPath, loc2: MapPath): number { - const radlat1 = Math.PI * loc.latitude / 180; - const radlat2 = Math.PI * loc2.latitude / 180; - const theta = loc.longitude - loc2.longitude; - const radtheta = Math.PI * theta / 180; - let dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta); - if (dist > 1) { - dist = 1; - } - dist = Math.acos(dist); - dist = dist * 180 / Math.PI; - dist = dist * 60 * 1.1515; - return dist * 1.609344; - } - private gpxFilter(list: MapPath[]) { let last = list[0]; const out = []; for (let i = 1; i < list.length; i++) { - if (this.calcDistance(list[i], last) > 0.5) { + if (this.mapService.calcDistance(list[i], last) > 0.5) { out.push(list[i]); last = list[i]; } diff --git a/frontend/app/gallery/map/map.service.ts b/frontend/app/gallery/map/map.service.ts index 8ba6f4a4..fada51dc 100644 --- a/frontend/app/gallery/map/map.service.ts +++ b/frontend/app/gallery/map/map.service.ts @@ -11,6 +11,21 @@ export class MapService { } + public calcDistance(loc: MapPath, loc2: MapPath): number { + const radlat1 = Math.PI * loc.latitude / 180; + const radlat2 = Math.PI * loc2.latitude / 180; + const theta = loc.longitude - loc2.longitude; + const radtheta = Math.PI * theta / 180; + let dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta); + if (dist > 1) { + dist = 1; + } + dist = Math.acos(dist); + dist = dist * 180 / Math.PI; + dist = dist * 60 * 1.1515; + return dist * 1.609344; + } + public async getMapPath(file: FileDTO): Promise { const filePath = Utils.concatUrls(file.directory.path, file.directory.name, file.name); const gpx = await this.networkService.getXML('/gallery/content/' + filePath);