Files
baseapi/platformapi/autonavi/gaode_api.go
2025-11-21 09:09:09 +08:00

48 lines
1.2 KiB
Go

package autonavi
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"strings"
)
// GetCyclingPlan 获取骑手的骑行计划
func (a *API) GetCyclingPlan(origin, destination string) ([]string, int64, int64, error) {
param := map[string]interface{}{
"key": a.key,
"origin": origin,
"destination": destination,
"show_fields": "polyline",
}
result, err := a.AccessAPI3("direction/electrobike", param)
if err != nil {
return nil, 0, 0, err
}
var data *CyclingPlan
if err := utils.Map2StructByJson(result, &data, false); err != nil {
return nil, 0, 0, err
}
if data.Status != "1" && data.Info != "ok" {
return nil, 0, 0, fmt.Errorf(data.Infocode)
}
polyLineList := make([]string, 0, 0) // 坐标
var distance int64 = 0 // 距离 4329
var duration int64 = 0 // 时间 978
for _, v := range data.Route.Paths {
for _, v2 := range v.Steps {
if v2.Polyline != "" {
polyLine := strings.Split(v2.Polyline, ";")
if polyLine != nil {
polyLineList = append(polyLineList, polyLine...)
}
}
}
distance = utils.Str2Int64(v.Distance)
duration = utils.Str2Int64(v.Duration) + 300
}
return polyLineList, distance, duration, nil
}