54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { Component, Input, OnInit } from '@angular/core';
|
|
|
|
@Component({
|
|
selector: 'app-card-resto',
|
|
templateUrl: './card-resto.component.html',
|
|
styleUrls: ['./card-resto.component.scss']
|
|
})
|
|
export class CardRestoComponent implements OnInit {
|
|
|
|
@Input() restaurant : any ;
|
|
distance : number;
|
|
|
|
constructor() {
|
|
this.distance = 0 ;
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
|
|
console.log(this.restaurant);
|
|
|
|
this.distance = Math.round(
|
|
this.getDistanceFromLatLonInKm(
|
|
48.86201110271593 , //latitude Simplon
|
|
2.4361804827725417, //longitude Simplon
|
|
this.restaurant.latitude,
|
|
this.restaurant.longitude)
|
|
);
|
|
|
|
console.log(this.distance);
|
|
|
|
|
|
}
|
|
|
|
getDistanceFromLatLonInKm(lat1 : number , lon1 : number, lat2 : number, lon2 : number) {
|
|
let R = 6371; // Radius of the earth in km
|
|
let dLat = this.deg2rad(lat2-lat1); // deg2rad below
|
|
let dLon = this.deg2rad(lon2-lon1);
|
|
let 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)
|
|
;
|
|
let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
|
|
let d = R * c * 1000; // Distance in meters
|
|
return d;
|
|
}
|
|
|
|
deg2rad(deg : number) {
|
|
return deg * (Math.PI/180)
|
|
}
|
|
|
|
|
|
|
|
}
|