using Assets.Scenes.Ride.Scripts.Model; using Assets.Scripts.Apis.Models; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Assets.Scripts.Apis { public class MapApi :ApiBase { public string GetMapToken(string name) { return Get($"Map/GetMapToken?name={name}"); } public JsonResult> GetTipsList() { return Get>>($"Map/GetTipList"); } /// /// 获取路线数据 /// /// /// public MapDataModel GetData(int id,int m=20) { return Newtonsoft.Json.JsonConvert.DeserializeObject(Get($"Map/GetData?routeId={id}&m={m}")); } /// /// 从服务端获取记录信息 /// /// public List GetRecordFileFromServer(List id) { return Post>>("Map/GetCyclingRecordsById", id).data; } /// /// 通过Id获取路书 /// /// /// public JsonResult GetById(int id) { return Get>($"Map/GetMapRouteById?id={id}"); } /// /// /// /// /// /// 名称,地址,编号 /// 距离,格式0-10 /// /// hot, distance /// asc /// public Task>> GetList(int pageIndex, int pageSize, string name, string distance="", string hands="", bool is3D=false, string sort="", string sortDire = "", bool isFav = false,bool isMine = false,bool isRecent = false,bool isEnableAR = false, bool isEnableBattle = false) { string lngLat = ""; if (sort.Equals("Near")) { lngLat = $"{App.longitude},{App.latitude}"; } var url = $"Map/GetRoute?pageIndex={ pageIndex }&pageSize={ pageSize }&name={ name }&distance={ distance }&hands={ hands }&is3D={ is3D }&sort={ sort }&sortDire={ sortDire }&isFav={isFav}&lngLat={lngLat}&isMine={isMine}&isRecent={isRecent}&isEnableAR={isEnableAR}&isEnableBattle={isEnableBattle}"; return GetAsync>>(url); } public async Task> CancelAreaFav(int areaId) { return await PostAsync>("/MapRouteArea/CancelCollectArea", new { areaId }); } public async Task> AddAreaFav(int areaId) { return await PostAsync>("/MapRouteArea/CollectArea",new { areaId}); } /// /// 从服务端获取Key /// /// public Dictionary GetServiceKeyFromServer() { return Get>>($"Map/GetServiceKey").data; } /// /// 骑行场景轮询是否有新设备登录 /// /// public async Task GetPing() { var res = await GetAsync($"/Map/v1/Ping"); return res; } /// /// 获取在线用户的数据 /// /// /// public JsonResult> GetOnlineUserInfo(IEnumerable ids) { //var result = PostAsync>>("Map/GetUserInfoByIds", ids).ConfigureAwait(false).GetAwaiter().GetResult(); var result = Newtonsoft.Json.JsonConvert.DeserializeObject>>(Post("Map/GetUserInfoByIds", ids)); if (result.result) { return result; } return null; } public JsonResult> GetMapRouteInfo(IEnumerable ids) { var result = Newtonsoft.Json.JsonConvert.DeserializeObject>>(Post("Map/GetMapRouteInfo", ids)); if (result.result) { return result; } return null; } public JsonResult GetMapBestInfo(int id) { var url = $"Map/GetMapBestInfo?routeId={ id }"; return Get>(url); } public async Task>> GetNearRouteAsync(float lat, float lng, float zoom, string bounds) { var res = await GetAsync>>($"/Map/GetNearRoute?lat={ lat.ToString(CultureInfo.InvariantCulture) }&lng={ lng.ToString(CultureInfo.InvariantCulture) }&zoom={zoom.ToString(CultureInfo.InvariantCulture)}&bounds={ bounds }"); //var result = System.Text.Encoding.UTF8.GetString(res); return res; } public async Task GetDetailsAsync(int[] ids) { var res = await GetAsync("/Map/GetDetails?ids=" + string.Join(",", ids)); return Encoding.UTF8.GetString(res); } /// /// 添加收藏 /// /// public async Task> AddFav(string routeId) { return await PostAsync>("/MemberFavoriteMap/Add",new { routeId }); } /// /// 取消收藏 /// /// public async Task> CancelFav(string routeId) { return await PostAsync>("/MemberFavoriteMap/Cancel", new { routeId }); } public async Task> DeleteRecord(string id) { return await PostAsync>("/MapRecord/Delete", new { id }); } public JsonResult GetRouteRanking(int id,string type, int pageIndex,int pageSize,string name,DateTime? startTime=null,DateTime? endTime = null) { var url = $"Map/v1/GetRouteRanking?pageIndex={ pageIndex }&pageSize={ pageSize }&name={ name }&id={ id }&type={ type }&filterSelf={ false }&startTime={ startTime }&endTime={ endTime }"; return Get>(url); } public JsonResult GetShadowList(int id, string name, int pageIndex, int pageSize) { var url = $"Map/GetShadowList?pageIndex={ pageIndex }&pageSize={ pageSize }&name={ name }&id={ id }"; return Get>(url); } public async Task> GetEarthData(double lat, double lon) { var result = await GetAsync>($"Map/GetEarthData?lat={ lat.ToString(CultureInfo.InvariantCulture) }&lon={ lon.ToString(CultureInfo.InvariantCulture) }"); return result; } //获取Loading页面路书封面图 public async Task> GetMapLoadingCoverageUrl(int routeId,int type=0) { var url = $"Map/GetLoadingCoverage?id={ routeId }&type={ type }"; var result = await GetAsync>(url); return result; } public async Task>> GetMapRouteAreaList(int pageIndex, int pageSize) { var result = await GetAsync>>($"MapRouteArea/GetList?pageSize={pageSize}&pageIndex={pageIndex}"); return result; } public async Task> GetMapRouteAreaDetailList(int id, int pageIndex, int pageSize) { var result = await GetAsync>($"MapRouteArea/GetRouteList?areaId={id}&pageSize={pageSize}&pageIndex={pageIndex}"); return result; } public async Task> GetMapRouteAreaDetail(int id) { var result = await GetAsync>($"MapRouteArea/GetDetail?areaId={id}"); return result; } public async Task> GetMapRouteAreaDetailItem(int id) { var result = await GetAsync>($"MapRouteArea/GetDetail?areaId={id}"); return result; } public async Task>> GetMaxRanking() { var result = await GetAsync>>($"Map/GetMaxRanking"); return result; } public async Task> ApplyOpenRoute(int id) { var result = await PostAsync>($"Map/ApplyOpenRoute", new { id }); return result; } public async Task> DeleteRoute(int id) { var result = await PostAsync>($"Map/DeleteRoute", new { id }); return result; } public async Task>> GetRecommendAreaList() { var result = await GetAsync>>($"MapRouteArea/GetRecommendAreaList"); return result; } public async Task>> GetRecommendList(int pageIndex=0, int pageSize=10000) { var result = await GetAsync>>($"Recommand/GetList?pageIndex={pageIndex}&pageSize={pageSize}"); return result; } public async Task>> GetMemberMapRouteAreaList(int pageIndex, int pageSize) { var result = await GetAsync>>($"MapRouteArea/GetMemberMapRouteAreaList?pageIndex={pageIndex}&pageSize={pageSize}"); return result; } } }