oposumo: (Default)
[personal profile] oposumo

На панель задач в GNOME можно добавить удобную фиговинку (подобные штуки называются апплетами) для просмотра прогноза погоды. Точнее там даже два апплета: специальный для погоды и для часов, который также может показывать и погоду. Вот так это выглядит (на картинке погода настроена для двух разных городов - Новокузнецка и Красноярска; изначально выбрать второй возможности нет):




Недавно всплыла проблема, на которую я не обращала раньше внимания, поскольку мне нужны были только Новосибирск и Новокузнецк. Выбор города происходит из списка, а в этом списке, как оказалось, есть далеко не все города, даже не все центры субъектов РФ.

Правда, тому, кто обратил на это моё внимание, был нужен Нижний Новгород. А он там всё же есть, просто шифруется под названием "Стригино", потому что так называется нижненовгородский аэропорт. Непонятно, с чего такой косяк - вместо Новосибирска не Толмачёво же, но город хотя бы есть, а вот например таких немелких городов как Томск, Красноярск, Магнитогорск вообще нет в списке. Хотя и аэропорты у них свои имеются.

Погода в панели - удобная штука. Можно попытаться найти какой-нибудь другой апплет, но у меня сходу это как-то не получилось. Можно ещё несколько решений найти, но всё же должен же быть способ заставить работать апплеты идущие "из коробки" как надо. Таки он есть.



Сразу надо сказать, что, к сожалению, погода тут может быть только с ближайшего аэропорта, совсем любой-любой город никак. Например для Тольятти будет погода Самары, потому что, насколько я знаю, у них общий аэропорт. Ну и точность соответствующая, впрочем температура и по городу разнится.

В апплете "Сводка погоды" (версия 2.28.0) выбор производится в параметрах на вкладке Местоположение из многоуровнего списка сначала по частям света, потом по странам (Россия там в Европе вся, даже города, которые в Азии). Результат примерно такой (подробности открываются при щелчке на апплете):





Чтобы погоду показывал часовой апплет, в его параметрах надо выставить галки "Показывать погоду" и "Показывать температуру", на вкладке "Местности" добавить город - там просто окошко, в котором можно набрать "Россия" и появится список всех имеющихся российских городов. Казалось бы, можно написать что угодно, и даже потом ниже ввести вручную координаты, но погоды таким образом не добиться.



Штука с календарём и картой появляется при левом щелчке на апплете, и нужно ещё нажать на кнопку "Установить" рядом с городом, чтобы появился домик.



При наведении курсора на апплет появляется такая плашечка с подробностями о погоде.


А теперь собственно сабж:
Чтобы добавить город, не присутствующий в списке, нужно открыть файл Locations.xml из папки /usr/share/libgweather/ (права на папку только у рута, поэтому обычно "sudo nautilus" в консоли и дальше уже выбор обычным способом). Файл большой, открывать лучше соответствующим текстовым редактором (у меня geany, ещё советовали mcedit). В принципе у файла довольно простая структура. Для каждого города есть строка, постоенная по определённым правилам. Например, для Томска будет так:
 
<city>
<name>Novosibirsk</name>
<coordinates>55.041111 82.934444</coordinates>
<location>
<name>Novosibirsk</name>
<code>UNNT</code>
<tz-hint>Asia/Novosibirsk</tz-hint>
<coordinates>55.083333 82.900000</coordinates>
</location>
</city>
 
Ну только там всё идёт сплошняком без переноса строк, это я для удобства тут разбила (хотя скорее всего там можно и в таком виде вставить). В общем, всё и так понятно: есть название города и название места (обычно совпадает с городом, но иногда именно название аэропорта, у Москвы например 3 <location>, хотя по умолчанию выбирается, видимо, Внуково, судя по координатам), есть координаты того и другого, есть часовой пояс и код ICAO аэропорта.
Самое сложное - ICAO. Это четырёхбуквенные коды аэропортов, можно брать на сайте apinfo.ru или конкретно по городу поиск тут, или можно просто погуглить.
Координаты я брала в википедии, но по поиску тоже несложно найти. Вообще точно не знаю, зачем они тут нужны и на что вообще влияют.
А часовые пояса это совсем просто, кто ж не знает свой часовой пояс. Список обозначений есть в этом же файле, но для простоты можно и тут:
 

UTC +2 Калининградское время - Europe/Kaliningrad

UTC +3 Московское время - Europe/Moscow или Europe/Volgograd

UTC +4 Самарское время - Europe/Samara

UTC +5 Екатеринбургское время - Asia/Yekaterinburg

UTC +6 Омское время - Asia/Omsk или Asia/Novosibirsk

UTC +7 Красноярское время - Asia/Krasnoyarsk

UTC +8 Иркутское время - Asia/Iskutsk

UTC +9 Якутское время - Asia/Yakutsk

UTC +10 Владивостокское время - Asia/Vladivostok или Asia/Sakhalin

UTC +11 Магаданское время - Asia/Magadan

UTC +12 Камчатское время - Asia/Kamchatka или Asia/Anadyr



В чём прикол двойных вариантов названий поясов, не знаю и опять же, где это используется, но для Новосибирска именно Asia/Novosibirsk стоит.

Ещё вот, кстати, не знаю, откуда берутся названия по-русски (как они видны из всех настроек), так как в файле всё латиницей. Поэтому при добавлении своих городов в <city> лучше писать именно по-русски.

Ну вот пример, для нескольких городов. Выбрала не знаю по какому принципу:
 
<city><name>Магнитогорск</name><coordinates>53.230000 59.020000</coordinates><location><name>Magnitogorsk</name><code>USCM</code><tz-hint>Asia/Yekaterinburg</tz-hint><coordinates>53.390000 58.760000</coordinates></location></city>

<city><name>Томск</name><coordinates>56.300000 84.580000</coordinates><location><name>Bogashovo Airport</name><code>UNTT</code><tz-hint>Asia/Omsk</tz-hint><coordinates>56.380000 85.210000</coordinates></location></city>

<city><name>Нерюнгри</name><coordinates>56.393000 124.433000</coordinates><location><name>Chulman Airport</name><code>UELL</code><tz-hint>Asia/Yakutsk</tz-hint><coordinates>56.650000 124.600000</coordinates></location></city>

<city><name>Красноярск</name><coordinates>56.000000 92.560000</coordinates><location><name>Emelyanovo Airport</name><code>UNKL</code><tz-hint>Asia/Krasnoyarsk</tz-hint><coordinates>56.170000 92.490000</coordinates></location></city>

<city><name>Тула</name><coordinates>54.120000 37.370000</coordinates><location><name>Tula</name><code>UUBT</code><tz-hint>Europe/Moscow</tz-hint><coordinates>54.240000 37.600000</coordinates></location></city>

<city><name>Набережные Челны</name><coordinates>55.420000 52.200000</coordinates><location><name>Naberezhnye Chelny</name><code>UWKE</code><tz-hint>Europe/Moscow</tz-hint><coordinates>55.560000 52.090000</coordinates></location></city>
 
Вставлять строчки можно не соблюдая алфавитный порядок как в файле - всё равно в списке города сами встанут в нужное место.

Способ нашла на форуме убунты. Там был ещё один, но у меня почему-то не сработал:
 
В свойствах апплета часов добавляем любое место на Земле, от фонаря. Затем, открываем утилитку gconf-editor, открываем ключ /apps/panel/applets/clock_screen0/prefs. Там находим параметр cities
- это список, но сейчас там только один пункт. Открываем параметр и
видим окно со списком из одной строки, нажимаем на кнопку
"Редактировать". Перед нами значение, выглядящее примерно так: <location
name="Novosibirsk" timezone="Asia/Yekaterinburg" latitude="55.083332"
longitude="82.900002" code="UNNT" current="true"/>. Здесь меняем
название города, временной зоны, координаты и код аэропорта. Сохраняем введённое значение.
 
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

oposumo: (Default)
Opossum

June 2011

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 2nd, 2025 03:55 pm
Powered by Dreamwidth Studios