func main() { flag.Parse() var client *maps.Client var err error if *apiKey != "" { client, err = maps.NewClient(maps.WithAPIKey(*apiKey)) } else if *clientID != "" || *signature != "" { client, err = maps.NewClient(maps.WithClientIDAndSignature(*clientID, *signature)) } else { usageAndExit("Please specify an API Key, or Client ID and Signature.") } check(err) r := &maps.DistanceMatrixRequest{ Language: *language, DepartureTime: *departureTime, ArrivalTime: *arrivalTime, } if *origins != "" { r.Origins = strings.Split(*origins, "|") } if *destinations != "" { r.Destinations = strings.Split(*destinations, "|") } lookupMode(*mode, r) lookupAvoid(*avoid, r) lookupUnits(*units, r) lookupTransitMode(*transitMode, r) lookupTransitRoutingPreference(*transitRoutingPreference, r) resp, err := client.DistanceMatrix(context.Background(), r) check(err) pretty.Println(resp) }