Source code for platypush.message.event.geo
from datetime import datetime
from typing import Optional, Union
from dateutil.parser import isoparse
from platypush.message.event import Event
[docs]
class LatLongUpdateEvent(Event):
"""
Event triggered upon GPS location update
"""
[docs]
def __init__(
self,
latitude: float,
longitude: float,
*,
altitude: Optional[float] = None,
address: Optional[str] = None,
locality: Optional[str] = None,
country: Optional[str] = None,
description: Optional[str] = None,
timestamp: Optional[Union[float, datetime, str]] = None,
**kwargs,
):
"""
:param latitude: GPS latitude.
:param longitude: GPS longitude.
:param altitude: GPS altitude.
:param address: Human-readable address.
:param locality: Locality.
:param country: Country or city.
:param description: Description.
:param timestamp: Timestamp of the event (default: now).
"""
t = timestamp or datetime.now()
if isinstance(t, str):
t = isoparse(t)
elif isinstance(t, datetime):
t = t.timestamp()
super().__init__(
latitude=latitude,
longitude=longitude,
altitude=altitude,
address=address,
locality=locality,
country=country,
description=description,
timestamp=timestamp,
**kwargs,
)
# vim:sw=4:ts=4:et: