# OpenWeatherMap-ohos-library **Repository Path**: applibgroup/OpenWeatherMap-ohos-library ## Basic Information - **Project Name**: OpenWeatherMap-ohos-library - **Description**: A wrapper for the openweathermap REST API - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-16 - **Last Updated**: 2022-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## OpenWeatherMap-ohos-Library **You need an API Key to use the OpenWeatherMap API. Head on over to their [website](http://openweathermap.org/) if you don't already have one.** ## Usage #### Instantiate Class With Your OpenWeatherMap Api Key ``` java OpenWeatherMapHelper helper = new OpenWeatherMapHelper(getString(ResourceTable.String_OPEN_WEATHER_MAP_API_KEY)); ``` #### Set your Units (Optional, STANDARD by default) ``` java helper.setUnits(Units.IMPERIAL); ``` ##### Unit Options: 1. ```Units.IMPERIAL (Fahrenheit)``` 2. ```Units.METRIC (Celsius)``` #### Set your Language (ENGLISH by default) ``` java helper.setLanguage(Languages.ENGLISH); ``` ## Features ### (1) Current Weather #### Get current weather by City Name: ```java helper.getCurrentWeatherByCityName("Accra", new CurrentWeatherCallback() { @Override public void onSuccess(CurrentWeather currentWeather) { Log.v(TAG, "Coordinates: " + currentWeather.getCoord().getLat() + ", "+currentWeather.getCoord().getLon() +"\n" +"Weather Description: " + currentWeather.getWeather().get(0).getDescription() + "\n" +"Temperature: " + currentWeather.getMain().getTempMax()+"\n" +"Wind Speed: " + currentWeather.getWind().getSpeed() + "\n" +"City, Country: " + currentWeather.getName() + ", " + currentWeather.getSys().getCountry() ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` #### Get current weather by City ID: ```java helper.getCurrentWeatherByCityID("524901", new CurrentWeatherCallback() { @Override public void onSuccess(CurrentWeather currentWeather) { Log.v(TAG, "Coordinates: " + currentWeather.getCoord().getLat() + ", "+currentWeather.getCoord().getLon() +"\n" +"Weather Description: " + currentWeather.getWeather().get(0).getDescription() + "\n" +"Temperature: " + currentWeather.getMain().getTempMax()+"\n" +"Wind Speed: " + currentWeather.getWind().getSpeed() + "\n" +"City, Country: " + currentWeather.getName() + ", " + currentWeather.getSys().getCountry() ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` #### Get current weather by Geographic Coordinates: ```java helper.getCurrentWeatherByGeoCoordinates(5.6037, 0.1870, new CurrentWeatherCallback() { @Override public void onSuccess(CurrentWeather currentWeather) { Log.v(TAG, "Coordinates: " + currentWeather.getCoord().getLat() + ", "+currentWeather.getCoord().getLon() +"\n" +"Weather Description: " + currentWeather.getWeather().get(0).getDescription() + "\n" +"Temperature: " + currentWeather.getMain().getTempMax()+"\n" +"Wind Speed: " + currentWeather.getWind().getSpeed() + "\n" +"City, Country: " + currentWeather.getName() + ", " + currentWeather.getSys().getCountry() ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` #### Get current weather by Zip Code: ```java helper.getCurrentWeatherByZipCode("90003", new CurrentWeatherCallback() { @Override public void onSuccess(CurrentWeather currentWeather) { Log.v(TAG, "Coordinates: " + currentWeather.getCoord().getLat() + ", "+currentWeather.getCoord().getLon() +"\n" +"Weather Description: " + currentWeather.getWeather().get(0).getDescription() + "\n" +"Temperature: " + currentWeather.getMain().getTempMax()+"\n" +"Wind Speed: " + currentWeather.getWind().getSpeed() + "\n" +"City, Country: " + currentWeather.getName() + ", " + currentWeather.getSys().getCountry() ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` ### (2) 5 day / 3 hour forecast #### Get three hour forecast by City Name: ```java helper.getThreeHourForecastByCityName("Pretoria", new ThreeHourForecastCallback() { @Override public void onSuccess(ThreeHourForecast threeHourForecast) { Log.v(TAG, "City/Country: "+ threeHourForecast.getCity().getName() + "/" + threeHourForecast.getCity().getCountry() +"\n" +"Forecast Array Count: " + threeHourForecast.getCnt() +"\n" //For this example, we are logging details of only the first forecast object in the forecasts array +"First Forecast Date Timestamp: " + threeHourForecast.getList().get(0).getDt() +"\n" +"First Forecast Weather Description: " + threeHourForecast.getList().get(0).getWeather().get(0).getDescription()+ "\n" +"First Forecast Max Temperature: " + threeHourForecast.getList().get(0).getMain().getTempMax()+"\n" +"First Forecast Wind Speed: " + threeHourForecast.getList().get(0).getWind().getSpeed() + "\n" ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` #### Get three hour forecast by City ID: ```java helper.getThreeHourForecastByCityID("524901", new ThreeHourForecastCallback() { @Override public void onSuccess(ThreeHourForecast threeHourForecast) { Log.v(TAG, "City/Country: "+ threeHourForecast.getCity().getName() + "/" + threeHourForecast.getCity().getCountry() +"\n" +"Forecast Array Count: " + threeHourForecast.getCnt() +"\n" //For this example, we are logging details of only the first forecast object in the forecasts array +"First Forecast Date Timestamp: " + threeHourForecast.getList().get(0).getDt() +"\n" +"First Forecast Weather Description: " + threeHourForecast.getList().get(0).getWeather().get(0).getDescription()+ "\n" +"First Forecast Max Temperature: " + threeHourForecast.getList().get(0).getMain().getTempMax()+"\n" +"First Forecast Wind Speed: " + threeHourForecast.getList().get(0).getWind().getSpeed() + "\n" ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` #### Get three hour forecast by Geographic Coordinates: ```java helper.getThreeHourForecastByGeoCoordinates(6.5244,3.3792, new ThreeHourForecastCallback() { @Override public void onSuccess(ThreeHourForecast threeHourForecast) { Log.v(TAG, "City/Country: "+ threeHourForecast.getCity().getName() + "/" + threeHourForecast.getCity().getCountry() +"\n" +"Forecast Array Count: " + threeHourForecast.getCnt() +"\n" //For this example, we are logging details of only the first forecast object in the forecasts array +"First Forecast Date Timestamp: " + threeHourForecast.getList().get(0).getDt() +"\n" +"First Forecast Weather Description: " + threeHourForecast.getList().get(0).getWeather().get(0).getDescription()+ "\n" +"First Forecast Max Temperature: " + threeHourForecast.getList().get(0).getMain().getTempMax()+"\n" +"First Forecast Wind Speed: " + threeHourForecast.getList().get(0).getWind().getSpeed() + "\n" ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ``` #### Get three hour forecast by Zip Code: ```java helper.getThreeHourForecastByZipCode("94040", new ThreeHourForecastCallback() { @Override public void onSuccess(ThreeHourForecast threeHourForecast) { Log.v(TAG, "City/Country: "+ threeHourForecast.getCity().getName() + "/" + threeHourForecast.getCity().getCountry() +"\n" +"Forecast Array Count: " + threeHourForecast.getCnt() +"\n" //For this example, we are logging details of only the first forecast object in the forecasts array +"First Forecast Date Timestamp: " + threeHourForecast.getList().get(0).getDt() +"\n" +"First Forecast Weather Description: " + threeHourForecast.getList().get(0).getWeather().get(0).getDescription()+ "\n" +"First Forecast Max Temperature: " + threeHourForecast.getList().get(0).getMain().getTempMax()+"\n" +"First Forecast Wind Speed: " + threeHourForecast.getList().get(0).getWind().getSpeed() + "\n" ); } @Override public void onFailure(Throwable throwable) { Log.v(TAG, throwable.getMessage()); } }); ```