Как стать автором
Обновить

Комментарии 11

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

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

А всплывающие подсказки при наведении мышки — просто разметил картинку (map) и повесил обработчик на наведение мышки.

Самая долгая часть работы была разметка границ регионов :)

Зато теперь эту же карту можно быстро и удобно вставлять в pdf в некоторых отчетах, потому что она представляет из себя готовую завершенную картинку.
У вас анализ картинки или в редакторе на тайлы нарезали?
Cидел в редакторе размечал границы регионов и потом по каждому региону составлялся массив вида:
            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 полный рабочий день на это дело, но в целом результатом доволен.
Все-таки, лучше использовать слово «Картограмма» — оно устоялось и в российской географии, и в картографии.
И еще комментарий по сути — отличный скрипт. Осталось еще генератор сделать. Чтобы можно было закачивать .xls (.csv) и получать на выходе код для вставки.
О_О Республика Ингушетия (безработица 46.9%) Чем они там ваще занимаются?..
детей делают. высокая рождаемость, теперь почти не ограничивается детской смертностью, благодаря развитию здравоохранения. 57% сельского населения как-никак.
Как лучше сделать разбивку города по районам?
Отличная реализация!
Расскажите об этом проекте в клубе API Яндекс.Карт, пожалуйста: clubs.ya.ru/mapsapi/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации