8 Библиотек Javascript Для Визуализации Данных В Виде Интерактивных Карт

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

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

В этой статье дан общий, но насыщенный обзор восьми наиболее интересных, на мой взгляд, библиотек JavaScript для создания интерактивных геовизуализаций.

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

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

Кстати, это немного измененный перевод моей недавней статьи об Onextrapixel ( оригинал на английском языке ).



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

На всякий случай сразу уточню: в целом библиотеки JavaScript для создания карт можно разделить на два типа.

Некоторые просто позволяют отображать географическое положение один или несколько объектов.

Для аналогичной задачи в качестве источника можно использовать карты типа Google Maps или OpenStreetMaps. В принципе, таких решений достаточно, и результат их работы примерно такой:

8 библиотек JavaScript для визуализации данных в виде интерактивных карт

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

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



Библиотеки JavaScript для интерактивных карт визуализации



amMap (из amCharts)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

amMap — специальная библиотека JavaScript (HTML5) для построения карт, разработанная командой amCharts .

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

В частности, amMap дает возможность легко «нырять» в ту или иную выбранную область карты с помощью детализации или, например, использовать в качестве маркеров любые картинки — вещь довольно интересная.

Чтобы начать работу с amMap, вам необходимо скачать ZIP-файл с двоичными файлами.

Кстати, он уже содержит по 455 карточек в каждом из поддерживаемых форматов (JavaScript/SVG).

Документация amMap не очень велик и в основном сводится к набору вопросов и ответов.

Описание API: Есть .

Зависимости: Нет. Лицензия: бесплатно (фирменные карты) или платно (от 140$).



AnyMap (из AnyChart)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

AnyMap – одна из популярных библиотек JavaScript (HTML5) для визуализации данных, созданная компанией.

AnyChart .

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

).

AnyMap также поддерживает все основные типы рядов, которые могут вам понадобиться: картографические, пузырьковые, точечные, соединительные, потоковые.

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

Забегая немного вперед, скажу, что, на мой взгляд, AnyMap больше похож на D3, чем на amMap или Highmaps. Он словно сочетает в себе возможности «коробочных» решений и в то же время обладает высокой расширяемостью и управляемостью со стороны разработчика, позволяет полностью настраивать визуализации путем добавления или изменения различных элементов и легко создавать собственные карты.

Двоичные файлы AnyMap находятся в ZIP-файле и содержат множество примеров.

CDN AnyChart предлагает сотни карт в различных форматах: GeoJSON, TopoJSON, SHP, SVG. Также стоит отметить, что эта библиотека имеет богатый документация и обширное описание API, кстати, довольно простое для понимания и — опять же — с большим количеством примеров.

Описание API: Есть .

Зависимости: Нет. Лицензия: бесплатно (фирменные карты) или платно (от $79).



D3.js (Майк Босток)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

D3.js — это библиотека визуализации данных с открытым исходным кодом, которая является мощной с точки зрения возможных результатов.

В отличие от других упомянутых библиотек JavaScript, D3 — это скорее платформа, обеспечивающая максимальную свободу творчества.

Хотя создание интерактивных карт здесь не так очевидно, как, скажем, в решениях от amCharts, AnyChart или Highcharts. В частности, чтобы сделать такую замечательную интерактивную карту, как на иллюстрации, вам потребуется изучить достаточно большое количество материалов.

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

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

Хотя, к сожалению, D3 не предоставляет собственных карт. Это значит, что вам придется искать их самостоятельно в открытых источниках, но вряд ли это сейчас является большой проблемой.

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

Описание API: Есть .

Зависимости: Нет. Лицензия: бесплатно.



Google GeoCharts (от Google)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

У гиганта Google есть собственная библиотека JavaScript для визуализации данных — Google Диаграммы .

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

В Google Geocharts есть только одна карта, и это карта мира.

Однако вы можете выбрать область, на которой будете фокусироваться при рисовании, используя масштабирование.

К сожалению, локальный API не поддерживает прокрутку, масштабирование и перетаскивание.

Google также не предлагает другие типы серий для карт, кроме картографических и пузырьковых.

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

с тобой.

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

Описание API: Есть .

Зависимости: Нет. Лицензия: бесплатно.



Highmaps (от Highsoft)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

Высокие карты – «младшая сестра» Highcharts и Highstock, популярных библиотек разработки компании.

Хайсофт .

Его ключевыми преимуществами являются открытый исходный код со всеми его преимуществами, небольшой размер, высокая скорость рендеринга и широкий спектр интерактивных функций, таких как детализация и т. д. Среди серий, поддерживаемых в Highmaps, — choropleth и bubble. Кроме того, эту библиотеку можно использовать для рисования линий, обозначающих дороги, реки и соединители.

Хотя сделать, скажем, карту потока здесь не так просто, как в том же amMap и AnyMap. Также стоит отметить, что ни Highcharts, ни Highmaps не работают без jQuery, поэтому для их использования необходимо включить эту зависимость (или, конечно, также есть возможность поиска другой библиотеки визуализации данных — ха-ха).

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

Описание API: Есть .

Зависимости: jQuery. Лицензия: бесплатные (фирменные карты) и платные (от $390).



jQuery Mapael (Винсент Броут)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

jQuery Mapael — еще одна очень достойная, хорошо сделанная библиотека с открытым исходным кодом для создания динамических векторных карт. Он основан на jQuery и Raphael JS, поэтому эти зависимости необходимо учитывать при построении поддерживаемых им картографических, пузырьковых или соединительных карт. Готовый к использованию набор собственных карточек находится в репозитории Мапаэль.

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

Описание API: Есть .

Зависимости: jQuery и Рафаэль.

Лицензия: бесплатно.



jVectorMap (Кирилл Лебедев)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

Библиотека интерактивных карт jVectorMap имеет открытый исходный код, как и ряд других, перечисленных в статье.

Без jQuery это не будет работать.

Хотя некоторые могут подумать, что такая внешняя зависимость делает эту (или любую другую) библиотеку не очень универсальной, в наше время это не должно быть большой проблемой, потому что jQuery с большим отрывом занимает первое место среди библиотек JavaScript для веб-сайтов.

как по популярности, так и по доле рынка.

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

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

JVectorMap имеет довольно маленькое описание API и не имеет документации в привычном, по крайней мере мне, виде.

Однако есть небольшой, но все же очень полезный Руководство по началу работы .

Мы используем собственные карты, но только в формате GeoJSON. Описание API: Есть .

Зависимости: jQuery. Лицензия: бесплатный и платный (от $39).



Картограф (Грегора Айша)



8 библиотек JavaScript для визуализации данных в виде интерактивных карт

Картограф – еще одно открытое решение со всеми вытекающими преимуществами.

Эта библиотека отличается обилием визуальных эффектов, таких как тени, размытие и т. д. Интересно также, что помимо традиционных типов хороплетов и пузырьковых серий существуют еще 3D-столбцы (или, как их иногда называют, вертикальные 3D-столбцы).

В Картографе нет готовой коллекции карт. Но библиотека работает с любыми картами в формате SVG. Он также предлагает утилиту Kartograph.py для создания карт. Хотя Kartograph имеет зависимости и не будет работать без Raphael JS (используется как движок рисования) и jQuery, эта библиотека делает процесс создания карт действительно достаточно понятным и простым, а документация и описание API этой библиотеки объединены в одно статья, позволяет довольно легко и удобно получить необходимые интерактивные карты для ваших проектов.

Описание API: Есть .

Зависимости: jQuery и Рафаэль.

Лицензия: бесплатно.



Заключение

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

(Ну, в 21 веке, наверное, по-другому и быть не может.) Некоторые из них поддерживают даже старые браузеры, например Internet Explorer 6. (Хотя это, надеюсь, очень скоро перестанет быть важным, в конец 2010- Х.

) Все упомянутые мной бесплатные библиотеки неплохо справляются с созданием интерактивных карт. Но с другой стороны, они не обеспечивают такой широкой поддержки, как коммерческие, и, честно говоря, не так сильны в настройке (ну, кроме D3, конечно).

Говоря о коммерческих библиотеках - их, кстати, обычно можно использовать бесплатно в некоммерческих и личных целях - не могу не упомянуть AnyMap и Highmaps за их подробную документацию и описания API, а также за большие пулы всех различные примеры/демо-карты JavaScript с интерактивностью хорошего качества.

Спасибо за внимание.

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

Всем хорошего дня! Теги: #интерактивная карта #Визуализация данных #svg #диаграмма #cartogram #highcharts #highmaps #amcharts #ammap #anychart #anymap #googlecharts #D3js #d3 #Kartograph #kartograph.js #mapael #jvectormap #JavaScript #Big Data #Visualization данные

Вместе с данным постом часто просматривают: