2016-11-09 2 views
-2

Я написал код в Голанге, чтобы получать маршруты из одного места в другое с помощью API Карт Google. Согласно Godoc, оба параметра DepartureTime и ArrivalTime являются необязательными. Однако, если я попытаюсь выполнить любой запрос без указания времени отправления, код не удастся, предоставив мне следующее сообщение об ошибке: INVALID_REQUEST - Invalid request. Missing the 'departure_time' parameter. Вот соответствующий код:Golang Google Maps API Прибытие

client, err := maps.NewClient(maps.WithAPIKey(apiKey), maps.WithRateLimit(2)) 
check(err, "new maps client") 

r := &maps.DirectionsRequest{ 
    Origin:  origin, 
    Destination: destination, 
    ArrivalTime: arrivalTime, 
    Alternatives: alternatives, 
    Mode:   maps.TravelModeDriving, 
} 

lookupTrafficModel(trafficModel, r) 

if avoid != "" { 
    lookupAvoidPoints(avoid, r) 
} 

//THIS LINE IS WHERE THE ERROR IS THROWN 
routes, waypoints, err := client.Directions(context.Background(), r) 
check(err, "getting directions") 

fmt.Println(waypoints) 
fmt.Println(routes) 

Обратите внимание, что если я закомментировать параметр ArrivalTime и вместо того, чтобы использовать DepartureTime: "now", (согласно Godoc), этот код работает, как ожидалось.

ответ

-1

Похоже, что это ограничение API Карт Google, а не клиент Go. Для тех, кто видит этот вопрос в будущем, экспериментируйте с различными комбинациями параметров (оставив разные) до тех пор, пока он не будет работать.