«Яндекс» запустил спецпроект к Олимпийским играм. Дом болельщиков олимпийской команды россии открылся в рио-де-жанейро

14 марта 2020

4 августа в Рио-де-Жанейро открылся Дом Болельщиков Олимпийской Команды России. В торжественной церемонии приняли участие Президент Олимпийского комитета России, член МОК Александр Жуков, почетный Президент ОКР и почетный член МОК Виталий Смирнов, президент Федерации тенниса России, член МОК Шамиль Тарпищев, чрезвычайный и полномочный посол РФ в Бразилии Сергей Акопов, начальник Центрального спортивного клуба Армии, полковник Михаил Барышев, управляющий директор Государственной корпорации Ростех Александр Назаров и старший вице-президент «Гражданских Самолётов Сухого» Евгений Андрачников.

На сцену выходили легендарные ветераны-олимпийцы — четырехкратный олимпийский чемпион по фехтованию Виктор Кровопусков, трехкратная олимпийская чемпионка по фехтованию Галина Горохова, трехкратный олимпийский чемпион по плаванию Евгений Садовый, двукратная олимпийская чемпионка по спортивной гимнастике Елена Замолодчикова, олимпийский чемпион по конькобежному спорту Сергей Фокичев и многие другие.

Открывая церемонию, Президент ОКР Александр Жуков отметил, что открытие Дома Болельщиков Олимпийской Команды России стало доброй традицией.

«Мы все — одна страна, мы — одна команда. Это наш девиз, который появился на Играх в Сочи, и сейчас актуален как никогда. Наши спортсмены, наши болельщики — это действительно одна команда. И в этом Доме мы ждем всех, кто приедет в Рио-де-Жанейро из России, или живет здесь и поддерживает наших атлетов. Таких людей очень много и мы будем рады всех их видеть», — сказал глава ОКР.

«В Доме Болельщиков будут проходить чествования наших спортсменов, которые, мы все надеемся, успешно выступят на Играх XXXI Олимпиады. Здесь можно будет смотреть прямые трансляции соревнований, причем, на русском языке на наших российских каналах. Наверное, это единственное такое место в Бразилии. Здесь будет масса всего интересного, в том числе встречи с нашими великими спортсменами. Такой кусочек России на бразильской земле. Спасибо, что вы пришли сегодня и милости просим на протяжении всех Игр. Это ваш Дом!» — завершил свое выступление Александр Жуков.

«Несмотря на все катаклизмы, которые сотрясают сегодня олимпийское движение, мы обречены на успех. Все, что происходило на протяжении последних месяцев вокруг наших спортсменов, еще крепче сплотило команду. Мы всегда чувствовали поддержку болельщиков, а сейчас чувствуем ее как никогда раньше. Огромное вам спасибо!», — заявил президент Федерации тенниса России (ФТР) Шамиль Тарпищев .

«Я понимаю, как тяжело было нашим спортсменам в этом году готовиться к соревнованиям. Многие находились в подвешенном состоянии. Но у хорошего атлета в такой ситуации появляется спортивная злость. Пусть все пережитые, но не выплеснутые до конца эмоции создадут эмоциональный фон, который позволит ребятам выступить как можно лучше. И, конечно, с такой командой, которая работает в Доме Болельщиков и которая будет посещать его, мы обречены на успех. Пусть нам сопутствует удача!», — добавил президент ФТР.

Чрезвычайный и полномочный посол РФ в Республике Бразилия Сергей Акопов от имени сотрудников посольства и генерального консульства в Рио-де-Жанейро поздравил организаторов Дома Болельщиков с его открытием.

«На мой взгляд, это один из лучших, если не лучший дом, который открылся на Играх в Рио. Очень важно, что есть место, где все болельщики смогут собраться и поболеть за наших спортсменов. Давайте пожелаем российским атлетам удачи и успехов!», — отметил посол.

«Быстрее, выше, сильнее! — этот девиз в полной мере относится и к нашим олимпийцам, и к нашим выдающимся авиаконструкторам, инженерам и пилотам. Большой спорт в России, как и знаменитая история авиационно-космического комплекса, — это то, чем гордится наша страна. На Олимпиаде в Рио-де-Жанейро мы представляем проект SportJet, который объединяет лучшее в спортивной медицине и промышленном дизайне. Как результат, нам удалось создать первый в мире самолет для профессиональных спортивных команд. Это первое «золото» России на Олимпиаде!», — заявил президент АО «Гражданские самолеты Сухого» Илья Тарасенко .

Начальник Центрального спортивного клуба Армии Михаил Барышев назвал сегодняшний день «историческим для ЦСКА».

«Мы впервые стали партнерами Дома Болельщиков Олимпийской команды России. Хочу от имени всех армейцев поблагодарить руководство Олимпийского комитета России за столь высокое доверие. Из стен ЦСКА вышли 579 олимпийских чемпионов, доказав, что ЦСКА — настоящий спортивный щит Отечества».

Максим Лазаренко , вице-президент по маркетингу пивоваренной компании «Балтика», которая является одним из самых давних и активных партнеров ОКР, отметил, что «спорт — это не только победы, но и дорога к ним».

«Мы поддерживаем нашу команду всегда: вместе радуемся ее победам и триумфам, вместе болеем за российских спортсменов. Настоящие партнеры и болельщики должны быть рядом в любой ситуации».

«Мы благодарны каждому болельщику, благодарны всем, кто верит в сборную России, кто поддерживал и продолжает поддерживать наших атлетов в столь трудное для них время. Постараемся создать все условия, чтобы болельщики чувствовали себя в Рио как дома, а наша олимпийская команда чувствовала поддержку болельщиков», — добавил директор Дома Болельщиков Олег Румянцев .

В конце церемонии над Домом Болельщиков под звуки государственного гимна был поднят российский флаг.

Дом Болельщиков в Рио создан по инициативе Олимпийского Комитета России при поддержке Акционерного Общества «Гражданские самолеты Сухого», пивоваренной Компании «Балтика», корпорации «Ростех» и Центрального Спортивного Клуба Армии.

Дом Болельщиков в Рио расположен на легендарном пляже Копакабана в непосредственной близости от Форта Копакабана по адресу Площадь Полковника Франко, д. 2.

С веранды Дома гости могут не только любоваться видом на Атлантический океан, но и почувствовать себя в эпицентре спортивных событий — в непосредственной близости пройдут соревнования по триатлону, пляжному волейболу и плаванию на открытой воде.

В экспозиции Дома представлены современная экипировка и оборудование, а также исторические экспонаты с автографами наших знаменитых атлетов, представленные Государственным музеем спорта, Центральным спортивным клубом Армии (ЦСКА) и самими спортсменами. Здесь каждый болельщик сможет «прикоснуться» к большому спорту и сделать множество фотографий с экипировкой и снаряжением, которых нет в фитнес-центре или спортивном магазине.

Посетители Дома могут посмотреть на мир через фехтовальную маску и взять в руки саблю серебряного призера Олимпийских игр по фехтованию Софьи Великой, попробовать выполнить упражнение с лентой и булавами двукратной олимпийской чемпионки по художественной гимнастике Евгении Канаевой и даже подержать в руках тот самый мяч, с помощью которого мужская команда по волейболу в незабываемом по накалу страстей финале олимпийского турнира в Лондоне нанесла поражение сборной Бразилии.

На лужайке Дома его гости могут следить на большом экране за прямыми трансляциями соревнований и получать всю необходимую информацию о выступлении российских атлетов.

Во время Дней открытых дверей Дом Болельщиков станет ярким примером того, как спорт объединяет нации. Программа мероприятий будет выстроена так, чтобы каждый посетитель смог не только почувствовать на себе традиционное русское гостеприимство, но и ближе познакомиться с российским спортом и его звездами.

Юрий Бутнев, Андрей Голованов, Сергей Киврин, Наталья Пахаленко (фото),Служба информации ОКР

В церемонии открытия приняли участие президент Олимпийского комитета России, Член МОК Александр Жуков, почетный президент ОКР и член МОК Виталий Смирнов, президент Федерации тенниса России, член МОК Шамиль Тарпищев, чрезвычайный и полномочный Посол РФ в республике Бразилия Сергей Акопов, начальник Центрального спортивного клуба Армии, полковник Михаил Барышев, управляющий директор Государственной корпорации Ростех Александр Назаров и старший Вице-президент по продажам АО «Гражданские Самолёты Сухого» Евгений Андрачников. В церемонии также приняли участие легендарные спортсмены-олимпийцы, такие как 4-кратный Олимпийский чемпион по фехтованию Виктор Кровопусков, 3-кратная Олимпийская чемпионка по фехтованию Галина Горохова, 3-кратный Олимпийский чемпион по плаванию Евгений Садовый, 2-кратная Олимпийская чемпионка по спортивной гимнастике Елена Замолодчикова, Олимпийский чемпион по конькобежному спорту Сергей Фокичев и многие-многие другие.

Открывая церемонию, президент Олимпийского Комитета России Александр Жуков отметил, что открытие Дома Болельщиков Олимпийской Команды России стало доброй традицией. «Мы все — одна страна, мы — одна команда. Это наш девиз, который появился на Играх в Сочи, и сейчас актуален как никогда. Наши спортсмены, наши болельщики — это действительно одна команда. И в этом Доме мы ждем всех, кто приедет в Рио-де-Жанейро из России или живет здесь и поддерживает наших атлетов. Таких людей, мы знаем, очень много и будем рады их видеть», — отметил Александр Жуков. «В Доме Болельщиков будут проходить чествования наших спортсменов, которые, мы все надеемся, успешно выступят на Играх XXXI Олимпиады. Здесь можно будет смотреть прямые трансляции соревнований, причем на русском языке на наших российских каналах. Наверное, это единственное такое место в Бразилии. Здесь будет масса всего интересного, в т.ч. встречи с нашими великими спортсменами. Такой кусочек России на бразильской земле. Мы будем рады видеть здесь как можно больше наших гостей. Спасибо, что вы пришли сегодня и милости просим на протяжении всех Игр. Это ваш Дом!» — завершил свое выступление Жуков.

«Несмотря на все катаклизмы, которые творятся сегодня в спортивном движении, мы все-таки, не взирая ни на что, обречены на успех. Все то, что происходило на протяжении последних месяцев вокруг наших спортсменов, еще крепче сплотило нас. Мы всегда чувствовали поддержку болельщиков, а сейчас мы чувствуем ее как никогда раньше. Поэтому я хочу сказать огромное спасибо прежде всего болельщикам», — заявил Шамиль Тарпищев, президент Федерации тенниса России. «Я понимаю, как тяжело было нашим спортсменам в этом году готовиться к соревнованиям. Многие были в «подвешенном» состоянии. Но у хорошего спортсмена в такой ситуации только появляется спортивная злость. Пусть все эмоции, которые были пережиты, но не выплеснуты до конца, создадут тот эмоциональный фон, который позволил бы выступить как можно лучше. И, конечно, с такой командой, которая работает в Доме Болельщиков и которая будет посещать его, мы обречены на успех. И пусть удача сопутствует нам!» — подчеркнул он.

На церемонии выступил Чрезвычайный и полномочный посол РФ в Республике Бразилии Сергей Окопов, который поздравил всех, кто участвовал в создании Дома Болельщиков, от имени всех сотрудников посольства России в Бразилии и генерального консульства в Рио-де-Жанейро. «На мой взгляд, это один из лучших, если не лучший Дом, который открылся на Играх в Рио. Очень важно, что мы имеем место, где все болельщики, и российские, и местные, смогут собраться вместе и направить свой душевный порыв на поддержку наших спортсменов. Я уверен, что импульс, который будет исходить из Дома, поможет им одержать много побед на Играх. Давайте пожелаем им огромных успехов и будем за них болеть», — отметил посол.

Как заявил Евгений Андрачников, старший вице-президент акционерного общества «Гражданские самолеты Сухого», «Сегодня в Доме Болельщиков мы вместе с Олимпийским Комитетом России представили новый уникальный проект, и для нас, как для комерсантов, это огромная привилегия. Но это вторично. Для нас, как для граждан России, стать частью российской Олимпийской семьи — это большая гордость… Мы уверены, что наши олимпийцы в Рио выступят очень достойно и покажут все, на что они способны…»

По словам Начальника Центрального спортивного клуба Армии Михаила Барышева, «сегодня для ЦСКА исторический день. Мы впервые стали партнерами Дома Болельщиков Олимпийской команды России. Хочу от имени всех армейцев поблагодарить руководство Олимпийского комитета России за столь высокое доверие. Из стен ЦСКА вышли 579 олимпийских чемпионов, доказав, что ЦСКА — настоящий спортивный щит отечества. Желаю всем удачи, а особенно нашим спортсменам».

«Мы благодарны каждому болельщику, благодарны всем тем, кто верил в Команду, кто поддерживал и продолжает поддерживать наших атлетов в такое напряженное для них время. Для нас очень важно сейчас создать все условия, чтобы болельщики чувствовали себя в Рио ка дома, а наша Команда чувствовала поддержку болельщиков, — отметил директор Дома Болельщиков Олег Румянцев.

В завершение церемонии над Домом Болельщиков был поднят российский флаг.

Дом Болельщиков в Рио создан по инициативе Олимпийского Комитета России при поддержке Акционерного Общества «Гражданские самолеты Сухого», пивоваренной Компании «Балтика», корпорации «Ростех» и Центрального Спортивного Клуба Армии.

Дом Болельщиков в Рио расположен на легендарном пляже Копакабана в непосредственной близости от Форта Копакабана по адресу Площадь Полковника Франко, д. 2.

С веранды Дома гости смогут не только любоваться видом на Атлантический океан, но и почувствовать себя в самом эпицентре спортивных событий — в непосредственной близости о Дома пройдут соревнования по триатлону, пляжному волейболу и плаванию на открытой воде.

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

В экспозиции Дома будут представлены современная экипировка и оборудование, а также исторические экспонаты с автографами наших знаменитых атлетов, представленные Государственным музеем спорта, Центральным спортивным клубом армии (ЦСКА) и самими спортсменами. Здесь каждый болельщик буквально сможет «прикоснуться» к большому спорту и сделать множество необычных фотографий с экипировкой и снаряжением, которых не встретишь в фитнес-центре или спортивном магазине. Посетители Дома смогут посмотреть на мир через фехтовальную маску и взять в руки саблю серебряного призера Олимпийских игр по фехтованию Софьи Великой , попробовать выполнить упражнение с лентой и булавами двукратной Олимпийской чемпионки по художественной гимнастике Евгении Канаевой, и даже подержать в руках тот самый мяч, которым мужская команда по волейболу в незабываемом по накалу страстей финале олимпийского турнира в Лондоне-2012 нанесли поражение команде Бразилии.

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

Все желающие смогут посетить Дом Болельщиков во время Дней открытых дверей. Дом Болельщиков станет ярким примером того, что спорт должен объединять нации. Программа мероприятий в эти дни будет выстроена так, чтобы каждый гость смог не только почувствовать на себе традиционное русское гостеприимство, но и ближе познакомится с российским спортом и его звездами.

За дополнительной информацией, а также для аккредитации в Медиа-центре Олимпийской Команды России, открытом в Доме Болельщиков в Рио, необходимо заполнить форму по ссылке или обратиться к Анастасии Григорьевой по электронной почте [email protected] или по телефону +7 903 549 01 94

К летней Олимпиаде 2016 года в Рио-де-Жанейро Яндекс подготовил сразу несколько проектов. В том числе — «Карту болельщика ». Вы могли отметить свой город на карте, которая отображалась на главной странице Яндекса. Чем больше отметок от жителей города мы получали, тем ярче горел его огонёк.

На одном из Я.Субботников руководитель группы интерфейсов главной страницы Яндекса Иван Карев объяснил, как создавалась эта карта.

Что получилось? В итоге запустили карту ночью накануне. Со страхом, но запустили, и она постепенно начала жить своей жизнью. Мы в нее залили примерно 1000 точек без голосов — просто чтобы было какое-то начальное состояние. Дальше люди потихоньку начали голосовать. Вначале темп был примерно 20 тыс. голосов в час, и так 3–5 дней. Потом постепенно снижалось, и к концу Олимпиады было порядка 2 млн голосов, сколько-то лайков в соцсетях. Мы с ней больше ничего не делали, она работала и все. Была процедура перегенерации раз в 10 минут. Она раскладывала, а мы ничего не делали, только смотрели. Успех.

— Меня зовут Иван Карев. В Яндексе я делаю главную страницу и разные спецпроекты. Хочу рассказать об одном из них. Это такая история из жизни разработчиков — о том, какая еще бывает работа.

Спецпроекты на Яндексе, может, вы видели. Можно зайти на главную страницу, нажать на логотип, у вас потом в полном экране что-нибудь откроется и будет красиво показываться. Они работают на десктопах, тачах, планшетах по-разному, может что-то сразу показываться. Они специфические. Кто-то видел спецпроект для карты Олимпиады в Рио? А кто-то видел спецпроект про Гагарина? Не очень много. Рассказ будет примерно про это.

Про нее ничего не было понятно, это был концепт. О нем было известно, что он должен быть красивым, что бы в это слово ни вкладывалось. Кроме того, он должен был отображать реальные данные людей — можно было сделать по-другому, но мы хотели сделать хорошо. И он должен был работать на десктопах, тачах, планшетах, разных девайсах. Возможно, даже с разной логикой.

Первый вопрос был в том, что мы не знаем, что мы хотим сделать. Должно быть красиво, должна быть карта с поддержкой. Обычно, когда приносят макет, вы смотрите, примерно оцениваете функциональность и думаете, как это можно сделать. А здесь наоборот: к нам пришли дизайнеры и сказали: «А что вы можете сделать?». Мы сказали: «Если вы хотите это — можно так». Мы бросали мячик туда-обратно, долго смотрели разные демки, показывали, что мы умеем, что можно сделать быстро, что не быстро. Общались, спрашивали, за какое-то время договорились.

Что мы могли предложить дизайнерам в качестве реализации? У нас есть всякие картографические движки. Яндекс.Карты — вообще движок про карты. Есть движки, где что-то можно рисовать на карте. Их очень много, я привел Carto, потому что у нас он кем-то был упомянут и рассматривался.

Либо есть просто JS-библиотеки, где можно вручную рисовать все, что хочешь. Принципиально svg/canvas — в зависимости от дизайна можно было выбрать либо то, либо другое. Есть куча готовых решений, куча демок. Мы примерно отсматривали, что можно было взять. Шла довольно интересная работа, но к сожалению, было не очень много времени, приходилось укладываться.

Что в итоге получили? Был такой концепт. Вот карта, она вроде бы плоская, на ней есть кружочки разного размера и прозрачности. Тут можно с помощью разных вещей это реализовывать.


Потом был такой концепт. На движке Carto реализована карта болельщиков футбольного клуба «Реал Мадрид», показывающая, как они голосуют в Твиттере. Тоже плоская карта, здесь сильно больше точек, какие-то градиенты с прозрачностью. Вроде похоже на canvas, может, svg, пока тоже не очень понятно.


Пошли смотреть, что есть у нас на Яндекс.Картах. В них есть модуль Heatmap, даже была такая демка собрана, тоже карта с подложкой, на ней много точек, они разного цвета. Что-то, кажется, тоже можно из этого попробовать сделать.


Потом был такой дизайн. Здесь точек гораздо больше, у них какая-то прозрачность. Это тоже на уровне концепта было.


Даже такую штуку нашли, прикольная демка из уроков Proper GL (название может быть неточным — прим. ред.), где можно взять настоящую Землю со всякими текстурами, красивыми шейдерами, она круто вращается. Тоже хотелось, очень красиво. Всем очень нравилось, но мы всех убеждали, что нет, это мы так показали, но делать так не будем — далеко не все компьютеры могут вообще это выдержать, тяжелая штука.


В итоге родился примерно такой макет, один из таких концептов. Плоская карта, где есть специальная раскрашенная подложка и есть бурление в виде точек, они разноцветные, переливающиеся друг в друга. В тот момент пришло понимание, что перед нами скорее уже не svg, а canvas.

От карт тут то, что текущая точка нахождения человека привязывалась к этой карте. Показано, где ты, а где кто-то еще.

В итоге мы решили делать это на Яндекс.Картах, используя модуль Heatmap. Мэпа, уже тогда готовая в демках такого, конечно, не умела делать, но мы с разработчиками пообщались и поняли, что это возможно. Стали пилить дальше.

Вот начало. Нам надо было сделать подложку.


На самом деле это творческое занятие. Подложка тоже бывает разная. Здесь она плоская, всего двух цветов. Россия выделена одним цветом. Есть территориальные границы государств в Яндекс.Картах, есть модуль регионов, который рисует эту подложку в виде svg. Там можно выбрать степень детализации, в зависимости от нее svg будет весить больше или меньше. При этом она довольно долго рисуется, и каждый раз ее загружать было довольно странно, если учесть, что подложка одна и та же. Плюс мы решили, что нужны не все подряд уровни зумов, а только какие-то верхние. Так что мы внезапно сделали то ж самое, но только на тайлах. Карта России серого цвета на черном фоне.

Можно взять модуль полигонов, модуль регионов, сделать большой скриншот, и через простой Image Magic разрезать все на тайлики, которые будут точно так же отображаться.

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

Может, я и параноик, но вот первый вопрос, который пришел мне в голову: если нам отдать наружу какую-то штуку, которая умеет принимать координаты и по ним что-то рисовать, то примерно через полчаса у нас будет поперек всей карты какое-нибудь слово «Привет» написанное с помощью геокоординат. Это легко делается. И такая мысль засела, и хотелось сделать все так, чтобы у нас не было необходимости вручную отсматривать все, что на этой карте происходит. Поэтому возник и вопрос, как сделать модерацию, причем времени было не очень много. Конечно, не хотелось заново что-то поднимать и отслеживать по ночам, что там происходит. Тяжело было.

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

В итоге после каких-то обдумываний у нас появилась следующая архитектура. Мы решили взять большой список точек, назвали его белым списком. Речь идет про те места, где люди в принципе могут голосовать. Мы будем включать только какие-то точки. Вопрос только один — как их взять. Естественно, их должно быть много, но мы ничего другого не включаем. Каждый клик по карте ищет ближайшую точку из белого списка, и какой-то счетчик увеличивается. Была большая база со всеми возможными координатами точек. Мы увеличивали счетчики и, чтобы рисовать на карте, показывали это в простой логарифмической шкале. Так что некие накрутки и перепады были не видны.

Вопрос, как сделать белый список точек. У нас же люди на главную страницу и так заходят — давайте посмотрим на эти заходы и из них возьмем те геолокации и координации, которые есть в перечисленных запросах.

Есть два типа координат. Координаты первого типа вычисляются по IP с привязкой городов. Мы можем взять все заходы, координаты, выбрать какой-то уровень, например всё до уровня города, а дальше у каждого города по его названию и ID взять соответствующие ему географические координаты, геокодировать их и получить список заранее. Он не очень большой. У нас городов в России и округе не миллионы, а тысячи, десятки тысяч.

Второе — самое интересное. Требовалось брать реальные координаты от пользователей. То, что у человека разрешено как геолокация. Можно попробовать эти данные собрать, как-то структурировать и сгруппировать. При кликах, когда человек говорил, что хочет поддержать сборную, мы спрашивали в телефоне геолокацию — на мобилке она почти везде есть — и запросы отправлялись уже с правильным местоположением. Она уже относительно точная, и происходить это могло где угодно: в чистом поле, вдоль дорог, на дачах.


Вот то, что мы получили по геокодированию. Если кто-то помнит географию и может примерно оценить, где заканчивается Россия, то она заканчивается ровно там, где начинаются желтые точки. На самом деле здесь подсвечена Европа. Так получилось, что в России плотность городов поменьше, чем в Европе. Здесь мы брали координаты с точностью до города. И у всех точек радиус единичный. Получается, в России голосовать негде, а какие-то люди в Европе и в Турции — мы там внезапно тоже есть — они как будто начнут составлять большую часть нашего электората. Не очень правильная картина. Поэтому все надежды были на то, что координаты нам дадут что-то хорошее.


Так мы получали координаты по географической сетке. Есть координаты, мы их округляем до какого-нибудь знака после запятой — можем брать сетку в один градус, в полградуса, в одну десятую градуса. Перед вами простой код на MapReduce, который координаты в кластера складывает. В этом его прелесть. Сколько бы у вас ни было координат, можно с помощью простых параллельных вычислений их все сгруппировать и получить. У вас есть квадрат, вы все квадраты сжимаете в один уголок, и количество точек в этом уголочке растет в зависимости от того, сколько точек было в этом квадрате. Получается сетка. Вопрос в том, какой шаг для сетки вы берете. Можно брать с точностью до градуса, до одной десятой градуса и т. д.

Чем точнее координаты вы получаете, тем больше у вас точек.


Получилось нечто похожее на то, что есть в России. Здесь видно облако точек где-то в центральной части, в районе Москвы, Подмосковья. Сочи очень длинное. И дальше по Сибири, Питер и немножко Европа. Уже больше похоже на правду.

Эта картинка получена путем кластеризации по одному градусу. Точек получается очень много, и все точки сразу нельзя отобразить на карте. Решили выбрать какой-то порог. Отрезали так, чтобы суммарное число оставшихся точек было порядка 5000.

Мы потеряли довольно много информации, просто отбросив некое количество точек, у которых по одному-два значения в яркости.

Если взять больше точек, получится следующая картинка.


Здесь с помощью Heatmap нарисована карта. Группировка та же самая, но отображено уже 50 тыс. точек. Видно, что картинка получается более живая, в ней много всего, вот все наши люди, вот они ровно по всей России. Все здорово — кроме двух проблем. В первую очередь, у нас 50 тыс. точек. Не каждый браузер справится с такой нагрузкой, и получив такую красивую картинку, отдавать ее всем мы бы не стали. Плюс это какое-то приличное число данных, передаваемое по сети.

Второе. Картинка получена методом кластеризации по сетке, и эта сетка видна. Мы от нее не избавимся никак. Мы можем уменьшать эту сетку, но тогда точек будет еще больше. Получается нерешаемая дилемма. Понятно, чт в чистом виде эта штука использоваться не может.

В итоге пришли к другой схеме. Мы использовали не один подход, а их комбинацию, кластеризацию. Взяли большое количество точек, порядка миллиарда. Это просто заходы на главную страницу, откуда мы взяли только координаты. Там нет ничего. Нам нужны были просто факты заходов в штуках.

Дальше применили кластеризацию по сетке, получили из миллиардов всего лишь сотни тысяч. Можно было больше или меньше, не принципиально. Дальше их надо было сгруппировать в кластера с помощью какого-то хитрого алгоритма. Есть целая теория, кластеризация, не буду подробно рассказывать. Есть алгоритмы, которые позволяют по массивам точек с координатами выделить их кластера, центры кластеров. Но у них много разных ограничений, они не готовы переварить слишком большое количество точек. Такое можно сделать с помощью локальных данных, а не распределенными вычислениями. Под распределенные штуки эти алгоритмы не найти, а делать их заново тоже не хотелось. Поэтому выбрали тот, который смог это сделать: MiniBatchKMeans. Это метод ближайших соседей с доработками, позволяющий на сотнях тысяч точек за вменяемое время добиться кластеризации до какого-то количества, которое мы в принципе можем показать на клиенте. Мы выбрали около 10 тыс. точек.


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


В итоге мы получили сначала список из координат, а затем, объединив его со списком из городов, общую большую картинку. Вот отличия. Это все возможные точки, где человек в принципе мог голосовать. Мы рассчитывали, что люди, которые будут голосовать с главной страницы Яндекса, и так на ней находятся. Мы просто взяли длительный период времени и все возможные варианты перебрали. Вряд ли там бы появился кто-то новый. Были даже в самом Рио, в Америке, в Австралии. Просто их было мало. По крайней мере, все единичные точки мы получили в белом списке, а дальше вопрос состоял в том, как люди будут голосовать.

Следующая задача — сделать так, чтобы точки красиво отображались на карте. Heatmap для этого напрямую не предназначен. Он для других вещей — чтобы показывать тепловые карты. Там вес точек влияет на цвет. Нам нужно было чуть-чуть другое. Плюс нам хотелось делать точки больше и меньше в зависимости от их веса. Еще к нам поступило огромное количество пожеланий от дизайнеров про то, как это должно выглядеть с точки зрения градиентов, переливания цветов. На самом деле это не решалось никакими настройками Heatmap. Мы просто взяли сырые исходники и пошли их править. Ушло несколько дней, чтобы въехать, разобраться, поменять все что можно, переписать, закомментировать, переписать обратно с разными сайд-эффектами под разные браузеры. Не буду рассказывать. Если кому-нибудь интересно, я привел ссылку на исходники. Из больших вещей мы сделали только то, что кисть, которая рисует сам градиент, увеличивалась в зависимости от веса. Плюс градиент был с немного другими настройками.


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

Для запуска нам нужно было убедиться, что карта действительно может работать у людей. Методом научного тыка мы попробовали ее на разном количестве девайсов, в основном на планшетах, потому что там были основные проблемы, ну и на десктопах. Вывели какое-то примерное приближение, что на десктопах можно показывать не больше 5000 точек, на планшетах — не больше 3000, а на тачах — не больше 1000. Примерно таким был план, он давал приемлемый результат. Понятно, что план не самый лучший, но он работал, и не было особенного запаса что-то с ним делать.

Нам было важно, чтобы карта работала у всех, чтобы можно было делать какие-то деградации в зависимости от текущей загруженности страницы. Но мы так делать не стали.

Мы постоянно про это вспоминали. Проблема была особенно заметна на тачах, на телефонах. Смысл в том, что карта сразу показывалась на странице, не за кликом. Люди, проскроллив буквально один или два экрана, видели карту, и получалось, что они видели ее довольно часто, в каждый свой заход. И если бы там был большой лаг, а он там был, то они бы видели пустое место. Потом бы загружались картинки с фоном, потом сами точки, потом модуль карт, потом точки рисовали бы Heatmap. В общем, очень много времени. Плюс этих точек было не очень много, и картинка там получалась довольно куцая.

Единственное, что мы придумали: фильтровать данные, как-то ранжировать их в том месте, где мы их готовим. У нас существовала большая база, раз в десять минут мы готовили из нее JSON с точками, где были голоса. Там, где были данные, мы могли что-то сделать. Проблема состояла в том, что код был написан на Perl. У нас бэкенд пишут на Perl, а в нашем случае речь шла про Heatmap на JS на клиенте. Как-то совсем не стыковалось, пока один из наших коллег за одну ночь не переписал Heatmap на Perl. Придя один раз с утра, мы с удивлением обнаружили, что у нас уже есть готовый вариант. Понадобился денек-другой, чтобы его отполировать, настроить обновление, закачку, раскатывание по серверам.

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


Еще это дало нам точно такой же тайл, только растянутый на весь экран. Когда загружалась карта на десктопе, мы показывали фон, потом загружали данные, API Карт, рисовали Heatmap. В общем, было довольно долго и некрасиво. Вместо этого мы взяли просто нулевой тайл, растянули его под размер карты. Он был какой-то размазанный, но когда подгружалась карта, она как будто делала изображение чуть более резким, там все появлялось, и переход получался более плавным, более дружелюбным для пользователя.

Вроде бы мы все проблемы решили: с десктопом, с тачами, все круто.


Была еще одна история. В доме болельщиков в Рио висело две плазмы, где все смотрели. Там были наши голоса. Говорили, что спортсмены очень радовались, что их поддерживают. Там были совершенно разные города: неизвестные, малые и большие. Для ее отрисовки была отдельная версия. Возникала проблема: у двух телевизоров разные разрешения, DPI и т. д. Пришлось туда отдать карту, которая в GET-параметры принимает настройки, и можно было на месте подвигать размеры шрифтов, все что угодно, чтобы она там рисовалась. Потому что мы сидели здесь, а ребята были в Рио с разницей в восемь часов, что очень неудобно. Мы дали инструкции, они всё сделали.


Что получилось? В итоге запустили карту ночью накануне. Со страхом, но запустили, и она постепенно начала жить своей жизнью. Мы в нее залили примерно 1000 точек без голосов — просто чтобы было какое-то начальное состояние. Дальше люди потихоньку начали голосовать. Вначале темп был примерно 20 тыс. голосов в час, и так 3–5 дней. Потом постепенно снижалось, и к концу Олимпиады было порядка 2 млн голосов, сколько-то лайков в соцсетях. Мы с ней больше ничего не делали, она работала и все. Была процедура перегенерации раз в 10 минут. Она раскладывала, а мы ничего не делали, только смотрели. Успех.


Демку с глобусом мы все-таки сделали. Это произошло гораздо позже и чисто ради эксперимента. Взяли наш тайл, спроецировали его в нужную проекцию, натянули на глобус WebGL, и оно тоже завелось. При желании можно было и его включить, но он получился довольно тяжелым, мы его делали так, для себя. Для развлечения.

Вы можете помочь и перевести немного средств на развитие сайта

Накануне Олимпиады в Рио в приложении Яндекс появился блок «Дай пять команде России»

С его помощью российские болельщики могут поддержать членов сборной.

Скриншот с сайта mobile.yandex.ru

Ещё один способ заявить о поддержке — отметить свой город на специальной тепловой карте мира . Чем больше людей нажмут на кнопку «Зажечь!», тем ярче будет метка города.

Чтобы болельщикам было удобнее следить за ходом Игр, Яндекс запустил сайт с расписанием соревнований, последними новостями и медальным зачётом. На страницах состязаний есть списки фаворитов, история олимпийских выступлений российских атлетов в каждой дисциплине и ссылки на онлайн-трансляции.

Узнать о последних завоёванных медалях и ближайших соревнованиях можно и на главной странице Яндекса — там появился специальный блок, посвящённый Играм. Пользователи приложения Яндекс будут получать пуш-уведомления о наградах, завоёванных российскими спортсменами. Чтобы в приложении включились уведомления и блок с ладошкой, его нужно обновить до последней версии, сообщили «Югополису» в пресс-службе компании «Яндекс».

Для проведения соревнований в рамках программы XXXI летних Олимпийских Игр 2016 в Рио-де-Жанейро будут использованы 18 уже существующих спортивных объектов, часть из которых будут реконструированы. Специально к Олимпиаде построят девять новых постоянных и возведут восемь временных спортивных арен.

Основная часть олимпийских объектов расположена в границах Рио-де-Жанейро и сосредоточена в четырёх кластерах — Барра (Barra), Копакабана (Copacabana), Деодоро (Deodoro) и Маракана (Maracanã).

Сердцем и центральной зоной Рио 2016 станет Барра, где помимо 15 спортивных объектов расположатся Олимпийская деревня и Олимпийский парк.

В Копакабана пройдут соревнования по гребле, парусному спорту, триатлону, пляжному волейболу, плаванию на открытой воде.

Кластер Деодоро, находящийся в одноименном районе Рио-де-Жанейро, примет соревнования по конному спорту, стрельбе, фехтованию, пятиборью.

Крупнейшим спортивным сооружением, задействованным во время проведения Игр станет Олимпийский стадион «Марио Филью» вместимостью 78 000 зрителей, больше известный как «Маракана», где пройдут церемонии открытия и закрытия, а также финальный матч олимпийского футбольного турнира.

Самбадром, расположенный в зоне Маракана, станет местом проведения соревнований лучников. Здесь же состоится старт и финиш марафонских забегов у мужчин и женщин.

Впервые в олимпийской истории легкоатлетические соревнования пройдут не на главном стадионе. Королеву спорта примет возведённый в 2007 году Стадион Жоао Авеланжа.

Помимо Рио-де-Жанейро ещё к четырём бразильским городам будет приковано внимание болельщиков — в Белу-Оризонти, Сальвадоре, Сан-Паулу и Бразилиа пройдут матчи по футболу в рамках олимпийского турнира.

Олимпийский стадион «Маракана» (Estadio Olímpico do Maracanã)

Стадион «Марио Филью» (порт. Estádio Jornalista Mário Filho), известный как «Маракана» — первый по вместимости футбольный стадион Бразилии, в прошлом — крупнейший в мире. Расположен в Рио-де-Жанейро. Домашняя арена клубов «Фламенго» и «Флуминенсе», а также сборной Бразилии.

На Маракане пройдут церемонии открытия и закрытия Олимпийских и Паралимпийских Игр Рио 2016, а также финальные матчи в рамках олимпийского турнира по футболу.

Реконструкции: 1999–2000, 2005–2007, 2010–2013;

Вместимость: 78 838 зрителей;

Рекорд посещаемости: 199 854 зрителей (Бразилия — Уругвай (1–2), 16–06–1950);

Архитекторы: Waldir Ramos, Raphael Galvão, Miguel Feldman, Oscar Valdetaro, Pedro Paulo B. Bastos, Orlando Azevedo, Antônio Dias Carneiro (1948), Fernandes Arquitectos Associados (2010);

Соревнования: Футбол

Олимпийская деревня (Olympic Village)

Олимпийская деревня расположена в Барра ди Тижука столицы Игр. Официальное открытие объекта состоялось 16 июня 2016 года. Во время проведения Олимпийских и Паралимпийских игр 2016 года деревня примет более 28 тысяч спортсменов, волонтеров и официальных лиц. Комплекс включает в себя 31 многоэтажное здание, более 3600 жилых помещений, которые будут оснащены музыкальными инструментами, видеоиграми, бассейнами, теннисными кортами, а также кабинетами психологов и косметологов.

Для оборудования жилых помещений мебелью и всем необходимым закуплены 80 тыс. кресел, 70 тыс. столов, 29 тыс. кроватей, 60 тыс. вешалок для одежды, 6 тыс. телевизоров, 10 тыс. смартфонов.

Олимпийская деревня Рио-2016 станет самой большой за всю историю Игр. После проведения Олимпиады-2016 деревня превратится в обычный жилой комплекс.

Олимпийский стадион Жоао Авеланжа (Estádio Olímpico João Havelange)

Олимпийский стадион Жоао Авеланжа, известный как « Энженьян» (порт. Engenhão), расположен в Рио-де-Жанейро в предместье Рио Энженьо-ди-Дентру . Является домашней ареной футбольного клуба «Ботафого Фламенго ». Во время проведения Олимпийских и Паралимпийских Игр 2016 предназначен для проведения соревнований по лёгкой атлетике.

Сроки строительства: 2003 – 2007 гг;

Стоимость проекта: $192 млн;

Вместимость: 46 931 зрителей;

Соревнования: Легкая атлетика

Спортивный комплекс «Мараканазинью» (Maracanãzinho Gymnasium)

Спортивный комплекс «Мараканазинью » (оф . название Спортивный комплекс Жилберту Кардозу ) расположен в районе Маракана в бразильском Рио-де-Жанейро. Основное назначение комплекса — проведение соревнований на крытых аренах в игровых видах спорта. «Мараканазинью » принимал крупнейшие мировые турниры по баскетболу, волейболу, мини-футболу и дзюдо, соревнования Панамериканских игр 2007 года.

В рамках программы Олимпийских игр 2016 комплекс примет волейбольный турнир.

Реконструкции: 1971, 2003–2007;

Вместимость: 11 800 зрителей (12 600 в соревнованиях по мини-футболу);

Соревнования: Волейбол

Водный центр им. Марии Ленк (Maria Lenk Aquatic Center)

Водный центр имени Марии Ленк расположен в Олимпийском парке в Барра-да-Тижука. Построен в 2004 году к Панамериканским играм 2007 года и соответствует всем параметрам ФИНА. Вместимость центра — 5300 зрителей с возможностью увеличения до 8000 зрителей. Комплекс носит имя первой женщины-латиноамериканки, принявшей участие в Олимпийских играх.

Во время проведения Олимпийских Игр 2016 в Рио-де-Жанейро Водный центр примет соревнования по прыжкам в воду, синхронному плаванию, а также матчи группового раунда по водному поло.

Соревнования: Водное поло, Прыжки в воду, Синхронное плавание

Олимпийская арена Рио «HSBC-арена» (HSBC Arena)

Олимпийская арена Рио (с 2008 года — HSBC-арена) — многофункциональный спортивно-концертный комплекс в Рио-де-Жанейро (Бразилия). Расположен в Олимпийском парке. Открыт в июле 2007 года. Комплекс принимал соревнования Панамериканских игр 2007 года и Всемирных военных игр 2011 года. В рамках программы Олимпийских игр 2016 года арена примет гимнастические соревнования, а Паралимпийских — баскетбольный турнир.

Максимальная вместимость: 14.981 (спортивные соревнования), 18.768 (концерты);

Общая площадь комплекса: 65 000 м²;

Минимальный объём центрального зала — 60*40*16 м, тренировочного зала — 32*42*16 м;

Соревнования: Гимнастика спортивная, Гимнастика художественная, Прыжки на батуте

Олимпийский Водный стадион (Olympic Aquatics Stadium)

Олимпийский Водный стадион — центр, расположенный в Олимпийском парке Барра (Барра да Тиджука) вблизи Международного Автодрома Нельсона Пике, рядом с Олимпийской ареной Рио и Водным центром имени Марии Ленк. Центр включает в себя основной и тренировочный бассейны. Объект — временный и возведён на время проведения бразильской Олимпиады. В рамках программы Олимпийских игр 2016 года Центр примет соревнования по плаванию, а также матчи плей-офф и финалы мужского и женского турниров по водному поло.

Соревнования: Водное поло, Плавание

Риоцентро (Riocentro)

Риоцентро — выставочный комплекс в бразильском Рио-де-Жанейро. Расположен в районе Барра ди Тижука. Является крупнейшим выставочным центром Южной Америки и одним из самых больших в мире.

Во время проведения Олимпийских игр «Рио-2016» в павильонах комплекса будут организованы арены для проведения соревнований в боксе (пав. №6) , бадминтоне (пав. №4) , тяжёлой атлетике (пав. №2) и настольном теннисе (пав. №3) .

Комплекс сдан в эксплуатацию в 1977 году и за прошедшее время претерпел ряд реконструкций. Вместимость временных спортивных арен во время проведения соревнований составит от 6500 до 9000 зрителей.

Соревнования: Бадминтон, Бокс, Теннис настольный, Тяжелая атлетика

Кариока Арена 1 (Carioca Arena 1)

«Кариока Арена 1» вместе с Аренами 2 и 3 образует спортивный комплекс из трёх сооружений, специально построенных к бразильской Олимпиаде и выполненных в едином стиле. Комплекс расположен на западе Рио-де-Жанейро в районе Барра ди Тижука в пяти минутах от Олимпийской деревни.

Во время Олимпийских игр «Кариока Арена 1» примет баскетбольный турнир, а в рамках Паралимпийских игр на арене пройдут соревнования по баскетболу и регби на колясках. После проведения Игр «Кариока Арена 1» станет частью Олимпийского центра подготовки. Вместимость первой арены — 16 000 зрителей (после Игр — 5 000 зрителей). Сдана в эксплуатацию в 2016 году.

Соревнования: Баскетбол

Кариока Арена 2 (Carioca Arena 2)

«Кариока Арена 2» вместе с Аренами 1 и 3 образует спортивный комплекс из трёх сооружений, специально построенных к бразильской Олимпиаде и выполненных в едином стиле. Комплекс расположен на западе Рио-де-Жанейро в районе Барра ди Тижука в пяти минутах от Олимпийской деревни.

Во время Олимпийских игр «Кариока Арена 2» примет турниры по дзюдо и борьбе, а в рамках Паралимпийских игр на арене пройдут соревнования по бочче (спортивная игра с мячом на точность). После проведения Игр «Кариока Арена 2» станет частью Национального Олимпийского центра подготовки. Вместимость арены — 10 000 зрителей. Сдана в эксплуатацию в 2016 году.

Соревнования: Борьба вольная, Борьба греко-римская, Дзюдо