получить время восхода и заката - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь получить восход и закат, и я использую Open weather API для получения широты и долготы. Есть ли способ получить время восхода и захода солнца любого города, используя широту и долготу?

extension WeatherViewController: CLLocationManagerDelegate {

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    if let location = locations.last {
        let lat = location.coordinate.latitude
        let lon = location.coordinate.longitude
        weatherManager.fetchWeather(latitude: lat, longitude: lon)
    }
}

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    print(error)
}

}

my Weather Manager

   var delegate: weatherManagerDelegate?

func fetchWeather(cityName: String){
    let urlString = "\(weatherURL)&q=\(cityName)"
    performRequest(with: urlString)
}

func fetchWeather(latitude: CLLocationDegrees, longitude: CLLocationDegrees){
    let urlString = "\(weatherURL)&lat=\(latitude)&lon=\(longitude)"
    performRequest(with: urlString)
}

1 Ответ

0 голосов
/ 27 марта 2020

Он находится на их веб-сайте и, возможно, уже включен в ваши данные, если ваши запросы успешны. Это в словаре sys в следующем ответе. Похоже, что это тип ответа для используемых вами API.

{
  "coord": {
    "lon": -122.08,
    "lat": 37.39
  },
  "weather": [
    {
      "id": 800,
      "main": "Clear",
      "description": "clear sky",
      "icon": "01d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 282.55,
    "feels_like": 281.86,
    "temp_min": 280.37,
    "temp_max": 284.26,
    "pressure": 1023,
    "humidity": 100
  },
  "visibility": 16093,
  "wind": {
    "speed": 1.5,
    "deg": 350
  },
  "clouds": {
    "all": 1
  },
  "dt": 1560350645,
  "sys": {
    "type": 1,
    "id": 5122,
    "message": 0.0139,
    "country": "US",
    "sunrise": 1560343627,
    "sunset": 1560396563
  },
  "timezone": -25200,
  "id": 420006353,
  "name": "Mountain View",
  "cod": 200
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...