1
This commit is contained in:
47
platformapi/autonavi/gaode_api.go
Normal file
47
platformapi/autonavi/gaode_api.go
Normal file
@@ -0,0 +1,47 @@
|
||||
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) + 600
|
||||
}
|
||||
|
||||
return polyLineList, distance, duration, nil
|
||||
}
|
||||
Reference in New Issue
Block a user