ZX-Art 06.2019: карты и геокодирование

Рад представить вашему вниманию новый функционал на архиве ZX-Art. Это — очень древняя идея, которая по некоторому несвязанному со спектрумом совпадению получила внезапное развитие и реализацию. Встречайте: раздел геокодирования.




Итак, что появилось:
  • Карта мира со списком стран и количествами объектов
  • Авторы на карте, по странам и по городам
  • Демопати на карте, по странам и по городам
  • Группы на карте, по странам и по городам

Зачем это надо?

Всё это необходимо для того, чтобы можно было быстро найти людей и группы из того же самого города/страны, а также иметь визуальную оценку распространения спектрумистов по странам и регионам. Мне, к примеру, было очень интересно узнать, кто еще действовал в Эстонии до того, как я активно занялся спектрумом, что эти люди релизили, в каких группах состояли. Или, например, увидеть, что спектрум был в Чили, Уругвае, Израиле, Пакистане — в странах, совершенно не ассоциирующихся лично у меня с британским компостроением. Сразу же вылезли всевозможные ошибки в базе. Например, некоторые украинские города оказались в России, некоторые населенные пункты уже давно переименованы, некоторые и не существовали, а были придуманы кем-то не очень аккуратным, кто заполнял базы.
Сразу же вылезла старая проблема: некоторые люди проживают одновременно и в Таллине, и в России. Я даже знаю, как так вышло: у меня в базе было правильно, но в том же ZXDB городов нет вообще, только страны. И если Jaan был там по ошибке помечен, как житель России, то в итоге при синхронизации баз менялась его страна, а город оставался прежним. По этой причине я перестал обновлять подобную информацию в базе при импорте, иначе одну и ту же ошибку можно править по двадцать раз.

На данный момент, я уверен, что ни на одной платформе нет ничего подобного. В наше время работа с картами — совершенно не ракетостроение, и, тем не менее, почему-то эта тема практически нигде не поднимается. Как раз на днях я видел подобный проект на базе DemoZoo, они показывают карту демопати. У них тоже хватает неточностей в базе: тот же DiHalt то в Нижнем Новгороде, то в Великом.

Как это делалось

Мне совершенно не хотелось платить за Google Javascript API, поэтому я решил всё реализовать на движке OpenStreetMap. К нему взята готовая библиотека LeafLet, которая умеет на основе этого движка рисовать маркеры и поддерживает сторонние плагины. Вот тут-то я и прочувствовал всю радость OpenSource. Всё, что в гуглокартах было «из коробки», здесь пришлось по мелочам колхозить и городить: самому делать SVG-маркер, так как штатный не подходит для показа цифр с количеством авторов, самому городить калькуляцию для кластеров, которые «из коробки» показывают число маркеров, а не сумму авторов. Как следствие — самому пришлось городить внешний вид кластеров. Первоначально я рассчитывал взять координаты городов откуда-нибудь с интернета, но, провозившись два часа с разными базами, ни одна из которых не подошла в полной мере, я плюнул и стянул координаты с Google Geocoding API, заплатив за них как за пару бутылок пива.

Что дальше

  • Найти и пофиксить проблемы на карте. Например, Югославия почему-то попала по координатам в Латинскую Америку, а Приднестровье гугл не признает, и координаты для него не возвращает. Это всё надо ручками поправить.
  • Такое ощущение, что на карте сейчас от силы четверть того потенциала, который имеется. Будем разбираться и вносить, огромное количество информации есть на Speccy.info, куда её постоянно без устали вносит tiboh.
  • Продолжается правка информации в базе, устранение дублей и опечаток. Повторяю: текущими темпами этот процесс займет примерно весь нынешний год, но нам торопиться особо некуда.
  • Дальше всё внимание на категориях софта. Нужно показать общие топы, топы за каждый год, топы по категориям, нужны фильтры по железу, по языкам, по форматам — это всё более-менее уже продумано, но требует кучи рабочих часов. После этого архив реально станет удобным к использованию: информация не будет спрятана (как сейчас, и как в других архивах), а будет удобно вынесена на самое видное место. Сейчас ведь как: есть, например, десять тысяч дем, а что посмотреть — непонятно. Какие-то названия вспоминаются, что-то можно нарыть методом проб и ошибок, но ведь насколько было бы проще просто открыть какую-нибудь категорию 4К и увидеть триста лучших интро одним списком, верно?
  • Продолжается работа над исправлением мелких проблем в API. Повторю еще раз: используйте, подвязывайтесь, копируйте, обрабатывайте. Только так мы избежим повторения кризисов прошлого, когда какой-нибудь привычный всем архив падал и месяцами не работал. Это было не раз и не с одним архивом, и это будет повторяться и в будущем. Чем больше будет дублей и альтернатив, тем сильнее будет платформа.

https://zxart.ee/rus/strany/ — посмотреть результат.

8 комментариев

avatar
интересно и наглядно!

тот же DiHalt то в Нижнем Новгороде, то в Великом
и не понятно как поправить :)
avatar
Данные в том проекте взяты с Demozoo, править надо изначально в Demozoo, а потом как-то поспособствовать обновлению их на карте, если вдруг у них это не автоматизировано.
avatar
попробовал на одной поменять. посмотрим, обновление вроде каждый час.
avatar
Я не понял как зайти на проект. Может стоит вставить прямую ссылку?
avatar
Точно, спасибо, ссылку забыл.
zxart.ee/rus/strany/
avatar
В общем разобрался. Но ссылочка всё таки не помешала бы.
Хотя бы в теории, можно ли выводить «действующих» в настоящий спектрумистов?
avatar
В целом можно, для художников и музыкантов некое подобие такого списка есть:
zxart.ee/rus/muzyka/avtory/
zxart.ee/rus/grafika/avtory/
Здесь показаны люди, имеющие опубликованные работы за последние несколько лет. Нечто подобное нужно будет сделать и для общего списка спектрумистов. Проблема в том, что не всегда эти данные достоверны в плане активности. Если кто-то публикует работу, где соавтором указан неактивный спектрумист, то он неминуемо появляется в этом списке.
avatar
Не плохо бы эту информацию привязать к карте (с автоматическим обновлением) и сделать выборку по годам. Тогда получиться именно то что нужно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.