Use Adafruit GPS module PA1010D with Arduino UNO raw NMEA sentences via the I2C protocol.
#include <Adafruit_GPS.h>
Adafruit_GPS GPS(&Wire);
void setup() {
  while (!Serial) {}
  Serial.begin(115200);
  Serial.println("Adafruit GPS library basic I2C test!");
  GPS.begin(0x10);  // The I2C address to use is 0x10
}
void loop() {
  if (Serial.available()) {
    char c = Serial.read();
    GPS.write(c);
  }
  if (GPS.available()) {
    char c = GPS.read();
    Serial.write(c);
  }
}BOARD?=arduino:avr:uno
PORT := $(shell ls /dev/cu.usbmodem*)
.PHONY: default lint all flash clean
default: lint all flash clean
lint:
	cpplint --extensions=ino --filter=-legal/copyright,-readability/casting *.ino
all:
	arduino-cli compile --fqbn $(BOARD) ./
flash:
	arduino-cli upload -p $(PORT) --fqbn $(BOARD) ./
clean:
	rm -f .*.bin
	rm -f .*.elf
	rm -f .*.hex