From 423207d48b006c34c3db42ce279c98f2dc265eb3 Mon Sep 17 00:00:00 2001 From: tito Date: Sun, 30 Apr 2023 14:51:28 +0200 Subject: [PATCH] miglioramento localizzazione e finito lo style --- src/app/detail/detail.component.css | 8 ----- src/app/detail/detail.component.html | 47 ++++++++------------------- src/app/detail/detail.component.ts | 36 ++++++++++---------- src/app/service/position.service.ts | 16 +++++++-- src/assets/testDetail/igm.png | Bin 0 -> 16402 bytes 5 files changed, 45 insertions(+), 62 deletions(-) create mode 100644 src/assets/testDetail/igm.png diff --git a/src/app/detail/detail.component.css b/src/app/detail/detail.component.css index 34d4d22..8b13789 100644 --- a/src/app/detail/detail.component.css +++ b/src/app/detail/detail.component.css @@ -1,9 +1 @@ -.titolo { - font-size: 1.5em; - font-weight: bold; - margin-bottom: 0.5em; -} -button { - margin: 1em; -} diff --git a/src/app/detail/detail.component.html b/src/app/detail/detail.component.html index 2be4652..8e66e4d 100644 --- a/src/app/detail/detail.component.html +++ b/src/app/detail/detail.component.html @@ -1,38 +1,18 @@ -
-
-
-
+
+
+

{{ test.name }}

- + - + {{ test.description }}

- - diff --git a/src/app/detail/detail.component.ts b/src/app/detail/detail.component.ts index cd7f203..b26b9ee 100755 --- a/src/app/detail/detail.component.ts +++ b/src/app/detail/detail.component.ts @@ -17,13 +17,13 @@ export class DetailComponent implements OnInit { test = { name: 'SPAI', - cordinates: '50.16980727184211, 10.795563727809393', - lat: 46.16243997917877, - lng: 8.787662959380318, + cordinates: '46.2295425892837, 8.74425883677592', + lat: 46.2295425892837, + lng: 8.74425883677592, description: "Lorem ipsum" } - embed = `https://www.google.com/maps/embed/v1/place?key=AIzaSyBJL4FWmG032BG6KXxTb4faxpO_ccyaP3o&q=${this.test.lat},${this.test.lng}` + embed: any; cord: any; @@ -47,23 +47,25 @@ export class DetailComponent implements OnInit { this.checkDistanceTimer(); } - checkDistanceTimer() { + async checkDistanceTimer() { //set interval let intervalID = setInterval(() => { + this.cord = this.positionService.getLocationWithoutPromise(); + this.embed = `https://www.google.com/maps/embed/v1/directions?key=AIzaSyBJL4FWmG032BG6KXxTb4faxpO_ccyaP3o&origin=${this.cord.lat},${this.cord.lon}&destination=${this.test.lat},${this.test.lng}`; if (this.showNav) { - this.distance = this.positionService.getDistanceBetweenCoordinates(this.cord.lat, this.cord.lon, this.test.lat, this.test.lng); - console.log(this.distance); - if (this.distance == 0) { - this.showNav = false; - this.displayedDistance = Math.round(this.distance * 100) / 100; - } - if (this.distance < 0.05) { - this.showNav = false; - this.generateQR() - // implement this nex line in angular ts - this.myModal.nativeElement.checked = true; - clearInterval(intervalID); + this.myModal.nativeElement.checked = false; + if (this.cord?.lat && this.cord?.lon) { + this.distance = this.positionService.getDistanceBetweenCoordinates(this.cord?.lat, this.cord?.lon, this.test.lat, this.test.lng); + if (this.distance < 0.05) { + //this.showNav = false; + this.generateQR() + // implement this nex line in angular ts + this.myModal.nativeElement.checked = true; + } + } else { + this.distance = undefined; } + } else { clearInterval(intervalID); } diff --git a/src/app/service/position.service.ts b/src/app/service/position.service.ts index f6597b6..55caa37 100644 --- a/src/app/service/position.service.ts +++ b/src/app/service/position.service.ts @@ -4,8 +4,8 @@ import {Cord} from "../interface/cord"; @Injectable({ providedIn: 'root' }) -export class positionService{ - cord: Cord = { lat: 0, lon: 0 }; +export class positionService { + cord: Cord = {lat: 0, lon: 0}; getDistanceBetweenCoordinates(lat1: number | undefined, lon1: number | undefined, lat2: number, lon2: number): number { if (lat1 === undefined || lon1 === undefined) { @@ -37,7 +37,7 @@ export class positionService{ navigator.geolocation.getCurrentPosition((position) => { const lat = position.coords.latitude; const lon = position.coords.longitude; - this.cord = { lat, lon }; + this.cord = {lat, lon}; console.log("cordinate: ", this.cord); resolve(this.cord); }, (error) => { @@ -48,4 +48,14 @@ export class positionService{ } }); } + + lastCord: Cord = {lat: 0, lon: 0}; + + getLocationWithoutPromise(): any { + this.getLocation().then((cord) => { + this.lastCord = cord; + console.log("lastCord service: ", this.lastCord); + }); + return this.lastCord; + } } diff --git a/src/assets/testDetail/igm.png b/src/assets/testDetail/igm.png new file mode 100644 index 0000000000000000000000000000000000000000..04dec436d3775f8090bbb26e1e0cdc7590d48cc7 GIT binary patch literal 16402 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