diff --git a/src/app/detail/detail.component.html b/src/app/detail/detail.component.html index 2b677fa..2ae121d 100644 --- a/src/app/detail/detail.component.html +++ b/src/app/detail/detail.component.html @@ -12,7 +12,7 @@ allowfullscreen> - + diff --git a/src/app/detail/detail.component.ts b/src/app/detail/detail.component.ts index 524716a..2783901 100755 --- a/src/app/detail/detail.component.ts +++ b/src/app/detail/detail.component.ts @@ -38,6 +38,7 @@ export class DetailComponent implements OnInit { console.log(this.id); console.log(this.embed); this.cord = await this.positionService.getLocation(); + console.log(this.cord); this.checkDistanceTimer(); } diff --git a/src/app/service/position.service.ts b/src/app/service/position.service.ts index 4b974bd..875fdc2 100644 --- a/src/app/service/position.service.ts +++ b/src/app/service/position.service.ts @@ -7,7 +7,7 @@ import{Cord} from "../interface/cord"; export class positionService{ cord: Cord = { lat: 0, lon: 0 }; - getDistanceBetweenCoordinates(lat1: number | undefined, lon1: number | undefined, lat2: number, lon2: number) { + /*getDistanceBetweenCoordinates(lat1: number | undefined, lon1: number | undefined, lat2: number, lon2: number) { if (lat1 === undefined || lon1 === undefined) { console.log('lat1 or lon1 is undefined') return 0; @@ -24,8 +24,21 @@ export class positionService{ // Distance in km return earthRadius * c; } + }*/ + + getDistanceBetweenCoordinates(lat1: number, lon1: number, lat2: number, lon2: number) { + const earthRadius = 6371; // Raggio della Terra in km + const dLat = this.deg2rad(lat2 - lat1); + const dLon = this.deg2rad(lon2 - lon1); + const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * + Math.sin(dLon / 2) * Math.sin(dLon / 2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + const distance = earthRadius * c; // Distanza in km + return distance; } + deg2rad(deg: number) { return deg * (Math.PI / 180) }