Skip to content

Releases: eugene-chernyshenko/studyge

StudyGe 1.13.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 12 Sep 16:12

Набор по Бразилии переделан: вместо пяти макрорегионов — штаты, 27 единиц.

Играть: https://eugene-chernyshenko.github.io/studyge/

Состав набора

26 штатов и федеральный округ. Округ не штат, но он анклав внутри Гояса, и без него в карте осталась бы дырка — то же решение, что с округом Колумбия и Брюсселем.

Убран механизм объединения

Сборка единиц объединением, добавленная в 1.12.0 ради макрорегионов, удалена целиком: после замены у неё не осталось потребителей, а неиспользуемый код в пайплайне никто не проверяет и он тихо гниёт. Вместе с ней ушли запросы состава групп, ручная правка по Гоясу и ветка dissolve в сборке.

Если макрорегионы понадобятся снова, весь механизм есть в истории под тегом v1.12.0 — восстанавливается одним откатом.

Детализация

Выбрана по проверке: при упрощении до 10% Белен оказывался в 1,7 км за контуром Пары, а Салвадор — в 5 км за контуром Баии. Белен стоит в устье Амазонки, Салвадор на берегу бухты, обоим нужны подробные очертания. При 35% все десять проб попадают внутрь.

Проверка

Бразилия добавлена в запросы к Wikidata — без этого площади набора не с чем было сверять, и проверка честно писала «нет кодов ISO для сверки».

Координатный тест: 139 из 143 городов, бразильский набор проходит полностью — 10 из 10. Площади сверены по 743 полигонам, медиана расхождения 0,7%; у штатов Бразилии — 0,6%, все 27 в пределах 5%.

Административные центры известны у всех 27 единиц.

Всего в игре 20 наборов и 765 регионов.

StudyGe 1.12.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 12 Sep 16:04

Добавлен набор регионов Бразилии — 5 макрорегионов.

Играть: https://eugene-chernyshenko.github.io/studyge/

Новый вид набора: объединение

Своей геометрии у макрорегионов нет ни в одном открытом источнике — ни в Natural Earth, ни в geoBoundaries, ни в GISCO. Поэтому в пайплайн добавлен новый вид набора: единицы собираются объединением 27 штатов Natural Earth по составу из Wikidata.

Административных центров у них нет и быть не может: это статистические группировки, а не органы управления. Счётчик центров в логе сборки заодно исправлен — он считал до объединения и печатал «27/5».

Пробел в данных и предохранитель

Wikidata не связывает Гояс с Центрально-западным регионом, поэтому состав приходил на один штат короче — на карте осталась бы дырка размером с Гояс.

Сборка на такое теперь падает с указанием пропущенной единицы, а не рисует карту молча. Сам Гояс добавлен ручной правкой. Предохранитель проверен: если правку убрать, сборка останавливается с сообщением «BRA: нет группы для BR-GO».

Проверка

Координатный тест расширен до 139 городов: 135 из 139, бразильский набор проходит полностью — 6 из 6. Отдельная проба стоит на Гоянию: без правки по Гоясу она бы провалилась.

Площади объединённых регионов сверены с опубликованными: медиана расхождения 0,2%, все пять в пределах 5% — объединение геометрически корректно, а не «на глаз».

Всего в игре 20 наборов и 743 региона.

StudyGe 1.11.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 12 Sep 15:43

Добавлен набор провинций Бельгии — 11 единиц.

Играть: https://eugene-chernyshenko.github.io/studyge/

Состав набора

10 провинций и Брюссельский столичный регион. Брюссель не провинция, но он анклав внутри Фламандского Брабанта, и без него в карте осталась бы дырка, не принадлежащая ничему — тот же случай, что с округом Колумбия. Название набора это отражает. Вырезан отдельным кольцом, проверено точкой.

Понадобился новый способ спрашивать Wikidata

Wikidata связывает Бельгию только с тремя регионами, а провинции висят уже на них. Запрос «подразделения страны» давал три записи вместо одиннадцати: у Фламандского и Валлонского Брабанта не было административных центров, а площади почти не сверялись.

Добавлен второй путь — выборка всех объектов класса с кодом ISO 3166-2 (WIKIDATA_CLASSES). Ветку пришлось выделить в отдельные запросы: в объединении с выборкой площадей публичный эндпоинт уходил в таймаут.

Тихая поломка в загрузчике

Главное, что вскрылось по дороге: эндпоинт Wikidata отвечает на таймаут кодом 200 со стектрейсом Java, а загрузчик проверял только статус — и закешировал стектрейс как данные. Обнаружилось это гораздо позже, уже на сборке, и выглядело как непонятная ошибка разбора JSON.

Теперь ответ проверяется на разбор и наличие результатов, иначе повтор с задержкой.

Проверка

Координатный тест расширен до 133 городов: 129 из 133, бельгийский набор проходит полностью — 11 из 11, включая Брюссель-анклав. Площади сверены по 716 полигонам, медиана расхождения 0,7%; у бельгийского набора — 2,5%, 10 из 11 в пределах 5%.

Административные центры известны у всех 11 единиц.

Всего в игре 19 наборов и 738 регионов.

StudyGe 1.10.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 12 Sep 15:27

Добавлен набор областей Бангладеш — 8 единиц.

Играть: https://eugene-chernyshenko.github.io/studyge/

Почему не Natural Earth

В Natural Earth до сих пор семь областей: Маймансингх выделили из Дакки в 2015 году, и этого разделения там нет. Набор собран из geoBoundaries, где есть все восемь с кодами ISO.

Обрезка по берегу отключена

В дельте Ганга слой земли Natural Earth слишком грубый: обрезка срезала у Барисала почти четверть площади. Без неё расхождение падает с 37% до 30%.

Остаток объясняется самими границами, а не обработкой: официальные площади дельтовых областей включают речные акватории, которых в полигонах нет. Барисал выходит на 30% меньше справочного, Читтагонг — на 11%, остальные шесть областей сходятся в пределах 3%.

Убрано ложное предупреждение сборки

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

Проверка

Координатный тест расширен до 122 городов: 118 из 122, бангладешский набор проходит полностью — 8 из 8, включая Маймансингх. Площади сверены по 705 полигонам, медиана расхождения 0,7%.

Административные центры известны у всех восьми областей.

Всего в игре 18 наборов и 727 регионов.

StudyGe 1.9.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 11 Sep 19:29

Добавлен набор земель Австрии — 9 единиц.

Играть: https://eugene-chernyshenko.github.io/studyge/

Состав набора

9 земель, ровно как в источнике: ни исключений, ни правок названий не понадобилось.

Вена — земля сама по себе, вырезанная из Нижней Австрии отдельным кольцом. Восточный Тироль отделён от остального Тироля Зальцбургом и идёт вторым куском. И то и другое проверено точками: координата Вены попадает ровно в один полигон, координата Лиенца — в Тироль.

Исправлена смесь алфавитов в подписях

У Wikidata нет русских названий для части небольших городов, и приложение подставляло латинские. Рядом со «Штирия · Грац» стояло «Форарльберг · Bregenz».

Проверил все наборы разом — нашлось 15 таких подписей: одна австрийская и четырнадцать словенских. Теперь центр без кириллицы не показывается вовсе, а для городов, которые стоит назвать, есть ручной список; в нём пока Брегенц.

Побочный эффект: у общин Словении число известных центров снизилось с 59 до 45. Там это деревни, названные так же, как сама община («Церкно · Cerkno»), и латинская подпись не добавляла ничего, кроме шума.

Проверка

Координатный тест расширен до 114 городов: 110 из 114, австрийский набор проходит полностью — 10 из 10. Площади сверены по 697 полигонам, медиана расхождения 0,7%; у земель Австрии — 0,6%, все 9 в пределах 5%.

Всего в игре 17 наборов и 719 регионов.

StudyGe 1.8.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 11 Sep 19:10

Добавлен набор штатов и территорий Австралии — 8 единиц.

Играть: https://eugene-chernyshenko.github.io/studyge/

Состав набора

6 штатов, Северная территория и Австралийская столичная территория — канонический список.

Natural Earth возит рядом с ними три островных записи: Маккуори (часть Тасмании), Лорд-Хау (часть Нового Южного Уэльса) и территория Джервис-Бей площадью 70 км². Первые две исключены как части своих штатов, третья — как не входящая в список.

Исключать Лорд-Хау пришлось по имени, а не по коду: Natural Earth даёт острову тот же код AU-NSW, что и самому Новому Южному Уэльсу, так что отбрасывание по коду снесло бы штат целиком. Для этого в пайплайн добавлено исключение по названию.

Детализация

Выбрана по проверке: при упрощении до 12% Дарвин оказывался в 4,2 км за контуром Северной территории, при 40% — в 0,5 км. Внутрь он не попадает ни при каком уровне, вплоть до 70%: город стоит на узком мысу, и береговая линия источника проходит мимо него. Заодно при 40% заметно лучше выглядит изрезанное побережье.

Проверка

Координатный тест расширен до 104 городов: 100 из 104, австралийский набор — 7 из 8 (мимо только Дарвин). Площади сверены по 688 полигонам, медиана расхождения 0,7%; у австралийского набора — 0,3%.

Административные центры известны у всех восьми единиц.

Всего в игре 16 наборов и 710 регионов.

StudyGe 1.7.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 11 Sep 18:57

Исправлено залипание старой версии в браузере.

Играть: https://eugene-chernyshenko.github.io/studyge/

В чём было дело

GitHub Pages отдаёт каждый файл с Cache-Control: max-age=600 и не даёт менять заголовки — это проверено запросами к боевому сайту. Файлы сборки такое переживают, у них хеш в имени. А data/*.json и флаги называются одинаково от релиза к релизу, поэтому браузер мог взять новый код и старый manifest.json — и новые наборы просто не появлялись.

Что сделано

Версия в адресе данных. Версия из package.json попадает в сборку и добавляется ко всем адресам данных: data/manifest.json?v=1.7.0. Новый релиз — новые адреса, смешать старые данные с новым кодом теперь невозможно.

Страница сама замечает новый деплой. Сборка кладёт рядом version.json, приложение запрашивает его с cache: 'no-store' — это обходит десятиминутный кеш целиком — при запуске, при возврате на вкладку и раз в пять минут. Если на сервере другая версия, в меню появляется кнопка «Обновить».

Баннер показывается только в меню: в раунде он перекрывал бы «Подтвердить». Проверено попаданием в кнопку — под её центром именно кнопка, а не баннер.

Что осталось непокрытым

Дольше десяти минут устаревшим может оставаться только сам index.html — на это с GitHub Pages повлиять нельзя никак. Но благодаря версиям в адресах это теперь означает «согласованная старая версия», а не «новый код со старыми данными».

И ещё: те, кто сейчас сидит на 1.6.0, кнопки обновления не увидят — в их сборке её ещё нет. Они получат новую версию, когда протухнет index.html, то есть в пределах десяти минут. Начиная с 1.7.0 механизм работает.

StudyGe 1.6.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 11 Sep 18:47

Добавлен набор провинций Аргентины — 24 единицы.

Играть: https://eugene-chernyshenko.github.io/studyge/

Состав набора

23 провинции и автономный город Буэнос-Айрес. Natural Earth даёт провинцию и город под одним именем «Буэнос-Айрес» — в наборе они разведены явно: «Провинция Буэнос-Айрес» и «Город Буэнос-Айрес». Это четвёртая коллизия названий подряд, после Алтайского края, Киевской области и округа Колумбия; ловит их всех одна и та же проверка на дубли.

Проекция

Страна тянется от 22° до 55° южной широты, и на Меркаторе Патагония раздувается. Набор рисуется конической проекцией с центром на 65° з. д.

Исправлена вёрстка списка

У Катамарки название региона исчезало целиком: центр «Сан-Фернандо-дель-Валье-де-Катамарка» выдавливал его до нулевой ширины. Теперь усекается имя центра, а название региона видно всегда — проверено по всем 24 строкам.

Проверка

Координатный тест расширен до 96 городов: 93 из 96, аргентинский набор проходит полностью — 8 из 8, включая Ушуаю и Ла-Плату. Площади сверены по 680 полигонам, медиана расхождения 0,7%; у провинций Аргентины — 0,9%, 22 из 23 в пределах 5%.

Административные центры известны у всех 24 единиц.

Всего в игре 15 наборов и 702 региона.

StudyGe 1.5.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 11 Sep 18:18

Добавлен набор статистических регионов Словении — 12 единиц.

Играть: https://eugene-chernyshenko.github.io/studyge/

Откуда взялась геометрия

Ни Natural Earth, ни geoBoundaries этих регионов не содержат: первый знает только общины, второй — ещё и два когезионных региона. Но статистические регионы Словении совпадают с NUTS-3, поэтому в пайплайн добавлен третий источник геометрии — Eurostat GISCO. Русские названия и главные города берутся из Wikidata по коду NUTS.

Набор дополняет уже имеющиеся 212 общин Словении: это другой уровень деления, а не замена.

Что пришлось расширить

  • Поиск административных центров теперь работает с двумя пространствами кодов сразу — ISO 3166-2 и NUTS. Они не пересекаются, так что одна таблица обслуживает оба вида наборов. Без этого у набора был бы 1 центр из 12.
  • Сверка площадей тоже расширена на коды NUTS: иначе проверка честно писала «нет кодов ISO для сверки» и набор оставался непроверенным.

Что нашлось в данных

Wikidata до сих пор зовёт регион SI038 старым именем «Нотраньска-Крашка» — он переименован в 2015 году. В наборе стоит нынешнее «Приморско-Нотраньска».

Проверка

Координатный тест расширен до 88 городов: 85 из 88, словенские регионы проходят полностью — 7 из 7. Площади сверены по 657 полигонам, медиана расхождения 0,7%; у этого набора — 0,6%, 11 из 12 в пределах 5%.

Лицензия

Новый источник требует указания авторства: © EuroGeographics для административных границ. Добавлено в подвал меню и в README.

Всего в игре 14 наборов и 678 регионов.

StudyGe 1.4.0

Choose a tag to compare

@eugene-chernyshenko eugene-chernyshenko released this 11 Sep 18:09

Добавлен набор штатов США — 51 единица.

Играть: https://eugene-chernyshenko.github.io/studyge/

Состав набора

50 штатов и округ Колумбия. Округ не штат, но без него в карте остаётся дырка, которая никому не принадлежит и никуда не кликается — поэтому он включён, а название набора это отражает.

Проекция

Аляска и Гавайи растянули бы любую единую проекцию через весь Тихий океан. Набор рисуется составной проекцией Альберса (geoAlbersUsa), которая выносит их врезками — привычный вид карты США.

Что нашлось в данных

Natural Earth подписывает округ Колумбия «Вашингтон» — тем же именем, что и штат Вашингтон. Это третья коллизия названий подряд, после «Республики Алтай» на Алтайском крае и «Киева» на Киевской области; ловит их всех одна и та же проверка на дубли.

Детализация выбрана по проверке, а не на глаз: при упрощении до 8% нижний Манхэттен уходил в залив, и точка Нью-Йорка оказывалась в 8,7 км от собственного штата. При 25% попадает внутрь — это стоило 70 КБ.

Согласование числительных

Попутно исправлена заметная мелочь: в меню стояло «21 единиц», «23 регионов», «192 стран». Одна строка не может обслужить «1 штат», «2 штата» и «5 штатов», поэтому у каждого набора теперь три формы. Стало «21 единица», «23 региона», «192 страны».

Проверка

Координатный тест расширен до 81 города: 78 из 81, американский набор — 9 из 10. Площади сверены по 645 полигонам, медиана расхождения 0,7%; у штатов США — 0,5%.

Известный промах: Майами оказывается в километре за контуром Флориды, и расхождение остаётся при впятеро более детальной геометрии — дело в самой береговой линии источника.

Всего в игре 13 наборов и 666 регионов.