Initial commit
This commit is contained in:
303
vendor/github.com/briandowns/openweathermap/README.md
generated
vendored
Normal file
303
vendor/github.com/briandowns/openweathermap/README.md
generated
vendored
Normal file
@@ -0,0 +1,303 @@
|
||||
# OpenWeatherMap Go API
|
||||
|
||||
[](https://godoc.org/github.com/briandowns/openweathermap) [](https://travis-ci.org/briandowns/openweathermap) [](https://coveralls.io/github/briandowns/openweathermap?branch=master)
|
||||
|
||||
Go (golang) package for use with openweathermap.org's API.
|
||||
|
||||
For more detail about the library and its features, reference your local godoc once installed.
|
||||
|
||||
[Website](https://briandowns.github.io/openweathermap)!
|
||||
|
||||
To use the OpenweatherMap API, you need to obtain an API key. Sign up [here](http://home.openweathermap.org/users/sign_up). Once you have your key, create an environment variable called `OWM_API_KEY`. Start coding!
|
||||
|
||||
[Slack Channel](https://openweathermapgolang.slack.com/messages/general)
|
||||
|
||||
Contributions welcome!
|
||||
|
||||
## Features
|
||||
|
||||
### Current Weather Conditions
|
||||
|
||||
- By City
|
||||
- By City,St (State)
|
||||
- By City,Co (Country)
|
||||
- By City ID
|
||||
- By Zip,Co (Country)
|
||||
- By Longitude and Latitude
|
||||
|
||||
## Forecast
|
||||
|
||||
Get the weather conditions for a given number of days.
|
||||
|
||||
- By City
|
||||
- By City,St (State)
|
||||
- By City,Co (Country)
|
||||
- By City ID
|
||||
- By Longitude and Latitude
|
||||
|
||||
### Access to Condition Codes and Icons
|
||||
|
||||
Gain access to OpenWeatherMap icons and condition codes.
|
||||
|
||||
- Thunderstorms
|
||||
- Drizzle
|
||||
- Rain
|
||||
- Snow
|
||||
- Atmosphere
|
||||
- Clouds
|
||||
- Extreme
|
||||
- Additional
|
||||
|
||||
### Data Available in Multiple Measurement Systems
|
||||
|
||||
- Fahrenheit (OpenWeatherMap API - imperial)
|
||||
- Celsius (OpenWeatherMap API - metric)
|
||||
- Kelvin (OpenWeatherMap API - internal)
|
||||
|
||||
### UV Index Data
|
||||
|
||||
- Current
|
||||
- Historical
|
||||
|
||||
### Pollution Data
|
||||
|
||||
- Current
|
||||
|
||||
## Historical Conditions
|
||||
|
||||
- By Name
|
||||
- By ID
|
||||
- By Coordinates
|
||||
|
||||
## Supported Languages
|
||||
|
||||
English - en, Russian - ru, Italian - it, Spanish - es (or sp), Ukrainian - uk (or ua), German - de, Portuguese - pt, Romanian - ro, Polish - pl, Finnish - fi, Dutch - nl, French - fr, Bulgarian - bg, Swedish - sv (or se), Chinese Traditional - zh_tw, Chinese Simplified - zh (or zh_cn), Turkish - tr, Croatian - hr, Catalan - ca
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
go get github.com/briandowns/openweathermap
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
There are a few full examples in the examples directory that can be referenced. 1 is a command line application and 1 is a simple web application.
|
||||
|
||||
```Go
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
// Shortening the import reference name seems to make it a bit easier
|
||||
owm "github.com/briandowns/openweathermap"
|
||||
)
|
||||
|
||||
var apiKey = os.Getenv("OWM_API_KEY")
|
||||
|
||||
func main() {
|
||||
w, err := owm.NewCurrent("F", "ru", apiKey) // fahrenheit (imperial) with Russian output
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
w.CurrentByName("Phoenix")
|
||||
fmt.Println(w)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### Current Conditions by location name
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
w, err := owm.NewCurrent("K", "EN", apiKey) // (internal - OpenWeatherMap reference for kelvin) with English output
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
w.CurrentByName("Phoenix,AZ")
|
||||
fmt.Println(w)
|
||||
}
|
||||
```
|
||||
|
||||
### Forecast Conditions in imperial (fahrenheit) by coordinates
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
w, err := owm.NewForecast("5", "F", "FI", apiKey) // valid options for first parameter are "5" and "16"
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
w.DailyByCoordinates(
|
||||
&owm.Coordinates{
|
||||
Longitude: -112.07,
|
||||
Latitude: 33.45,
|
||||
},
|
||||
5 // five days forecast
|
||||
)
|
||||
fmt.Println(w)
|
||||
}
|
||||
```
|
||||
|
||||
### Current conditions in metric (celsius) by location ID
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
w, err := owm.NewCurrent("C", "PL", apiKey)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
w.CurrentByID(2172797)
|
||||
fmt.Println(w)
|
||||
}
|
||||
```
|
||||
|
||||
### Current conditions by zip code. 2 character country code required
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
w, err := owm.NewCurrent("F", "EN", apiKey)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
w.CurrentByZip(19125, "US")
|
||||
fmt.Println(w)
|
||||
}
|
||||
```
|
||||
|
||||
### Configure http client
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
client := &http.Client{}
|
||||
w, err := owm.NewCurrent("F", "EN", apiKey, owm.WithHttpClient(client))
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Current UV conditions
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
uv, err := owm.NewUV(apiKey)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
coord := &owm.Coordinates{
|
||||
Longitude: 53.343497,
|
||||
Latitude: -6.288379,
|
||||
}
|
||||
|
||||
if err := uv.Current(coord); err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
fmt.Println(coord)
|
||||
}
|
||||
```
|
||||
|
||||
### Historical UV conditions
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
uv, err := owm.NewUV(apiKey)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
coord := &owm.Coordinates{
|
||||
Longitude: 54.995656,
|
||||
Latitude: -7.326834,
|
||||
}
|
||||
|
||||
end := time.Now().UTC()
|
||||
start := time.Now().UTC().Add(-time.Hour * time.Duration(24))
|
||||
|
||||
if err := uv.Historical(coord, start, end); err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### UV Information
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
uv, err := owm.NewUV(apiKey)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
coord := &owm.Coordinates{
|
||||
Longitude: 53.343497,
|
||||
Latitude: -6.288379,
|
||||
}
|
||||
|
||||
if err := uv.Current(coord); err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
info, err := uv.UVInformation()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
fmt.Println(info)
|
||||
}
|
||||
```
|
||||
|
||||
### Pollution Information
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
pollution, err := owm.NewPollution(apiKey)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
params := &owm.PollutionParameters{
|
||||
Location: owm.Coordinates{
|
||||
Latitude: 0.0,
|
||||
Longitude: 10.0,
|
||||
},
|
||||
Datetime: "current",
|
||||
}
|
||||
|
||||
if err := pollution.PollutionByParams(params); err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### One Call Information
|
||||
|
||||
```Go
|
||||
func main() {
|
||||
// Possibility to exclude information. For example exclude daily information []string{ExcludeDaily}
|
||||
w, err := owm.NewOneCall("F", "EN", apiKey, []string{})
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
err = w.OneCallByCoordinates(
|
||||
&Coordinates{
|
||||
Longitude: -112.07,
|
||||
Latitude: 33.45,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
fmt.Println(w)
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user