Комментарии 11
Ингушетия и Чечня заслуживают отдельного цвета заливки
+7
Кривые и не стыкующиеся границы — на стороне яндекса, как я понял.
Очень хороший пример, спасибо
Очень хороший пример, спасибо
+1
Спасибо, интересная тема.
Сам недавно реализовывал подобную карту, но там все генерируется на основе шаблона карты в виде картинки, просто заливал нужный регион нужным цветом.
А всплывающие подсказки при наведении мышки — просто разметил картинку (map) и повесил обработчик на наведение мышки.
Самая долгая часть работы была разметка границ регионов :)
Зато теперь эту же карту можно быстро и удобно вставлять в pdf в некоторых отчетах, потому что она представляет из себя готовую завершенную картинку.
Сам недавно реализовывал подобную карту, но там все генерируется на основе шаблона карты в виде картинки, просто заливал нужный регион нужным цветом.
А всплывающие подсказки при наведении мышки — просто разметил картинку (map) и повесил обработчик на наведение мышки.
Самая долгая часть работы была разметка границ регионов :)
Зато теперь эту же карту можно быстро и удобно вставлять в pdf в некоторых отчетах, потому что она представляет из себя готовую завершенную картинку.
0
У вас анализ картинки или в редакторе на тайлы нарезали?
0
Cидел в редакторе размечал границы регионов и потом по каждому региону составлялся массив вида:
При этом заодно проверял целостность границ на шаблоне, чтобы при заливке не получалось что 2 региона разом зальются.
fill_coords это точка на карте, в которую нужно лить цвет (imagefill), их может быть несколько, например, когда в регион входят острова.
border_coords — координаты границы региона, из них составляется многоугольник для map (area shape=«poly»)
region_ids — id регионов из базы данных (например москва и московская область в БД лежат как 2 разных региона, но на карте это одна область).
Ушел где-то 1 полный рабочий день на это дело, но в целом результатом доволен.
array(
'name'=>'Тверская область',
'fill_coords'=>array(
array('x'=>109,'y'=>148)
),
'border_coords'=>array(
array('x'=>83,'y'=>145),
array('x'=>88,'y'=>142),
array('x'=>89,'y'=>135),
array('x'=>103,'y'=>141),
array('x'=>106,'y'=>140),
array('x'=>109,'y'=>143),
array('x'=>122,'y'=>153),
array('x'=>116,'y'=>158),
array('x'=>117,'y'=>163),
array('x'=>113,'y'=>166),
array('x'=>102,'y'=>161),
array('x'=>103,'y'=>157),
array('x'=>95,'y'=>156),
array('x'=>90,'y'=>151),
array('x'=>86,'y'=>151)
),
'region_ids'=>array('58')
),
При этом заодно проверял целостность границ на шаблоне, чтобы при заливке не получалось что 2 региона разом зальются.
fill_coords это точка на карте, в которую нужно лить цвет (imagefill), их может быть несколько, например, когда в регион входят острова.
border_coords — координаты границы региона, из них составляется многоугольник для map (area shape=«poly»)
region_ids — id регионов из базы данных (например москва и московская область в БД лежат как 2 разных региона, но на карте это одна область).
Ушел где-то 1 полный рабочий день на это дело, но в целом результатом доволен.
+2
Все-таки, лучше использовать слово «Картограмма» — оно устоялось и в российской географии, и в картографии.
+2
И еще комментарий по сути — отличный скрипт. Осталось еще генератор сделать. Чтобы можно было закачивать .xls (.csv) и получать на выходе код для вставки.
+1
О_О Республика Ингушетия (безработица 46.9%) Чем они там ваще занимаются?..
+4
Как лучше сделать разбивку города по районам?
0
Отличная реализация!
Расскажите об этом проекте в клубе API Яндекс.Карт, пожалуйста: clubs.ya.ru/mapsapi/
Расскажите об этом проекте в клубе API Яндекс.Карт, пожалуйста: clubs.ya.ru/mapsapi/
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пример хороплет-карты на основе Яндекс-карт