dreenline | Дата: Вторник, 17 Мая 2016, 20:10 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Привет! Ради любопытства возник вопрос, как брать данные из интернета, что бы например сделать прогноз погоды. Это надо добавить информацию с каких-нибудь сайтов на подобии гис метео, как можно это сделать? Ну и наверное держателям это не понравится, и они еще могут заставить убрать приложение?)
|
|
| |
beril | Дата: Вторник, 17 Мая 2016, 21:16 | Сообщение # 2 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Цитата dreenline ( ) Привет! Ради любопытства возник вопрос, как брать данные из интернета, что бы например сделать прогноз погоды. Это надо добавить информацию с каких-нибудь сайтов на подобии гис метео, как можно это сделать? Ну и наверное держателям это не понравится, и они еще могут заставить убрать приложение?) С чего это не понравится? Если есть публичное API почему бы и не делать
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
dreenline | Дата: Вторник, 17 Мая 2016, 23:10 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Я что-то совсем загорелся сделать прогноз погоды. Если у кого-то завалялась статейка о том, как это сделать на юнити, или хотя бы что-то подобное, киньте плз
Добавлено (17 мая 2016, 23:10) --------------------------------------------- Мало ли кому-то будет интересно. Нашел вот это. К сожалению моих знаний пока не достаточно, что бы разобраться во всем этом)
Сообщение отредактировал dreenline - Вторник, 17 Мая 2016, 23:11 |
|
| |
Lertmind | Дата: Вторник, 17 Мая 2016, 23:22 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Цитата dreenline ( ) Мало ли кому-то будет интересно. Нашел вот это. К сожалению моих знаний пока не достаточно, что бы разобраться во всем этом) Забавно, я только что такое же стал писать.
Вообще, если взять Яндекс, то там нельзя использовать данные публично https://yandex.ru/legal/weather_termsofuse/?lang=ru. Есть сайт http://openweathermap.org/, там надо зарегистрироваться и получить ключ (API key), чтобы использовать. Можно бесплатно работать, но с некоторыми ограничениями http://openweathermap.org/price. Лицензия эта http://creativecommons.org/licenses/by-sa/4.0/, то есть для коммерческого использования разрешено, но с указанием авторства. Написал код:
Код using UnityEngine; using System.Collections; using System;
[Serializable] public class WeatherData { public Main main; }
[Serializable] public class Main { public float temp; public float pressure; }
public class Weather : MonoBehaviour { IEnumerator Start() { string url = "api.openweathermap.org/data/2.5/weather?q={0}&APPID={1}&units=metric"; string city = "Moscow"; string appid = ""; // API key url = string.Format(url, city, appid);
WWW www = new WWW(url); yield return www;
//print(www.text); var w = JsonUtility.FromJson<WeatherData>(www.text); print("Temp: " + w.main.temp + ", Pressure: " + w.main.pressure); } } Для JsonUtility приходится делать иерархию классов, я сделать только для температуры и давления. В appid надо ставить ключ, который получаешь при регистрации. Очевидно, такой код нельзя вставлять в публичный, потому что ограничение на запросы сразу истечёт, лучше на своём сервере получать данные и потом уже передавать приложению. Этот код получает такую JSON:
Код { "coord": { "lon": 37.62, "lat": 55.75 }, "weather": [ { "id": 803, "main": "Clouds", "description": "broken clouds", "icon": "04n" } ], "base": "cmc stations", "main": { "temp": 14.72, "pressure": 1005.2, "humidity": 72, "temp_min": 14.72, "temp_max": 14.72, "sea_level": 1024.71, "grnd_level": 1005.2 }, "wind": { "speed": 3.8, "deg": 143.002 }, "clouds": { "all": 64 }, "dt": 1463515258, "sys": { "message": 0.0073, "country": "RU", "sunrise": 1463447555, "sunset": 1463506831 }, "id": 524901, "name": "Moscow", "cod": 200 } И я вывожу: Temp: 14.72, Pressure: 1005.2
Сообщение отредактировал Lertmind - Вторник, 17 Мая 2016, 23:23 |
|
| |