Maps / Произвольные типы точек
Добаление произвольных типов для точек на карте.
Иконки хранятся в \cgi-bin\styles\default_adm\img\maps\
.
Для добавления собственных иконок, в config.pl
добавить
@MAPS_CUSTOM_ICONS = ('icon1', 'icon2');
Сами иконки должны в названии иметь постфикс _green.png
(_white.png
, _red.png
), для того, чтоб система различала их по цвету.
Например, для добавления значка tree.png
, необходимо добавить значки в всех цветах: tree_green.png
, tree_red.png
и т.д. (Обязательный только цвет green
);
Отображение карты с собственными значками в других модулях
Добаляем тип в базу, если нет
use Maps; my $Maps = Maps->new($db, $admin, \%conf); # Добавляем тип если нет $Maps->type_add({ NAME => 'Custom type name', COMMENTS => 'Comments', ICON => 'custom_icon1' });
Или в .sql файле модуля
INSERT INTO maps_point_types (`name`, `icon`) VALUES ('custom_type', 'custom_icon1');
Добавляем свои координаты в базу
use Maps; my $Maps = Maps->new($db, $admin, \%conf); # Получаем тип my $types_list = $Maps->types_list({ ID => '_SHOW', NAME => 'custom_type', COLS_NAME => 1 }); my $type_id = -1; if ($types_list && scalar $types_list > 0){ $type_id = $types_list->[0]->{id}; } if ($type_id == -1){ Добавляем тип как показано выше $type_id = $Maps->{INSERT_ID}; } if ($type_id > 0){ $Maps->custom_point_add({ COORDX => '12.23', COORDY => '24.25', TYPE => $type_id });
Заранее залить иконку в \cgi-bin\styles\default_adm\img\maps\
с нужными названиями. По умолчанию используется цвет green
, поэтому иконка этого цвета должна обязательно присутствовать.
Добавляем в @MAPS_CUSTOM_ICONS свои иконки.
push(@MAPS_CUSTOM_ICONS, 'custom_icon1', 'custom_icon2');
Также, можно указывать другие иконки, используя полный URL при добавлении точки в базу.
Показываем карту через maps_show_poins()
# Устанавливаем флаг отображения кастомных точек $FORM{CUSTOM_POINTS} = 1; # Подгружаем модуль Maps load_module('Maps', $html); # Показываем карту maps_show_poins();