Drupal → Модуль Geofield Yandex Maps — ввод и вывод гео-информации на Яндекс.Картах 2.1

15.12.2013

Версия для Drupal 8 переименована в "Yandex.Maps (formerly Geofield Yandex Maps)".

Описание

Модуль Geofield Yandex Maps — это набор инструментов для ввода и вывода гео-информации на Яндекс.Картах версии 2.1. Модуль работает в связке с Geofield 2.x и добавляет:

  • Виджет для ввода
  • Форматтер для вывода
  • Views хэндлер для вывода нескольких объектов на одной карте
  • Текстовый фильтр для вставки карт в текст
  • Theme-функцию для лёгкого вывода карты с помощью PHP
  • Элемент формы для использования карты в своих формах

Поддерживаемая геометрия — точки, линии, полигоны.

Установка и использование

Установка стандартная — распаковать в sites/all/modules, включить.

Использование виджета

Добавляем сущности поле Geofield. Выбираем в качестве виджета Yandex Map:

Настраиваем по вкусу:

Результат:

Использование форматтера

В настройках отображения поля выбираем форматтер Yandex Map:

Настраиваем:

Результат:

Демо.

Использование Views хэндлера

Добавляем представление по материалам, с дисплеем Page и форматом Yandex Map выводящим поля:

Добавляем в представление поле Geofield в названии которого есть суффикс (GeoObject):

Добавляем любые другие поля. Они будут выводиться при клике на объекте.

Настраиваем формат:


Результат:

Демо (работает с AJAX!).

Использование текстового фильтра

В настройках текстового формата включаем фильтр Yandex Map. Изменяем порядок фильтров так, чтобы Yandex Map оказался первым:

Настраиваем по желанию:

На странице настроек модуля admin/config/system/geofield-ymap включаем опцию Use loader.

Для вставки карты в текст используем тег [map][/map]. Пример вставки карты с одной точкой:

[map]{"type":"Point","coordinates":[37.62,55.75]}[/map]

Пример вставки карты с переопределёнными настройками:

[map zoom=10 auto-zooming=0]{"type":"Point","coordinates":[37.62,55.75]}[/map]

Объекты описываются в формате GeoJSON.

Демо.

Использование theme-функции

Пример создания карты с одной точкой:

$map = array(
  '#theme' => 'geofield_ymap',
  '#map_type' => 'yandex#map', // optionaly, default 'yandex#map'
  '#map_center' => array(37, 55), // optionaly, default 0,0
  '#map_zoom' => 12, // optionaly, default 0 and auto zooming
  '#map_auto_centering' => TRUE, // optionaly, default FALSE
  '#map_auto_zooming' => TRUE, // optionaly, default FALSE
  '#map_clusterize' => TRUE, // optionaly, default FALSE
  '#map_objects' => '{"type":"Point","coordinates":[37.62,55.75]}', // GeoJSON, optionaly
);
$output = render($map);

Демо.

Использование карты в своей форме

$form['location'] = array(
  '#type' => 'geofield_ymap',
  '#title' => 'Location',
  '#description' => 'Select control and click to map for add object on map. Double click on object to remove it.',
  '#map_multiple' => TRUE,
  '#map_center' => array(55.733835, 37.588227),
  '#map_zoom' => 12,
  '#map_auto_centering' => TRUE,
  '#map_object_types' => array('point', 'line', 'polygon'),
);

В #map_object_types перечисляются названия объектов, которые сможет добавлять пользователь. После сабмита в $form_state['values']['location'] будет массив со значениями:
objects - объекты в GeoJSON
center - центр карты
zoom - зум карты

Демо.

Создание карты из html кода

Добавляем в текст:

<div class="geofield-ymap" data-map-objects='{"type":"Point","coordinates":[37,55]}'></div>

В настройках модуля admin/config/system/geofield-ymap включаем опцию Use loader.

Демо.

Создание карты с помощью javascript

ymaps.ready(function () {
  // for <div id="my-map" style="width:100%; height:400px;"></div>
  var map = Drupal.geofieldYmap.mapInit('my-map', {
    objects: '{"type":"Point","coordinates":[37.62,55.75]}',
    autoCentering: true,
    autoZooming: true
  });
});

Перед использованием не забываем подключить библиотеку:

drupal_add_library('geofield_ymap', 'geofield_ymap');

Демо.

Доступ к созданной карте из Javascript

Все объекты карт находятся в переменной Drupal.geofieldYmap.data['id-карты'].map. Объекты доступны по событию yandexMapInit:

// Доступ к определённой карте
$('#id-карты').bind('yandexMapInit', function (event, map) {
  // ...
});

// Доступ ко всем картам
$(document).bind('yandexMapInit', function (event, map) {
  // ...
});

Полезные ссылки:
Визуальный генератор GeoJSON
Определение координат (координаты идут в обратном порядке)
Сюда можно писать о багах и новых фичах

Полезные статьи:
Как быстро отрисовать 10000 меток на карте и не затормозить всё вокруг
Тепловые карты в API Яндекс.Карт
Метки кластера в виде круговой диаграммы

Написанное актуально для
Geofield Yandex Maps 7.x-1.x-dev
Похожие записи

Комментарии

в настройках указать корректный путь к файлу с пресетами

Гость
31.07.2015, 16:48

Добавил фич-реквест на поддержку токенов в поле Map center.

Использую Global Filter для переключения между городами. Для каждого города хотелось бы иметь свой центр карты. Если бы была поддержка токенов, то можно было бы в списке городов (это термины таксономии) задать координаты центров и при выборе города автоматически менять центр карты глобально на весь сайт, включая формы добавления материалов.

Гость
21.08.2015, 11:50

Добавил координаты в body. В ноде отображается нормально, а на вьшке не выводится. Если добавить полигон вручную на карту, то вьюшка выводит нормально. Куда смотреть?

Михаил
27.08.2015, 12:15

Подскажите, пожалуйста, у вас написан пример "Использование theme-функции Пример создания карты с одной точкой:"

я копирую этот код:

$map = array(
  '#theme' => 'geofield_ymap',
  '#map_type' => 'yandex#map', // optionaly, default 'yandex#map'
  '#map_center' => array(37, 55), // optionaly, default 0,0
  '#map_zoom' => 12, // optionaly, default 0 and auto zooming
  '#map_auto_centering' => TRUE, // optionaly, default FALSE
  '#map_auto_zooming' => TRUE, // optionaly, default FALSE
  '#map_clusterize' => TRUE, // optionaly, default FALSE
  '#map_objects' => '{"type":"Point","coordinates":[37.62,55.75]}', // GeoJSON, optionaly
);
$output = render($map);

вставляю в тело ноды, формат ввода ставлю php код, сохраняю, но карта не выводится.

А где тогда использовать данный код? Сорри если вопрос супер нубский, но ответьте пжлста.

Михаил
27.08.2015, 13:02

а как в базе хранятся данные о полигоне?

вижу только 6 столбцов с координатами, а по факту у полигона около 15ти точек.

а у меня: (
field_maps_lat
field_maps_lon
field_maps_left
field_maps_top
field_maps_right
field_maps_bottom
)

Михаил
27.08.2015, 13:46

колонка wkt

нет такой. вот структура таблицы:
entity_type
bundle
deleted
entity_id
revision_id
language
delta int
field_maps_geom
field_maps_geo_type varchar
field_maps_lat decimal(18,12)
field_maps_lon decimal(18,12)
field_maps_left decimal(18,12)
field_maps_top decimal(18,12)
field_maps_right decimal(18,12)
field_maps_bottom decimal(18,12)
field_maps_geohash

Михаил
27.08.2015, 14:10

выше вы писали, для добавления точки:

var map = Drupal.geofieldYmap.data['geofield-ymap-all-object-in-map-page'].map;
Drupal.geofieldYmap.addObjectByType(map, 'point', [55.684758, 37.738521]);

почему тоже самое не работает для полигона?

                var map = Drupal.geofieldYmap.data['geofield-ymap-all-object-in-map-page'].map;
                Drupal.geofieldYmap.addObjectByType(map, 'polygon', [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0] ]);
Михаил
27.08.2015, 14:25

спасибо! а ссылку к полигону прикрутить можно?

Михаил
27.08.2015, 14:36

что за ссылку?

по другому задам вопрос, вот так можно добавлять? :

                var polygon = new ymaps.Polygon([
                    // Координаты внешнего контура.
                    [[-80, 60], [-90, 50], [-60, 40], [-80, 60]],
                    // Координаты внутреннего контура.
                    [[-90, 80], [-90, 30], [-20, 40], [-90, 80]]
                ], {
                    hintContent: "Многоугольник"
                }, {
                    fillColor: '#6699ff',
                    interactivityModel: 'default#transparent',
                    strokeWidth: 8,
                    opacity: 0.5
                });


                var map = Drupal.geofieldYmap.data['geofield-ymap-all-object-in-map-page'].map;
                Drupal.geofieldYmap.addObjectByType(map, polygon);

а ссылка, в смысле балун

Михаил
27.08.2015, 14:50

нет

может подскажите, тогда как прикрутить балун? к добавленному полигону:

Drupal.geofieldYmap.addObjectByType(map, 'polygon', [[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0] ]]);

Михаил
27.08.2015, 15:18

https://tech.yandex.ru/maps/jsbox/2.1/balloon_and_hint

как я понимаю, только вариант без привязки к геобъекту?

                Drupal.geofieldYmap.addObjectByType(map, 'polygon', [[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0] ]]);



                map.balloon.open([100.0, 0.0], "Содержимое балуна", {
                    // Опция: не показываем кнопку закрытия.
                    closeButton: false
                });
Михаил
27.08.2015, 15:24

не могу понять, почему нужно добавлять полигон так:

Drupal.geofieldYmap.addObjectByType(map, 'polygon', [[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0] ]]);

а не так:

 var polygon = new ymaps.Polygon([
                    // Координаты внешнего контура.
                    [[-80, 60], [-90, 50], [-60, 40], [-80, 60]]

                ], {
                    hintContent: "Многоугольник"
                }, {
                    fillColor: '#6699ff',
                    // Делаем полигон прозрачным для событий карты.
                    interactivityModel: 'default#transparent',
                    strokeWidth: 8,
                    opacity: 0.5
                });
                map.geoObjects.add(polygon);
                map.setBounds(polygon.geometry.getBounds());

вариант работает + легко кастомизируется внешний вид.

наверно потому что первая запись на порядок короче второй

Михаил
27.08.2015, 15:39

наверно потому что первая запись на порядок короче второй

только в этом причина?

И спасибо вам за помощь, все получилось

Михаил
27.08.2015, 15:42

наверно потому что первая запись на порядок короче второй

но в первой записи нет возможности установить цвет, балун и прочие визуальные приблуды.

Михаил
01.09.2015, 17:21

Подскажите, а можно ли, штатными средствами, изменять цвет точек при наведении?

Сергей
09.09.2015, 21:34

Доброго времени суток!
Подскажите, пожалуйста, чайнику, как сделать вот такую штуку.
Мне нужно сделать поиск нод по месту (все, относящиеся к городу, или области, или в радиусе...). Если с радиусом есть решение из коробки, то с городом/областью сложности... Как я понимаю, в geofield хранятся только координаты, и тогда мне нужно еще одно поле для хранения страны-области-города. И, как я понимаю, когда пользователь ставит маркер (поиском по адресу), то адрес яндекс возвращает. Как его из виджета выцепить, чтобы запихнуть в дополнительное поле? Мне кажется, что отдельный запрос геокодирования по координатам будет лишним...

Без геокодирования город не узнать.

Сергей
10.09.2015, 07:30

То есть после того, как пользователь ввел в виджете карты адрес, яндекс адрес нашел и поставил маркер, мне нужно еще раз выполнить запрос, но уже по координатам, верно я понимаю?

Гость
15.09.2015, 11:57

в настройках везде поставил координаты по умолчанию Санкт-Петербург(долгота и широта соответствующая). Карта на сайте подгружается сразу при входе, с центром в Москве а потом через секунду переходит на Санкт-Петербург. Задача сделать чтоб карта загружалась сразу с центром в Санкт-Петербурге, как это сделать ?

Гость
21.09.2015, 14:44

я как раз ее найти и не могу. Где она должна быть в настройках поля ее нет и в настройках отображения тоже?

Опция доступна только в настройках Views

Павел
02.10.2015, 19:53

Спасибо за крутой модуль.
Возможно ли при помощи данного модуля и views сделать фильтры на сайте связанные с фильтрами отображения точек на карте
Например как тут

http://restlook.ru/places/restaurants-and-bars/?show=1&sectiontype=list&page=0&realpage=0&onpage=18&realonpage=18&city=31&brand=&sort=DATE_CREATE&direction=ASC&method=replace&latmin=&latmax=&longmin=&longmax=&smallMapCenterX=&smallMapCenterY=&smallMapZoom=&sessSmallMapCenterX=&sessSmallMapCenterY=&sessSmallMapZoom=&itemsOnMap=&price[from]=&price[to]=&q=

Попробовал связать через термины таксономии и фильтры views, однако при фильтрации карта сбрасывается на точку посреди океана) Могу описать подробнее.
Заранее спасибо за ответ.

пользуйтесь стандартными раскрытыми фильтрами views

Кирилл
11.10.2015, 10:07

Спасибо за модуль! поставил на локальный тестовый сайт, все работает на ура! Поставил на этот же сайт но на хостинге, работает с ошибкой. Поясните пожалуйста как исправить ошибку?

Warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument in check_plain() (line 1567 of /includes/bootstrap.inc). Backtrace:
htmlspecialchars('fϷE~�B@X�q��K@', 3, 'UTF-8') bootstrap.inc:1567
check_plain('fϷE~�B@X�q��K@') handlers.inc:334
views_handler->sanitize_value('fϷE~�B@X�q��K@') views_handler_field.inc:1023
views_handler_field->render(Object) views_handler_field.inc:1041
views_handler_field->advanced_render(Object) theme.inc:354
template_preprocess_views_view_field(Array, 'views_view_field') theme.inc:1125
theme(Array, Array) views_handler_field.inc:1515
views_handler_field->theme(Object) views_plugin_style.inc:525
views_plugin_style->render_fields(Array) geofield_ymap_plugin_style_geofield_ymap.inc:201
geofield_ymap_plugin_style_geofield_ymap->render(Array) theme.inc:49
template_preprocess_views_view(Array, 'views_view') theme.inc:1125
theme(Array, Array) views_plugin_display.inc:2605
views_plugin_display->render() view.inc:1264
view->render() views_plugin_display_page.inc:230
views_plugin_display_page->execute() view.inc:1345
view->execute_display('page', Array) views.module:540
views_page('gde_kupit2', 'page') 
call_user_func_array('views_page', Array) menu.inc:519
menu_execute_active_handler() index.php:21
Гость
24.11.2015, 21:38

Недавно состоялся релиз drupal 8.0. Будет ли портирован на него Geofield Yandex Maps?

@xandeadx, извиняюсь, я это знаю. Дело в том, что я темизирую полей материала через node.tpl.php. Вот код node.tpl.php:

<div class="col-md-4">
  <?php $logo = field_view_field('node', $node, 'field_logo', array('label'=>'hidden')); print render($logo);?>
<ul class="list-group">
  <li class="list-group-item"><i class="fa fa-home"></i><?php $adress = field_view_field('node', $node, 'field_adress', array('label'=>'hidden')); print render($adress);?></li>
  <li class="list-group-item"><a href="tel: <?php print render($phone);?>"><?php $phone = field_view_field('node', $node, 'field_phone', array('label'=>'hidden')); print render($phone);?></a></li>
  <li class="list-group-item"><?php $category = field_view_field('node', $node, 'field_category', array('label'=>'hidden')); print render($category);?></li>
  <li class="list-group-item">Porta ac consectetur ac</li>
  <li class="list-group-item"><?php $map = field_view_field('node', $node, 'field_map', array('label'=>'hidden')); print render($map);?></li>
</ul>
</div>
<div class="col-md-8"><?php echo render($content['body']); ?></div>

Результат: http://storage8.static.itmages.ru/i/15/1201/h_1448981747_9103406_91a0ec…

Гость
04.12.2015, 11:59

Доброе утро. А не подскажете как можно импортировать через Feeds метку на карте? В Feeds есть поля Longitude и Latitude, пытаюсь передать им соответствующие координаты, но точка так и не появляется. Подскажите, что не правильно делаю? Спасибо.

Гость
23.12.2015, 11:02

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

Владимир
29.12.2015, 05:35

Вдруг кому понадобится, для удаления всех меток просто removeAll() перестал работать. Удаляет, но после этого редактирование не работает.
Рабочий вариант (сначала останавливаем принудительно редактирование объекта):

map.geoObjects.each(function(val, i) {
  val.editor.stopEditing();
  map.geoObjects.remove(val);
});
Евгений
03.01.2016, 02:43

Приветствую.
А каким образом можно вывести все метки на карте, однако центровать только на том, что указан в текущем материале?

Евгений
03.01.2016, 03:17

И кстати не получилось никаким образом скрыть пустую карту в Panels. Все равно выводит ее но без координат. Только через js проверять geofieldYmap.data.

Игорь
25.01.2016, 13:51

Приветствую,
а как можно из js переместить карту к новому местоположению?
карта с точками на views..

спасибо!

Гость
26.01.2016, 16:04

Добрый день, xandeadx.

Скажите, может ли описанный способ доступ к карте через jquery не работать, когда вьюшка—блок, а не страница?

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

Сергей
27.01.2016, 23:23

Здравствуйте. У меня следующая задача: есть два типа магазинов(собственные и партнёров), их необходимо отображать на одной карте разными иконками.
Я создал 2 типа материала(для каждого из магазинов). Добавил в фильтр Views второй тип материала через OR. Однако на карте выводится только один. Подскажите, возможен ли вывод двух типов материалов(может задача решается по другому в рамках этого модуля)?

возможен, модулю не важен ни тип материалов, ни тип сущностей

Сергей
27.01.2016, 23:34

xandeadx, спасибо за быстрый ответ. Понял, значит я просто неправильно добавляю второй тип материала, разберусь(видимо надо делать через relationship). Последний вопрос, как назначить кастомную иконку флажка в зависимости от типа материала?

Сергей
28.01.2016, 00:08

Благодарю. Однако всё же не могу вывести 2 типа материала на одной карте. Понимаю что это вопрос скорее по Views, однако был бы благодарен за помощь. xandeadx, можете парой предложений описать, как во Views добавить два типа материала, каждый из которых содержит поле с координатами, чтобы они вывелись на одной карте? (материалы не сязаны модулями Entity Reference или как то ещё)

добавьте фильтр по типу материала, в настройках отметьте нужные

Сергей
28.01.2016, 07:55

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

Модуль не умеет выводить данные из двух полей одновременно.

Сергей
28.01.2016, 10:46

xandeadx, значит я не могу на карте показать одновременно два типа материала?(или они каким то образом должны разделять одно поле?)

типов материала может быть сколько угодно, поле должно быть одно

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

еще странный момент: если на собственно сайте яндекса в карте в поиске вбить координаты, типа 64° 17' 4.197 N 41° 49' 38.044 E ,то яндекс их найдет и укажет это место. В виджете же это не происходит. Зачем-то он знаки минут-секунд в код &#39 переводит

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

function mymodule_preprocess_field(&$variables, $hook) {
  if ('field_map' == $variables['element']['#field_name']) {
    foreach ($variables['element'][0]['#map_objects']['features'] as $key => $item) {
      if (isset($item['properties']['balloonContent'])) {
        $address = $variables['element']['#object']->field_address[LANGUAGE_NONE][$key]['safe_value'];
        $balloon_content = str_replace('[node:field-address]', $address, $item['properties']['balloonContent']);
        $variables['items'][0]['#map_objects']['features'][$key]['properties']['balloonContent'] = $balloon_content;
      }
    }
  }
}
Гость
22.06.2016, 23:10

Здравствуйте, xandeadx.

Есть вопрос по модулю. Мне нужно отобразить на карте 20 тыс. точек. Страница с картой перестает грузиться уже на 2000 примерно.
Можно ли как-то реализовать с помощью вашего модуля такую логику:

1. Изначально показываем, например, 500 штук.
2. При приближении карты автоматически подгружаются еще адреса.

Возможно ли это реализовать? Если да, скажите, в какую сторону смотреть.
Заранее благодарен за ответ!

Модуль не может вывести такое количество точек, да и без модуля это нетривиальная задача. Читайте про ObjectManager, LoadingObjectManager, RemoteObjectManager и активные области (ссылка), пробуйте, экспериментируйте.

Виталий
18.07.2016, 23:15

А с search api как связать?
Сделал views по индексу, добавил поля. Выводится сообщение в теле views: Добавьте поле Geofield
Но нет поля Карта (GeoObject), как в случае views по Нодам.
Пробовал https://www.drupal.org/project/search_api_location тот же результат.
Что сделать можно?

Александр
12.09.2016, 14:31

xandeadx, ожидается ли порт модуля для Drupal 8?

Гость
16.09.2016, 18:28

Добрый день.
Подскажите, как мне добавить такой обработчик к меткам, которые добавляются через views?

placemark.events.add('balloonopen', function (e) {
window.opened_placemark = placemark;
});

Антон
29.09.2016, 20:44

Спасибо большое за Ваш модуль Geofield Yandex Maps!
Прошу Вашего совета о его использовании. Необходимо ввести геоданные не при создании ноды, но чтобы пользователи на странице сайта вносили местоположение «пальцем», ткнув/кликнув на карте. Подобно тому, как при создании материала можно внести геоданные при помощи установки маркера (балуна) на карте. Подскажите, пожалуйста, как ввести геоданные таким образом через карту и считать их (в URLе ли или в переменной?). Спасибо заранее.

Евгений
20.10.2016, 09:17

Возможно ли как-то реализовать подгрузку объектов в ту же карту? Например если выбрать во views - infinite scroll - то для следующих объектов создаётся новая карта, возможна ли подгрузка в эту же? В идеале по увеличению масштаба подгрузить ещё 1000 объектов, потому что именно столько на данный момент тянет Dru.

Алексей
31.10.2016, 12:10

Вывожу форму редактирования материала с полем карты через ctools_modal. При первой загрузке ругается на отсутствие библиотеки (ymaps is not defined). Как эжто можно исправить?

Евгений
01.11.2016, 13:36

Как добавить объект в кластер на карте програмно?

Вячеслав
13.11.2016, 22:25

Большое спасибо за модуль!
Можете подсказать: у меня есть множество материалов с координатами и я бы хотел на страницах этих материалов выводить блок views с ближайшими другими материалами, в радиусе километра, к примеру, от того на странице которого мы находимся?
Как настроить контекстный фильтр? Или есть иной способ?

Павел
17.11.2016, 11:43

Здравствуйте, как реализовать RemoteObjectManager или LoadingObjectManager при использовании вашего модуля? (карта выводиться через view, объекты - данные полей geofield)

Здравствуйте!
Подскажите, пожалуйста, в чем может быть проблема. Карта прекрасно отображалась, но в один прекрасный момент появилась ошибка Exception: geoPHP could not find an adapter of type в функции geoPHP::load() (строка 65 в файле /sites/all/modules/geophp/geoPHP/geoPHP.inc)
Ошибка возникает только при использовании виджета yandex

Владимир
19.12.2016, 16:05

Здравствуйте.
Подключаю api так
<?php drupal_add_js('//api-maps.yandex.ru/2.1/?lang=ru_RU'); ?>

Периодически в друпале появляется ошибка:
Warning: file_get_contents(//api-maps.yandex.ru/2.1/) [function.file-get-contents]: failed to open stream: No such file or directory в функции _locale_parse_js_file() (строка 1527 в файле ..../includes/locale.inc).

Карта при этом нормально работает

Владимир
19.12.2016, 20:05

xandeadx, спасибо!
Как-то я упустил этот момент.

Андрей
23.01.2017, 16:32

Добрый день.
Скажите пожалуйста почему при выводе нод с картами при помощи views и форматера "Яндекс Карта" выдает вот такую ошибку "Exception: Only NDR (little endian) SKB format is supported at the moment в функции WKB->getGeometry() (строка 52 в файле .../sites/all/modules/geophp/geoPHP/lib/adapters/WKB.class.php)".
Как можно это поправить? Заранее спасибо за ответ.

Андрей
24.01.2017, 22:56

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

Мария
28.01.2017, 10:34

Большое спасибо за статью!
Неделю промучилась с GMAp, поставила Geofield Yandex Maps и всё чудесно)

Не подскажите как скрыть карту если не выбрано место на карте при создании материала с картой? Даже если ничего не менять при создании карта все равно показывается.

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

Карта не выводится если в поле нет значений. Вы что-то делаете не так.

Добавить комментарий