diff --git a/src/components/DigitalTwin/index.js b/src/components/DigitalTwin/index.js
index a0c1141..8367a10 100644
--- a/src/components/DigitalTwin/index.js
+++ b/src/components/DigitalTwin/index.js
@@ -1,6 +1,7 @@
import React from "react";
import { LocalDateTimeString } from "../../utils/dates";
+import { ValidateLocationByParam } from "../../utils/locations"
import useStyles from "../useStyles";
const keyValueTemplate = (key, value) => (
@@ -83,6 +84,9 @@ const DigitalTwin = (props) => {
Location
{Object.entries(location).map((value) => {
+ if (ValidateLocationByParam(value[0], value[1]) === false) {
+ return keyValueTemplate(value[0], "Invalid")
+ }
if (value[0] === "altitude") {
return keyValueTemplate(value[0], value[1]);
} else {
diff --git a/src/components/VehicleMap/index.jsx b/src/components/VehicleMap/index.jsx
index 2069e51..ca1151d 100644
--- a/src/components/VehicleMap/index.jsx
+++ b/src/components/VehicleMap/index.jsx
@@ -7,6 +7,7 @@ import { Button } from "@material-ui/core";
import { useUserContext } from "../Contexts/UserContext";
import { useVehicleContext, VehicleProvider } from "../Contexts/VehicleContext";
import { VehiclePopUp } from "./popup";
+import { ValidateLocationData } from "../../utils/locations"
import GreenMarkerIcon from "../../assets/green-marker.png";
import GrayMarkerIcon from "../../assets/gray-marker.png";
import { logger } from "../../services/monitoring";
@@ -44,7 +45,7 @@ const Component = () => {
const retrieveAndStoreLocations = (accessToken) => {
return getLocations(accessToken)
.then((result) => {
- if (result.data != null) {
+ if (result.data != null && ValidateLocationData(result.data) !== false) {
const points = result.data.map((point) => [
point.latitude,
point.longitude,
diff --git a/src/utils/locations.js b/src/utils/locations.js
new file mode 100644
index 0000000..a308375
--- /dev/null
+++ b/src/utils/locations.js
@@ -0,0 +1,22 @@
+export const ValidateLocationData = (location) => {
+ if (Math.abs(location.latitude) > 90 || Math.abs(location.longitude) > 180) {
+ return false;
+ }
+ if (location.altitude === 1401) {
+ return false;
+ }
+ return true;
+}
+
+export const ValidateLocationByParam = (parameter, value) => {
+ switch (parameter) {
+ case "latitude":
+ return Math.abs(value) <= 90;
+ case "longitude":
+ return Math.abs(value) <= 180;
+ case "altitude":
+ return value !== 1401;
+ default:
+ return false;
+ }
+}