From 0b64b4ac97dd80edb1aa0cdb16310bb4bf553f4a Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Thu, 30 Sep 2021 23:03:21 +0200 Subject: [PATCH] handle errors when gps coordinates are out of range --- owrx/details.py | 8 +++++++- owrx/locator.py | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/owrx/details.py b/owrx/details.py index 8bdfd3e..4d853cb 100644 --- a/owrx/details.py +++ b/owrx/details.py @@ -2,6 +2,9 @@ from owrx.config import Config from owrx.locator import Locator from owrx.property import PropertyFilter from owrx.property.filter import ByPropertyName +import logging + +logger = logging.getLogger(__name__) class ReceiverDetails(PropertyFilter): @@ -20,5 +23,8 @@ class ReceiverDetails(PropertyFilter): def __dict__(self): receiver_info = super().__dict__() - receiver_info["locator"] = Locator.fromCoordinates(receiver_info["receiver_gps"]) + try: + receiver_info["locator"] = Locator.fromCoordinates(receiver_info["receiver_gps"]) + except ValueError as e: + logger.error("invalid receiver location, check in settings: %s", str(e)) return receiver_info diff --git a/owrx/locator.py b/owrx/locator.py index 52c37e5..bc173fe 100644 --- a/owrx/locator.py +++ b/owrx/locator.py @@ -5,6 +5,11 @@ class Locator(object): lat = coordinates["lat"] lon = coordinates["lon"] + if not -90 < lat < 90: + raise ValueError("invalid latitude: {}".format(lat)) + if not -180 < lon < 180: + raise ValueError("invalid longitude: {}".format(lon)) + lon = lon + 180 lat = lat + 90