from ipyleaflet import Map, Marker import pynmea2 import serial import io ser = serial.Serial('/dev/ttyACM0', 9600, timeout=5.0) sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser)) last_time = 00 while True: try: line = sio.readline().rstrip('\n') # Remove newline character 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