Skip to content

🌦 Simple laravel package Consume the MetaWeather API.

Notifications You must be signed in to change notification settings

bioudi/laravel-meta-weather-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

laravel-meta-weather-api

Simple laravel package Consume the MetaWeather API.


MetaWeather API Examples

Please note that the MetaWeather API does not require any form of authentication. See the MetaWeather API documentation for all supported methods and parameters.

Important: the API does not support CORS.

Installation

To get the latest version of laravel-meta-weather-api on your project, require it from "composer":

$ composer require bioudi/laravel-meta-weather-api

Laravel

Register the provider directly in your app configuration file config/app.php config/app.php:

'providers' => [
	// ...

	Bioudi\LaravelMetaWeatherApi\WeatherserviceProvider::class
]

Usage

use Bioudi\LaravelMetaWeatherApi\Weather;
$weather = new Weather();

Search by city name

$weather->getByCityName('casablanca');

Output

{
  "consolidated_weather": [
    {
      "id": 6739825128374272,
      "weather_state_name": "Light Cloud",
      "weather_state_abbr": "lc",
      "wind_direction_compass": "NE",
      "created": "2019-03-24T10:23:58.103425Z",
      "applicable_date": "2019-03-24",
      "min_temp": 11.86,
      "max_temp": 24.58,
      "the_temp": 23.2,
      "wind_speed": 4.869768947042604,
      "wind_direction": 35.5,
      "air_pressure": 1014.9549999999999,
      "humidity": 56,
      "visibility": 13.852227988546886,
      "predictability": 70
    }
  ],
  "time": "2019-03-24T11:40:48.477916Z",
  "sun_rise": "2019-03-24T06:29:23.305030Z",
  "sun_set": "2019-03-24T18:44:48.967938Z",
  "timezone_name": "LMT",
  "parent": {
    "title": "Morocco",
    "location_type": "Country",
    "woeid": 23424893,
    "latt_long": "31.434200,-6.402450"
  },
  "sources": [
    {
      "title": "BBC",
      "slug": "bbc",
      "url": "http://www.bbc.co.uk/weather/",
      "crawl_rate": 180
    },
    {
      "title": "Forecast.io",
      "slug": "forecast-io",
      "url": "http://forecast.io/",
      "crawl_rate": 480
    },
    {
      "title": "Met Office",
      "slug": "met-office",
      "url": "http://www.metoffice.gov.uk/",
      "crawl_rate": 180
    },
    {
      "title": "OpenWeatherMap",
      "slug": "openweathermap",
      "url": "http://openweathermap.org/",
      "crawl_rate": 360
    },
    {
      "title": "Weather Underground",
      "slug": "wunderground",
      "url": "https://www.wunderground.com/?apiref=fc30dc3cd224e19b",
      "crawl_rate": 720
    },
    {
      "title": "World Weather Online",
      "slug": "world-weather-online",
      "url": "http://www.worldweatheronline.com/",
      "crawl_rate": 360
    },
    {
      "title": "Yahoo",
      "slug": "yahoo",
      "url": "http://weather.yahoo.com/",
      "crawl_rate": 180
    }
  ],
  "title": "Casablanca",
  "location_type": "City",
  "woeid": 1532755,
  "latt_long": "33.596611,-7.619340",
  "timezone": "Africa/Casablanca"
}

Search by city name and date

$weather->getByCityName('london', '2018/03/03');

Search by coordinates

$weather->getByCoordinates(36.96, -122.02);

Search by coordinates and date

$weather->getByCoordinates(36.96, -122.02, '2018/01/01');

Credits

  • Thanks to MetaWeather for providing an Open API to the Internet.