views и map

Аватар пользователя nasferatu nasferatu 25 октября 2020 в 11:11

Есть материалы с геополем. Как вывести все материалы на карте умею, но как скомбинировать вывод тизеров в столбик и рядом карту с материалами, но чтобы было взаимодействие между тизерами и картой. Модуль geofield_map, но как добиться как в демо - http://www.geodemocracy.com/geofield_d8/web/geoplaces-gmap-places-rates я пока не понял. Кто реализовывал такое, подскажите, пожалуйста.

Комментарии

Аватар пользователя marassa marassa 25 октября 2020 в 11:51

nasferatu wrote: как скомбинировать вывод тизеров в столбик и рядом карту с материалами

Два разных дисплея view, выведенных блоками.

nasferatu wrote: чтобы было взаимодействие между тизерами и картой

Довольно нехитрый javascript. Вот тут сначала переключитесь на карту, ткнув на закладку "Карта" в правом верхнем углу фотогалереи, а потом поводите мышкой над названиями объектов в правой панели.

nasferatu wrote: Модуль geofield_map

Я использую geolocation, но по идее и с geofield должно получиться.

Аватар пользователя nasferatu nasferatu 25 октября 2020 в 12:28

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

Аватар пользователя marassa marassa 25 октября 2020 в 13:38
1

nasferatu wrote: Думал про 2 отдельных представления связать между собой

Можно и разных, у меня как раз два разных. В модуле geolocation, насколько помню, есть возможность прямо в основном карточном представлении вывести еще и список, но я этим не пользуюсь по ряду причин. Про модуль geofield ничего не знаю. Но сомневаюсь, что подобное будет работать прямо из коробки. Вот мой js в качестве примера:

  $(".view-content>div").find(".rcbt-artefacts,.rcbt-events,.rcbt-cities,.node--type-artefacts").hoverIntent(
      function() { Drupal.geolocation.animateMarker($(".views-field-title a,.field-name-node-title a", this).attr('href'), 1) },
      function() { Drupal.geolocation.animateMarker($(".views-field-title a,.field-name-node-title a", this).attr('href'), 0) }
    );

  Drupal.geolocation.animateMarker = function(url, toggle) {
    var geolocationMap = Drupal.geolocation.maps[0];
    for (var i = 0, len = geolocationMap.mapMarkers.length; i < len; i++) {
      if (geolocationMap.mapMarkers[i].content === url) {
        geolocationMap.mapMarkers[i].setAnimation(toggle);
        return;
      }
    }
  }

Аватар пользователя nasferatu nasferatu 28 ноября 2020 в 10:40

стал использовать geolocation. Пока все замечательно. Но недавно столкнулся с такой проблемой.
Стал делать фасеты, соответственно переделал вьюс (datasource). Присоединяю карту через привязанность, но в настройках CommonMap нет возможности выбрать поле geolocation.
Если добавить поле Address, то можно будет выбрать только его.

Аватар пользователя nasferatu nasferatu 28 ноября 2020 в 22:22

очередная проблема.
Фильтры через фасеты. Вьюс реагирует, но Attachment Карта, не реагирует на фасеты. Может с этим кто-то сталкивался?

Аватар пользователя marassa marassa 29 ноября 2020 в 9:11

Я фасетами не пользуюсь, но когда вчера искал issue, который мне помог в свое время решить проблему с geolocation и search API, я точно там видел какие-то обсуждения про фасеты. Сейчас лень заново искать, попробуйте поискать в geolocation issue queue про search и facets.
Или как вариант отказаться от attachment'а и просто сделать отдельный дисплей или отдельное view для карты. Не знаю правда как это с фасетами будет сочетаться.

Аватар пользователя marassa marassa 28 ноября 2020 в 10:47

nasferatu wrote: Присоединяю карту через привязанность

А что такое "привязанность"? Горе-пиривоччег так перевел Attachment по словарю Мюллера? Вот поэтому я и не могу работать с админкой на таком "русском" и никому не советую.
Что такое "(Company: Store) Store relationship: Geolocation"? Это что-то специфически фасетное? Когда я строю view по search index, мне ничего подобного в полях не предлагается, только поля из datasource, и если поле координат берется оттуда, то всё работает.

Аватар пользователя nasferatu nasferatu 28 ноября 2020 в 10:52

да, все этот гугл.

marassa wrote: Что такое "(Company: Store) Store relationship: Geolocation"?

Добавил через связь - Store.

Изначально как-то пробовал и из datasource брать geolocation, тоже не мог выбрать.

Аватар пользователя marassa marassa 28 ноября 2020 в 11:13

У меня из datasource работает, но я смутно припоминаю, что мне пришлось что-то патчить, чтоб заработало. У меня древняя и сильно мною модифицированная версия geolocation, так что мой код в чистом виде вряд ли вам поможет. Насколько помню, я понял суть проблемы и взял идею решения вот здесь: https://www.drupal.org/project/geolocation/issues/2933526

Аватар пользователя nasferatu nasferatu 28 ноября 2020 в 14:49

Ок. Спасибо. Надо исправлять самому или искать новый патч, т.к. этот уже не подходит.