Карта яндекс интерактивная: Яндекс Карты — подробная карта мира

Содержание

Интерактивная карта клиентов — Apache Spark Streaming и Яндекс.Карты / Хабр

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

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


Все чаще мы слышим про лямбда-архитектуру. Все чаще хотят кластеризацию данных в онлайн. Все больше слышим об использовании онлайн машинного обучения (дообучения). Караул.

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

Сегодня расскажу, как мы сделали интерактивную карту наших клиентов с помощью Apache Spark Streaming и API Яндекс.Карт. Но прежде, повторим архитектурные подходы и бегло по сути пройдем по доступным инструментам.

Этой проблематике уже более 50 лет. Суть в том, что существует грубо 2 принципиальных подхода к задаче обработки больших массивов информации — Data Parallelizm и Task Parallelizm.

В первом случае, одинаковая цепочка вычислений запускается параллельно над непересекающимися неизменными частями исходных данных. Именно по этому принципу работают Apache Spark и Hadoop MapReduce.
Во втором случае, все наоборот — над одним фрагментом данных начинает параллельно выполняться несколько цепочек вычислений: по этому принципу работают популярные Apache Spark Streaming, Apache Storm и, с некоторой натяжкой, Apache Flume.

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


По сути, что Apache Spark Streaming (спасибо UC Berkeley и DataBricks), что Apache Storm (спасибо, Twitter) — реализуют концепцию потоковой обработки данных в архитектуре Task Parallel, однако Spark Streaming пошел дальше и позволяет обработать пакет (дискретизированный RDD) также параллельно в духе Data Parallel. Такая особенность позволяет легко «прикрутить» онлайн кластеризацию пакета — сгруппируем данные в кластера для визуализации, пригласим девушек на ужин… так, о чем это я.

Документацию прочитать вы и сами можете, я лишь объясню 2-3 словами саму суть. Ненавижу популизм, умничание и жонглирование непонятными терминами — хочется, чтобы знания передавались на простом, доступном языке и процесс передачи приносил удовольствие. Вы собираете данные, поступающие много раз в секунду в:

  • Apache Kafka
  • Amazon Kinesis
  • Apache Flume
и куда душа пожелает. Данные, для простоты, упорядочены. Вам нужно обработать каждый элемент данных:

  • добавить хит к сумме хитов за сутки
  • зарегистрировать координату клиента по IP-адресу
  • отправить push-уведомление пользователю о совершении операции

Spark Streaming собирает элементы данных в упорядоченный неизменяемый RDD за определенный фиксированный интервал времени (допустим, за 10 секунд) и вызывает ваш обработчик, передавая RDD на вход. RDD — это просто коллекция собранных за интервал данных, не больше.
Если за интервал удалось собрать довольно большой RDD, вам нужно его постараться обработать ДО того, как придет следующий RDD за следующий интервал. Поэтому RDD практично обрабатывать параллельно на нескольких серверах кластера. Чем больше поток данных на входе, тем больше серверов добавляется в потоковый кластер. Надеюсь, понятно все объяснил.

А если все упало? Отвалился кусок кластера, случился null pointer exception в вашем обработчике пакета…

Небольшая аркадная вставка. Не так давно, при упоминании RabbitMQ или ZeroMQ воцарялась тишина и благоговейный трепет снисходил на группу разработчиков, архитекторов и случайно заблудившегося верстальщика. А бывалые бойцы с опытом выживания в enterprise — вспоминали Message-oriented middleware и пускали слезу.

Но, как мы сказали в начале поста, Бигдата напирает. Причем делает это грубо и бесцеремонно. Все чаще мы слышим, что архитектура очередей сообщений, в которой Consumers координируются и мультиплексируются централизованно на сервере(ах) очередей, становится «некошерной», т. к. при возрастании нагрузки и числа клиентов ей становится плохо (еще бы, нужно держать все контексты со счетчиками всех клиентов, пробегать по готовым к обработке сокетам путем select/pool и заниматься прочим садомазахизмом). И «православной» архитектурой все больше считается реализованная в Apache Kafka, где свою позицию в очереди помнит и сохраняет каждый клиент-consumer, а сервер(ы) занимается лишь выдачей сообщений, по переданному клиентом итератору (а точнее — переданному смещению в файле, в котором сообщения и хранятся на старом, добром, бородатом жестком диске). Конечно это халтура и переваливание ответственности на клиентов — но… Бигдата — напирает и оказалось, что архитектурка не такая уж и безответственная. И даже Amazon Kinesis взял ее на вооружение. Почитайте про нее — полезно. Только там текста много, наливайте чашку с кофе побольше и с арабикой.

На чем мы там остановились? Все упало… у кого, какие девушки? А, вспомнил. Так вот, когда все упало, consumer, в данном случае его роль выполняет драйвер (их несколько из коробки), который тянет сообщения из очередей, должен снова передать сохраненную позицию в очереди и начать читать сообщения заново.
В нашем случае мы читаем сообщения в Spark Streaming из Amazon Kinesis и драйвер регулярно (настраивается), сохраняет прочитанную из очереди позицию в табличку DymanoDB (это доступно из коробки).

Источники событий

Во время работы клиентов с порталами «Битрикс24» javascript отправляет в облако пакет, описывающий действие клиента, IP-адрес и обезличенную информацию, которая используется в системе персональных рекомендаций, CRM, бизнес-аналитике и различных моделях машинного обучения внутри компании.
Приходит в пике ежесекундно больше 1000 событий. События собираются в Amazon Kinesis (который, как помним, с «кошерной архитектурой»).

Передача событий в Spark Streaming

Для обработки этих >1000 событий в секунду поднят небольшой кластер Yarn с Spark Streaming (2 машины). Обратите внимание на объем памяти, выделенный Spark driver. Похоже, можно выделить памяти еще меньше:

Еще интереснее следующий скриншот. На нем видно, что мы успеваем обрабатывать >1000 хитов в секунду до того, как придет следующий пакет за 30 секундный интервал:

Да, точно, память драйвер Spark расходует меньше 200МБ, поэтому прямо сейчас мы ему ее подрежем :-):

В общем видно, что памяти используется довольно мало и вся обработка потока легко помещается на 2 железки, а при желании можно и на одной это делать и никто не заметит. Круто. Эффективная технология: >1000 событий в секунду на «дохлом» железе.

Обработка событий

Теперь самое интересное. Нам нужно получить у каждого хита клиента его IP-адрес и… отобразить его домен точкой на Яндекс.Карте, но так, чтобы зум по карте работал и ничего не тормозило!

Для трансляции IP-адресов в координаты мы используем одну из популярных библиотек. Одна проблемка — из коробки объекты библиотечки на java не сериализуются, поэтому трансляция IP-адресов в координаты пока выполняется в один поток внутри драйвера Spark. При желании, конечно, можно поднять отдельный ресолвер адресов на каждой partition RDD интервала — но пока производительности хватает за глаза.

Далее у каждого хита определяем домен проекта и сохраняем в хэш-таблицу пару: домен — координаты и время обновления. Пары старше нескольких дней — убираем.

Выгрузка данных для Яндекс.Карты

Через определенные интервалы времени (настраивается), мы выгружаем привязку доменов к координатам, т. е. будущие точки на карте, в json-файл для дальнейшего отображения на Яндекс.Карте. На данный момент точек около 20к.

Растеризатор-кластеризатор для Яндекс.Карт

Пришлось вспомнить javascript :-). Подводный камень при отображении точек на Яндекс.Карту оказался один — 20к точек на карте с встроенной кластеризацией ужасно тормозят браузер клиента и карта открывается минуты. Поэтому мы воспользовались возможностью серверной кластеризации — написали свой простенький растеризатор-кластеризатор, к которому и подключили карту.

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

  • Карта обращается к серверному растеризатору, передавая координаты отображаемой области
  • Растеризатор считывает json-файл с парами: домен-координата, кластеризует точки на лету и отдает результат
  • Карта отображает результаты серверной растеризации-кластеризации
Получилось быстро и просто.
Да, можно не считывать json-файл, а обращаться к NoSQL… но пока и так все работает быстро и есть такое слово — лень 🙂

Растеризатор написан на PHP, и на лету выполнять k-means конечно самоубийство — поэтому все упрощено и вместо кластеризации делается растеризация. Если интересно, опишу отдельным постом.

Вот как выглядит карта активных доменов клиентов Битрикс24 (https://www.bitrix24.ru/online-domains-map):

Вот зум:

Получилась симпатичная онлайн-карта доменов Битрикс24. Зум и серверная кластеризация работают довольно шустро. Порадовал Spark Streaming и довольно приятный процесс создания карты через API Яндекс.Карт. Пишите, что может быть еще интересно на эту тему, — мы постараемся подробно рассказать. Всем удачи!

Названы три российских города, которые чаще всего ищут в Яндексе (интерактивная карта)

Наука 7083

Поделиться

Компания Яндекс составила карту поисковых связей городов России, которая показывает, как часто жители из одного населенного пункта ищут информацию о других городах страны. Их можно увидеть на интерактивной карте

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

Чем больше город, тем выше интерес к нему среди пользователей из других городов: так, чаще всего в Яндексе ищут крупнейшие российские мегаполисы — Москву, Петербург, Новосибирск и Екатеринбург. Правда, бывают исключения. Например, о курортах Юга России и Крыма — Сочи, Пятигорске, Ялте и Феодосии — спрашивают гораздо чаще, чем о большинстве городов с такой же численностью населения. И наоборот: некоторые города Северного Кавказа (Назрань, Хасавюрт, Махачкала) и Дальнего Востока (Южно Сахалинск и Петропавловск Камчатский) ищут гораздо меньше, чем другие города такого же размера.

Самый высокий интерес к столице — около 30% от всех запросов о других городах — проявляют пользователи из Центральной России: для многих из них Москва — это не только столица страны, но и ближайший крупный город. Довольно много запросов о Москве — около 20% от запросов о других городах — задают на Северном Кавказе и в Калининграде. Меньше всего столицей интересуются в небольших удалённых от неё городах, а также в крупных населённых пунктах Сибири и на Урале. Например, в Кемерово и Новосибирске на Москву приходится лишь 6% запросов о других городах.

Помимо Москвы, у большинства малых и средних городов обычно есть один два мощных центра притяжения — ближайшие города миллионники или просто крупные соседние города. Пользователи из миллионников обычно проявляют самый большой интерес к Москве или городам спутникам. Например, самарцы чаще всего спрашивают о Тольятти, а казанцы — об Альметьевске. Исключение составляют Новосибирск и Челябинск: в запросах местных пользователей первое место занимают Омск и Екатеринбург соответственно.

Учитывались города с населением более 70 тысяч человек, для которых были данные о поисковых запросах. Запросы о городах с омонимичными названиями — например, Владимир, Артём, Чайковский — не рассматривались. Показаны только те связи, которые составляют более 5% от всех запросов о других городах (для Санкт‑Петербурга — более 3%, для Москвы — более 2,5%). Связи городов с Москвой не показаны.

Толщина стрелки пропорциональна числу запросов о городе, куда тянется стрелка, из города, откуда она тянется. Размер города пропорционален числу запросов о нём. Одним цветом отмечены города, которые связаны друг с другом сильнее, чем с остальными городами страны.

По данным поиска Яндекса, июнь 2013 — март 2014

Подписаться

Авторы:

Что еще почитать

Что почитать:Ещё материалы

В регионах

  • Британские фантазеры: ВСУ зайдут в Крым через месяц

    21022

    Крым

    crimea. mk.ru фото: МК в Крыму

  • В Северо-Крымский канал перестала поступать вода

    Фото 14264

    Крым

    фото: МК в Крыму

  • На полигоне в Кировском районе возник пожар, движение по Тавриде перекрыто

    11784

    Крым

    фото: МК в Крыму

  • 18 июля – праздник Сергия Радонежского, что строго запрещено в день небесного покровителя России

    Фото 11026

    Псков
  • В Новосибирской области жители заявили о зверском убийстве председателя СНТ «Автомобилист»

    10412

    Новосибирск

    Дарья Мелехова

  • ЧП на Крымском мосту: движение в Крым остановлено

    Фото 4941

    Крым

    фото: МК в Крыму

В регионах:Ещё материалы

‎Яндекс Погода онлайн в App Store

Описание

Яндекс Погода предоставляет точные гиперлокальные прогнозы погоды для конкретных адресов, оповещения и интерактивную информацию метеорадара в режиме реального времени.

Яндекс Погода работает на основе технологии Meteum на основе искусственного интеллекта. Эта технология использует информацию от тысяч метеорологических датчиков, расположенных на уровне земли и в космосе. Он также опирается на текущие отчеты о погоде от пользователей сервиса.

Пользователи Яндекс-Погоды могут:

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

Версия 23.7.1

В этом выпуске: технические улучшения и исправления ошибок.

Рейтинги и обзоры

4,9 тыс. оценок

Большой

Мне очень нравится это приложение и его точные прогнозы, но было бы неплохо, если бы добавили виджет iOS 14

Спасибо за отзыв! Мы рады приложить усилия для наших пользователей. Что касается виджета, чтобы создать его на экране, нажмите и удерживайте любое пустое место. Затем нажмите «\+» в левом верхнем углу, введите «Яндекс Погода» в строке поиска и выберите приложение в результатах поиска. Выберите виджет в появившемся окне и нажмите «Добавить виджет». После этого на экране должен появиться виджет погоды Яндекса.

Очень полезно

Спасибо, ребята, за вашу работу. Мне нравится это приложение.

Эй

Очень хорошо

Разработчик, Intertech Services AG, указал, что политика конфиденциальности приложения может включать обработку данных, как описано ниже. Для получения дополнительной информации см. политику конфиденциальности разработчика.

Данные, используемые для отслеживания вас

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

Данные, связанные с вами

Следующие данные могут быть собраны и связаны с вашей личностью:

Данные, не связанные с вами

Следующие данные могут собираться, но они не связаны с вашей личностью:

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

Информация

Провайдер
Интертек Сервисиз АГ

Размер
209 МБ

Категория
Погода

Возрастной рейтинг
4+

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

Авторское право
© 2011-2023 ООО «Яндекс»

Цена
Бесплатно

  • Сайт разработчика
  • Тех. поддержка
  • политика конфиденциальности

Еще от этого разработчика

Вам также может понравиться

Яндекс — Карта номер

Опубликовано на Джонатаном Кроу

Карты Apple в iOS 16 получат маршрутизацию с несколькими остановками, которая, как я думал, была давно установленной функцией на других платформах, а также интеграцию оплаты проезда/карты/пропуска. Новые карты Apple также будут доступны для большего количества стран, а подробные карты городов будут доступны для большего количества городов в США, Австралии и Канаде. 9to5Mac содержит сводку.

Как было объявлено в апреле, Google Maps теперь отображает примерную стоимость дорожных сборов при маршрутизации.

Российская поисковая система «Яндекс» обходит вторжение России в Украину, замороженные конфликты и другие оспариваемые национальные границы, просто удаляя национальные границы со своей карты. Он используется как опора для локальной навигации. (Конечно.)

Ссылка•Категории Мобильные•Теги Apple, Карты Apple, пограничные споры, маршруты проезда, Google, Карты Google, iOS, iOS 16, Россия, Украина, Яндекс Искать:

О The Map Room

The Map Room — это блог Джонатана Кроу о картах. С 2003 года он занимался всем, от сбора старинных карт до новейших геопространственных технологий. Подробнее о Комната карт .

Подписаться и следить

  • Дайджест электронной почты
  • Facebook
  • Мастодонт
  • Тамблер
  • Твиттер
  • RSS-канал

Поддержите Комнату карт

Ваша поддержка помогает поддерживать работу Комнаты карт ! Вы можете поддержать меня на Ko-Fi или внести непосредственный вклад в мои расходы на хостинг .

Партнерская информация

The Map Room участвует в партнерских программах Amazon, Bookshop и iTunes. Я получаю доход от соответствующих требованиям покупок, совершенных по ссылкам на этом веб-сайте.

Архивы по месяцам

Архивы по месяцам Выберите месяц июль 2023 г. (9) Июнь 2023 г. (9) Май 2023 г. (13) Апрель 2023 г. (13) Март 2023 г. (7) Февраль 2023 г. (7) Январь 2023 г. (14) Декабрь 2022 г. (16) Ноябрь 2022 г. (20) Октябрь 2022 г. (11) Сентябрь 2022 г. (13) 2 августа 022 (12) июль 2022 г. (8) июнь 2022 г. (8) май 2022 г. (12) апрель 2022 г. (20) март 2022 г. (25) февраль 2022 г. (15) январь 2022 г. (17) декабрь 2021 г. (28) ноябрь 2021 г. (14) октябрь 2021 г. (18) сентябрь 2021 г. (7) август 2021 г. (7) июль 2021 г. (17) июнь 2021 г. (10) май 2021 г. (14) апрель 2021 г. (8) март 2021 г. (8) февраль 2021 г. (11) январь 2021 г. (8) декабрь 2020 г. (18) 20 ноября 20 (13) октября 2020 г. (21) сентября 2020 г. (24) августа 2020 г. (21) июля 2020 г. (19)) Июнь 2020 г. (8) Май 2020 г. (9) Апрель 2020 г. (26) Март 2020 г. (12) Февраль 2020 г. (23) Январь 2020 г. (24) Декабрь 2019 г. (9) Ноябрь 2019 г. (13) Октябрь 2019 г. (26) Сентябрь 2019 г. (26) 2 августа 019 (32) июль 2019 (13) июнь 2019 (11) май 2019 (22) апрель 2019 (8) март 2019 (5) февраль 2019 (12) январь 2019 (24) декабрь 2018 (7) ноябрь 2018 (43) октябрь 2018 ( 30) сентябрь 2018 г. (25) август 2018 г. (28) июль 2018 г. (32) июнь 2018 г. (10) май 2018 г. (33) апрель 2018 г. (26) март 2018 г. (33) февраль 2018 г. (31) январь 2018 г. (38) декабрь 2017 г. (41) Ноябрь 2017 г. (52) Октябрь 2017 г. (60) Сентябрь 2017 г. (38) Август 2017 г. (23) Июль 2017 г. (18) Июнь 2017 г. (16) Май 2017 г. (8) Апрель 2017 г. (47) Март 2017 г. (27) Февраль 2017 г. (32) 20 января 17 (24) декабря 2016 г. (30) ноября 2016 г. (51) октября 2016 г. (49)) Сентябрь 2016 г. (33) Август 2016 г. (55) Июль 2016 г. (28) Июнь 2016 г. (55) Май 2016 г. (48) Апрель 2016 г. (64) Март 2016 г. (68) Февраль 2016 г. (72) Январь 2016 г. (92) Декабрь 2015 г. (2) Ноябрь 2015 г. (2) октябрь 2015 г. (8) сентябрь 2015 г. (7) август 2015 г. (4) июль 2015 г. (6) июнь 2015 г. (1) май 2015 г. (5) апрель 2015 г. (5) февраль 2015 г. (4) декабрь 2014 г. (2) ноябрь 2014 г. (3) 2 октября 014 (2) июль 2014 г. (3) июнь 2014 г. (3) май 2014 г. (4) апрель 2014 г. (4) март 2014 г. (2) февраль 2014 г. (4) январь 2014 г. (3) декабрь 2013 г. (6) ноябрь 2013 г. (4) октябрь 2013 г. (2) сентябрь 201 3 (3) август 2013 г. (8) июль 2013 г. (4) июнь 2013 г. (10) май 2013 г. (8) апрель 2013 г. (3) март 2013 г. (1) февраль 2013 г. (4) январь 2013 г. (4) декабрь 2012 г. (4) ноябрь 2012 г. (5) октябрь 2012 г. (1) сентябрь 2012 г. (13) август 2012 г. (1) июль 2012 г. (5) июнь 2012 г. (3) май 2012 г. (4) апрель 2012 г. (7) март 2012 г. (4) февраль 2012 г. (4) январь 2012 г. (2) декабрь 2011 г. (1) ноябрь 2011 г. (3) октябрь 2011 г.  (2) сентябрь 2011 г. (4) август 2011 (2)

Категории

КатегорииВыберите категориюСельское хозяйство  (4)Старинные карты  (414)Археология  (3)Искусство  (195)Астрономия  (89)Авиация  (6)Блоги  (12)Рецензии на книги  (43)Картография  (169)Цензура  (20)Конференции  (33)Конфликты  ( 58)Авторское право  (1)Преступность  (11)Катастрофы (26)Экономика  (5)Образование  (36)Окружающая среда  (23)События  (24)Игры   (15)География  (10)Геология  (47)Подарочные гиды (15)ГИС (45)GPS (53)Здоровье ( 57)История  (95)Домашнее хозяйство  (49)География человека  (33)Гидрология  (6)Воображаемые карты  (32)Промышленность (9)8)Инфраструктура  (10)Лингвистика  (12)Коллекционирование карт  (16)Ошибки карт  (58)Личное картографирование  (11)Карты и литература  (148)Памятные вещи  (31)Мобильные устройства  (144)Кино и телевидение  (25)Мои материалы  (13)Национальные карты  (12)Морские  (13)Навигация  (32)Некрологи  (19)Океаны  (37)Подкасты и радио  (4)Политика  (112)Почта  (2)Обзоры товаров  (6)Спорт и отдых  (26)Съемка  (25)Часовые пояса  (2)Топонимы  (28)Туристические карты  (10)Транспорт  (107)Путешествия  (12)Без категорий  (26)Необычные карты  (65)Погода и климат  (141)Веб-карты  (111)Дикая природа  (16)Атласы мира  (11)

Метки

1500 с (43) 1700-е (31) 1800-е (32) Выборы в США 2016 г.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *