コード例 #1
0
        public async Task <string> ReturnUberDeepLinkNonPrecise(string address)
        {
            string      MapsAddress  = null;
            string      UberDeepLink = "";
            List <Uber> longlat      = new List <Uber>();
            Uber        uber         = new Uber();

            if (Device.RuntimePlatform == Device.iOS)
            {
                //first break it down by comma
                PermuteAgain pa              = new PermuteAgain();
                var          commaAddress    = address.Split(',');
                var          possiblePermute = pa.CreateSubsets(commaAddress);
                foreach (var item in possiblePermute)
                {
                    if (item.Contains(commaAddress[0]))
                    {
                        MapsAddress = item[0];
                        var lt = await CalcLongLat(MapsAddress);

                        if (!string.IsNullOrEmpty(lt.Longitude.ToString()) && !string.IsNullOrEmpty(lt.Latitude.ToString()))
                        {
                            UberDeepLink = uber.GetUberDeepLink(lt.Longitude, lt.Latitude, address);
                            break;
                        }
                    }
                }
                //var p = possiblePermute.Where(r => r.FirstOrDefault().Contains(commaAddress[0]));
            }
            else if (Device.RuntimePlatform == Device.Android)
            {
                MapsAddress = HttpUtility.UrlEncode(address);
                var lt = await CalcLongLat(MapsAddress);

                if (!string.IsNullOrEmpty(lt.Longitude.ToString()) && !string.IsNullOrEmpty(lt.Latitude.ToString()))
                {
                    UberDeepLink = uber.GetUberDeepLink(lt.Longitude, lt.Latitude, MapsAddress);
                }
            }

            else
            {
            }



            return(UberDeepLink);
        }
コード例 #2
0
        public async Task <Uber> CalcLongLat(string address)
        {
            List <Uber> longlat = new List <Uber>();
            Uber        uber    = new Uber();
            var         loc     = await Xamarin.Essentials.Geocoding.GetLocationsAsync(address).ConfigureAwait(false);

            var point = loc?.FirstOrDefault();

            if (point != null)
            {
                uber.Longitude = point.Longitude;
                uber.Latitude  = point.Latitude;
            }


            return(uber);
        }