diff --git a/src/app/services/physics.service.ts b/src/app/services/physics.service.ts index d4619e4..68152f8 100644 --- a/src/app/services/physics.service.ts +++ b/src/app/services/physics.service.ts @@ -46,13 +46,13 @@ export class PhysicsService { }; if(this.mode == null) this.mode = info.heading ? 'gps' : 'orientation'; - if(this.mode == 'orientation' && data[1]) { - if(!data[1].absolute && data[2] == Infinity) { + if(this.mode == 'orientation') { + if((!data[1] || !data[1].absolute) && data[2] == Infinity) { this.calibrate.next(0); this.requireCalibration.emit(); } - info.heading = -data[1].alpha + (data[2] == Infinity ? 0 : data[2]); + info.heading = -(data[1] ? data[1].alpha : 0) + (data[2] == Infinity ? 0 : data[2]); if(info.heading < 0) info.heading += 360; if(info.heading >= 360) info.heading -= 360; } diff --git a/src/app/views/map/map.component.ts b/src/app/views/map/map.component.ts index e313a2e..3742f38 100644 --- a/src/app/views/map/map.component.ts +++ b/src/app/views/map/map.component.ts @@ -119,7 +119,8 @@ export class MapComponent implements OnDestroy, OnInit { if (!this.position) this.center({lat: pos.latitude, lng: pos.longitude}); if (this.positionMarker.arrow) this.map.delete(this.positionMarker.arrow); if (this.positionMarker.circle) this.map.delete(this.positionMarker.circle); - this.positionMarker.arrow = this.map.newMarker({latlng: {lat: pos.latitude, lng: pos.longitude}, noSelect: true, noDelete: true, noDeleteTool: true, icon: 'arrow', rotationAngle: pos.heading, rotationOrigin: 'center'}); + console.log(pos.heading / 2); + this.positionMarker.arrow = this.map.newMarker({latlng: {lat: pos.latitude, lng: pos.longitude}, noSelect: true, noDelete: true, noDeleteTool: true, icon: 'arrow', rotationAngle: (pos.heading / 2), rotationOrigin: 'center'}); this.positionMarker.circle = this.map.newCircle({latlng: {lat: pos.latitude, lng: pos.longitude}, color: '#2873d8', noSelect: true, noDelete: true, noDeleteTool: true, radius: pos.accuracy, interactive: false}); let ignore = this.syncService.addMyLocation({latlng: {lat: pos.latitude, lng: pos.longitude}, label: this.name, noDeleteTool: true}); this.position = pos;