123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- package util
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "net/http"
- "pji_desktop_http/common/config/c_pji"
- "sync"
- )
- func ContainsKey(m *sync.Map, key string) bool {
- _, found := m.Load(key)
- return found
- }
- // GetExactedMapFileById 根据id获取解析后的地图文件列表
- func GetExactedMapFileById(id string) (fileList []string, err error) {
- url := c_pji.SenceOssDownUrl + id
- // 构建请求
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- fmt.Println("Error creating request:", err)
- return nil, err
- }
- // 添加认证头
- req.Header.Set("Authorization", c_pji.Token)
- // 发送请求
- client := &http.Client{}
- resp, err := client.Do(req)
- if err != nil {
- fmt.Println("Error executing request:", err)
- return nil, err
- }
- defer resp.Body.Close()
- body, _ := ioutil.ReadAll(resp.Body)
- // Json转换为map
- var data map[string]interface{}
- err = json.Unmarshal(body, &data)
- // 提取响应体中的data字段
- dataField, ok := data["data"].([]interface{})
- if !ok {
- fmt.Println("Error extracting data field")
- return nil, err
- }
- // 转换字符串切片
- for _, item := range dataField {
- str, ok := item.(string)
- if !ok {
- fmt.Println("Error converting item to string")
- return nil, err
- }
- fileList = append(fileList, str)
- }
- return fileList, nil
- }
- // GetExactedMapFileByIds 根据id列表获取解析后的地图文件列表
- func GetExactedMapFileByIds(ids []string) (fileList []string, err error) {
- allFileList := make([]string, 0)
- for i, id := range ids {
- fileList, err := GetExactedMapFileById(id)
- if err != nil {
- return nil, err
- }
- if i != 0 {
- fileList = FilterBySuffixes(fileList, "build_map.bag")
- }
- allFileList = append(allFileList, fileList...)
- }
- return allFileList, nil
- }
- // GetRosFileById 根据id获取对应的原始bag文件
- func GetRosFileById(id string) (file string, err error) {
- url := c_pji.SenceInfoUrl + id
- // 构建请求
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- fmt.Println("Error creating request:", err)
- return "", err
- }
- // 添加认证头
- req.Header.Set("Authorization", c_pji.Token)
- // 发送请求
- client := &http.Client{}
- resp, err := client.Do(req)
- if err != nil {
- fmt.Println("Error executing request:", err)
- return "", err
- }
- defer resp.Body.Close()
- body, _ := ioutil.ReadAll(resp.Body)
- // Json转换为map
- var data map[string]interface{}
- err = json.Unmarshal(body, &data)
- //fmt.Println("data:", data)
- // 提取响应体中的data字段
- dataField, ok := data["data"].(map[string]interface{})
- if !ok {
- fmt.Println("Error extracting data field")
- return "", err
- }
- // 从 data字段中提取 rosField
- rosField, ok := dataField["rosFileId"].(string)
- if !ok {
- fmt.Println("Error extracting rosFileId field")
- return "", err
- }
- //println("rosFileId:", rosField)
- return rosField, nil
- }
|