Drupal → Свой способ вывода точек на карте в Geofield Yandex Maps
По умолчанию все объекты на карте выводятся самым простым способом — с помощью geoQuery, что равносильно ручному созданию объектов используя new ymaps.Placemark(...)
, new ymaps.Polygon(...)
и т.д.
Если хочется вывести объекты по своей логике, то нужно:
1. Добавить в рендер массив элемента/темы параметр '#map_without_objects' => TRUE
.
Пример для Views:
/** * Preprocess function for theme_views_view(). */ function modulename_preprocess_views_view(&$vars) { if ($vars['view']->name == 'my_view_name' && $vars['view']->current_display == 'page') { $vars['rows']['#map_without_objects'] = TRUE; drupal_add_js(drupal_get_path('module', 'modulename') . '/modulename.js'); } }
2. В Js навесить свою функцию на событие yandexMapInit
и вывести объекты нужным способом:
(function ($) { Drupal.behaviors.modulename = { attach: function (context, settings) { $('#идентификатор-карты', context).once().bind('yandexMapInit', function (event, map) { // Получаем список объектов в GeoJson var objects = $(this).data('map-objects'); // Выводим объекты $.each(objects.features, function () { var placemark = new ymaps.Placemark(this.geometry.coordinates); map.geoObjects.add(placemark); }); // Центрируем карту Drupal.geofieldYmap.autoCentering(map); Drupal.geofieldYmap.autoZooming(map); }); } }; })(jQuery);
Комментарии
что теоретически дает возможность попробовать http://habrahabr.ru/company/yandex/blog/243665/
?
да
Добрый день. Не подскажете, а как вывести иконки в данном скрипте, созданные во views, со всеми параметрами, т.е. всплывающие окна, цвет и т.д.
var placemark = new ymaps.Placemark(this.geometry.coordinates);
данный скрипт выводит дефолтные пустые иконки
что за иконки?
ну, иконки объектов. балуны)
ОРГОМНОЕ СПАСИБО. Прикрутил с помощью данного скрипта вывод через модуль PieChartClusterer.
Оставить комментарий