示例#1
0
        public async Task <WeatherObject.RootObject> GetJsonWeatherObjectByCoords(double lat, double lon)
        {
            string res = await client.GetStringAsync(new Uri("http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&units=metric&APPID=3118bd0d9c7e3dfd7535f6f99afec169"));

            WeatherObject.RootObject rootObject = JsonConvert.DeserializeObject <WeatherObject.RootObject>(res);
            return(rootObject);
        }
        private async void GetLocationData(object obj, EventArgs e)
        {
            LoadIndicator.IsRunning = true;
            getLocation.IsEnabled   = false;

            try {
                var locator = CrossGeolocator.Current;
                locator.DesiredAccuracy = 50;
                var localPos = await locator.GetPositionAsync(timeoutMilliseconds : 10000);

                // WeatherObject.RootObject localData = await ApiManager.ApiManagerInstance.GetJsonWeatherObjectByCity("auckland");
                WeatherObject.RootObject localData = await ApiManager.ApiManagerInstance.GetJsonWeatherObjectByCoords(localPos.Latitude, localPos.Longitude);

                data.Text = $"You are currently at {localData.name}";
                // Use googles service to determine time taken from fabrikam foods
                Position fabrikamPos = new Position(-36.831928, 174.795976);
                Position localGoogle = new Position(localPos.Latitude, localPos.Longitude);
                ConstructRoute(localGoogle, fabrikamPos, localData.name);
            } catch (Exception ex) {
                await DisplayAlert("Failure:", $"Unable to retrieve location location, please turn on your GPS", "OK");
            }

            getLocation.IsEnabled   = true;
            LoadIndicator.IsRunning = false;
        }
        private async void GetLocationData(Object sender, EventArgs e)
        {
            LoadIndicator.IsRunning   = true;
            reccomendButton.IsEnabled = false;

            try {
                var locator = CrossGeolocator.Current;
                locator.DesiredAccuracy = 50;
                var pos = await locator.GetPositionAsync(timeoutMilliseconds : 10000);

                data.Text = $"Latitude: {pos.Latitude}\nLongitude: {pos.Longitude}";
                // Feed data into API to load reccomendations
                // WeatherObject.RootObject localData = await ApiManager.ApiManagerInstance.GetJsonWeatherObjectByCity("auckland");
                WeatherObject.RootObject localData = await ApiManager.ApiManagerInstance.GetJsonWeatherObjectByCoords(pos.Latitude, pos.Longitude);

                data.Text += $"\nCurrent weather for {localData.name} is {localData.main.temp} degrees";
                LoadItems(localData.weather[0].icon, localData.main.temp);
            } catch (Exception ex) {
                await DisplayAlert("Failure:", $"Unable to retrieve location location, please turn on your GPS", "OK");
            }

            reccomendButton.IsEnabled = true;
            LoadIndicator.IsRunning   = false;
        }