diff --git a/src/app/detail/detail.component.html b/src/app/detail/detail.component.html
index fd9463a..167e691 100644
--- a/src/app/detail/detail.component.html
+++ b/src/app/detail/detail.component.html
@@ -1 +1,9 @@
-
detail works!
+
+
{{test.name}}
+
{{test.description}}
+
lat:{{cord.lat}}, lang:{{cord.lng}}
+
distanza:{{distance}}
+
+
+
+
diff --git a/src/app/detail/detail.component.ts b/src/app/detail/detail.component.ts
index de09a39..6c582ac 100755
--- a/src/app/detail/detail.component.ts
+++ b/src/app/detail/detail.component.ts
@@ -1,4 +1,5 @@
import { Component, OnInit } from '@angular/core';
+import {interval} from "rxjs";
@Component({
selector: 'app-detail',
@@ -8,6 +9,70 @@ import { Component, OnInit } from '@angular/core';
export class DetailComponent implements OnInit{
ngOnInit(): void {
+ this.getLocation();
+ }
+ test = {
+ name: 'SPAI',
+ cordinates: "46.165262,8.791225",
+ description: "Lorem ipsum"
+ }
+
+ cord = {
+ lat: 0,
+ lng: 0
+ }
+
+ showNav = true;
+ distance = 0;
+ getLocation() {
+ console.log("get location");
+ if (navigator.geolocation) {
+ navigator.geolocation.getCurrentPosition((position) => {
+ this.cord.lat = position.coords.latitude;
+ this.cord.lng = position.coords.longitude;
+ console.log(this.cord);
+ this.checkDistanceTimer();
+ })
+ }else {
+ alert("Geolocation is not supported by this browser.");
+ }
}
+ checkDistanceTimer() {
+ //set interval
+ let lat1 = this.cord.lat;
+ let lon1 = this.cord.lng;
+ let lat2 = this.test.cordinates.split(",")[0];
+ let lon2 = this.test.cordinates.split(",")[1];
+ let intervalID = setInterval(() => {
+ if(this.showNav){
+ this.distance = this.getDistanceBetweenCoordinates(lat1, lon1, +lat2, +lon2);
+ console.log(this.distance);
+ if(this.distance < 0.05){
+ this.showNav = false;
+ clearInterval(intervalID);
+ }
+ }else{
+ clearInterval(intervalID);
+ }
+ } , 1000);
+ }
+
+ getDistanceBetweenCoordinates(lat1: number, lon1: number, lat2: number, lon2: number) {
+ const earthRadius = 6371; // Radius of the earth in km
+ const dLat = this.deg2rad(lat2 - lat1); // deg2rad below
+ 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; // Distance in km
+ return distance;
+ }
+
+ deg2rad(deg: number) {
+ return deg * (Math.PI/180)
+ }
}