Beispiel #1
0
        /// <summary>
        /// 透過座標取得腳踏車資訊
        /// </summary>
        /// <param name="talkToken">要發送給誰</param>
        /// <param name="lat">緯度</param>
        /// <param name="lon">經度</param>
        /// <returns></returns>
        public string returnBikeData(string talkToken, string lat, string lon)
        {
            PTXApi getBusLocation = new PTXApi();

            string APIUrl = "http://ptx.transportdata.tw/MOTC/v2/Bike/Station/taipei?$format=JSON";
            List <YoubikeModel> getData = JsonConvert.DeserializeObject <List <Models.YoubikeModel> >(CallAPIByHMAC(APIUrl));

            foreach (var data in getData)
            {
                var distance = Math.Abs(Geocoding.DistanceOfTwoPoints(Convert.ToDouble(data.StationPosition.PositionLat), Convert.ToDouble(data.StationPosition.PositionLon), Convert.ToDouble(lat), Convert.ToDouble(lon)));
                data.Distance = distance;
            }

            var finalLocation = getData.OrderBy(x => x.Distance).Take(3);

            if (finalLocation.Count() > 0)
            {
                foreach (var item in finalLocation)
                {
                    string stationStatus = BikeStationStatus(item.StationUID, "taipei");
                    SendRequest.SendLocation(talkToken, item.StationPosition.PositionLat, item.StationPosition.PositionLon, item.StationName.Zh_tw, stationStatus);
                }
                return("Youbike站台資訊如上");
            }
            else
            {
                return("");
            }
        }