from ipyleaflet import Map, Marker
import pynmea2
import serial
import io

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=5.0)
sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser))
last_time=00

while 1:
    try:
        line = sio.readline()
        msg = pynmea2.parse(line)
        latitude=msg.latitude
        longitude=msg.longitude
        time=msg.timestamp
    except serial.SerialException as e:
        print('Device error: {}'.format(e))
        break
    except pynmea2.ParseError as e:
        print('Parse error: {}'.format(e))
        continue
    except Exception as e:
        continue
    else:
        if last_time==00:
            center = (latitude, longitude)
            m = Map(center=center, zoom=15)
            marker = Marker(location=center, draggable=False)
            m.add_layer(marker);
            display(m)
            last_time=time
        else:
            marker.location=(latitude, longitude)
            last_time=time