/gogtfs

GTFS model structs

Primary LanguageGoApache License 2.0Apache-2.0

gogtfs

Simple Go package for all GTFS data tables/models

Currently, there is no validation for models, only some fields are tested for valid ranges.

Example

data := `stop_id,level_id,stop_name,stop_lat,stop_lon,location_type,parent_station
F12,,5 Av/53 St,40.760167,-73.975224,1,
E1,L0,5 Av/53 St SW,40.760474,-73.976099,2,F12
N1,L1,,40.760457,-73.975912,3,F12
N4,L1,,40.759679,-73.974064,3,F12
F12S,,5 Av/53 St,40.760167,-73.975224,0,F12`

dataReader := strings.NewReader(data)
dataReadCloser := io.NopCloser(dataReader)
reader, err := gogtfs.NewReader[model.Stop](dataReadCloser)
if err != nil {
	log.Fatal(err)
}
defer reader.Close()

for {
	stop, err := reader.Next()
	if err == io.EOF {
		break
	} else if err != nil {
		log.Printf("error: %v\n", err)
		continue
	}

	fmt.Printf("%+v\n", stop)
}