Меню

geofield yandex maps настройка

Блог Vaden Pro

Вывод карт при помощи модулей Geofield Yandex Maps в связке с geofield

С каждым днём интернет облегчает нам жизнь практически во всех сферах. Так, уже чтобы пообщаться со своими родственниками и друзьями которые живут или отдыхают за границей не нужно платить большие деньги за роуминг, а можно связаться через интернет. Но сервисы интернет затронули не только средства связи. Одной из очень полезных «фишек» являются данные геолокации или, другими словами карты.

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

При создании сайтов так же удобно добавить страничку на которой находится карта с вашим адресом, и в этом нам помогают такие сервисы как Yandex и Google. Однако, когда нам нужна активная карта и у каждого материала есть свои координаты задача немного затрудняется.

Но не надо сразу впадать в раж и создавать новую карту для каждого материала, а потом группировать все точки и помещать их на общую карту, для этого на Drupal есть отличный модуль.

Описание и установка модуля

Для удобной работы нам понадобится 2 модуля которые работают в связке друг с другом.

Первый это Geofield Yandex maps – это основной модуль, который необходим для ввода , а также вывода информации о местоположении при помощи Яндекс карт.

Второй это Geofield – который представляет собой набор инструментов для вывода этих карт на дисплей.

Устанавливаем модули, как это делать мы рассказывали в одной из наших статей, и активируем все модули с раздела Yandex map,

И все модули в разделе Geofield

Настройки модуля

Настройка Яндекс карт

Первая настройка отвечает за количество блоков с яндекс картами.

Своё значение нам вписать не дают, а дают на выбор от 1 до 20, чего вполне достаточно.

После выбора значения на странице /admin/structure/block будут доступны блоки карт.

Затем идёт блок настроек отображения

Первая настройка в нём — это стиль вывода карты и на выбор есть «Карта» и «Карта открывается нажатием кнопки»

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

Затем идут 2 настройки ширины и высоты блока на странице настройки, а именно административной. То есть на страницах вывода размеры карты, по умолчанию будут другие.

На этом настройки яндекс карт закончены и перейдём в настройки geofield

Настройки Geofield

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

Добавление карт к типу материала

Теперь пришло время добавить карту к материалу, для этого перейдём на страницу управления полями типа материала.

И создадим новое поле. Название и машинное имя ставите на своё усмотрение, в «Тип поля» выбираем Geofield, а в виджете Яндекс карта.

Настройки делаете на своё усмотрение с учётом особенностей проекта

Следующим не маловажным пунктом являет настройка отображения поля. В нём нам надо выбрать «Яндекс карты» ну а дополнительные настройки подбираем под себя.

Читайте также:  tp link 841 настройки статического

Теперь добавим материл в котором есть поле с картами.

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

Теперь перейдя на страницу нашего материала у нас будет выводится карта с отметкой которую мы выставили до этого.

Представление с картой

Теперь выведем все наши материалы на одну карту

Для этого мы воспользуемся представлением. По этому перейдём в раздел /admin/structure/views и нажмём на ссылку «добавить новое представление»

Заполняем поля с его названием и машинным именем на своё усмотрение. В графе «Показать» выбираем «Содержимое», а в графе «Тип» выбираем материал в котором мы добавили поле с картой. Оставляем/ставим галочку на «Создать страницу» и прописываем удобный для себя путь, по которому будет доступно это представление, а в формате выставляем “Яндекс Карта” состоящая из полей

И нажимаем «Продолжить редактирование»

Первым делом перейдём к настройкам отображения, для этого в разделе Формат нажмём на ссылку «Настройки»

Настройки каждый подстраивает на своё усмотрения, я же в своём случае поставлю галочки на Автомаштобирование и Автоцентрирование карты

а в дополнительных настройках поставлю путь к своему пресету (как это делается преведенно в примере снизу)

Теперь добавим наше поле, для этого в графе «Поля» нажмём на ссылку «добавить»

В списке находим своё поле, у него обязательно должна быть приставка (GeoObject)

Остальные поля добавляем и настраиваем по надобности и сохраняем отображение.

Все поля, которые будут добавлены дополнительно, будут выводиться при клике на объект.

Теперь перейдя на страницу представления на ней мы увидим карту c нашими объектами

Для наглядности создадим еще несколько типов материала, и отметим на их адреса. Посмотрим как теперь выводится наша карта.

Как мы видим, новые элементы добавились на карту, а сама карта автоматически подобрала масштаб что бы они все были на ней видны.

Карта в тексте

Также можно вставить карту в текст — для этого переходим в раздел admin/config/content/formats

Выбираем формат которым вы пользуетесь при добавлении содержимого с текстом и нажимаете рядом с ним ссылку «Настроить»

В фильтрах ставим галочку рядом с «Яндекс Карты»

И воспользовавшись подсказкой переходим на страницу настройки модуля и ставим галочку рядом «Использовать предзагрузчик»

На странице настройки формата выставляем порядок фильтров так, что бы карты были первыми

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

Что бы вставить карту в текст необходимо воспользоваться тэгом [map][/map]

Или же воспользоватся кодом

Подключение своих маркеров(пресетов)

Не всегда стандартные значки подходят под фирменный стиль сайта.

По этой причине в этом модуле предусмотрена замена их на свои.

Для этого нам сначала нужно скопировать фал geofield_ymap_presets.example.js из директивы /sites/all/modules/geofield_ymap/js в свою тему.

В файле, по желанию, заменяем название «custom#examplePreset1» на своё, а также прописываем путь к иконке которую мы хотим видеть вместо стандартного пресета.

Теперь необходимо сообщить модулю откуда ему брать информацию о пресетах, для этого заходим на страницу настроек модуля:

И в поле «Путь к пресетам» прописываем путь к скопированному файлу

Осталось только прописать имя пресета для карт

Для этого нам надо перейти на страницу управления отображением и в настройках карты в графе «Имя пресета» прописать своё имя

Все, теперь карты на страницах будут выводиться с кастомными значками.

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

Читайте также:  при установке windows media 10 версия

источник

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

Описание

Модуль 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):

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии

Хорошо бы в депенденсы добавить geofield, по привычке через строчку прочитал описание, долго разбирался почему не появляется новый тип поля.

много функционала не требует geofield — theme функция, form элемент, текстовый фильтр

Кирилл, спасибо за ответ — помогло. Еще важный вопрос — я сделал все настройки по координатам как в представлении, так и в виджете. При выводе всех точек на одной карте — все работает. Однако при «добавить содержимое», я ставлю точку на карте при определенном масштабе карты, однако после сохранения всегда оказывается, что точка максимально приближена на карте (то есть масштаб всегда 16), кто-нибудь сталкивался с таким?

@Дмитрий у объектов на карте нет никаких других свойств кроме координат. Зум, положение карты, фаза луны и т.п. нигде не сохраняется. В настройках форматтера можно указать либо фиксированный зум, либо авто-зум.

У меня такой вопрос: нужно чтобы на карте в views у разных объектов свои пресеты(или иконки). То есть разные цвета: Например магазинов один цвет, а у ресторанов другой.

Пробовал в views -> DEFAULT PRESET NAME вставить токены которую сделал с условиями не показывает. Также в Additional options токены добавлял тоже не получилось.

Читайте также:  nokia lumia 525 hard reset сброс настроек убрать пароль

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

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

Здравствуйте.
Интересует такой вопрос: Воможно ли ставить маркер сразу после поиска точки?
Например пользователь вбил адрес и нажал найти и на это место ставится маркер (point, балун)

Маркер ставится, но друпал7 не сохраняет значение =(

Drupal.geofieldYmap.addObjectByType(map, ‘point’, result.geometry, true);

xandeadx, Есть ли возможность отключении кластеризации при максимальном приближении к точке?
сейчас у меня такая ситуации получилась: разместил 2 ноды по одному адресу.
Соответственно два маркера установились друг на друга и при максимальном увеличении кластер не раскрывается. А если отключить совсем кластеризацию, остается только 1 из двух прикрепленных нод, а вторая, видимо под ней, но не кликабельна

@Сергей простого способа нет

а есть ли возможность перейти от карты к просмотру улиц? если есть, то как это сделать?

Есть ли в планах добавление трека в виде файла (*.KML, *.PLT, *.GPX) с последующим выводом на карту?

не знаю что это, поэтому нет

Можно ли при добавлении на карту точки, добавлять для этой точки название или описание?

Зашибись) Спасибо!
Еще вопрос: возможно ли сделать отображение в левом нижнем углу миникарты с меньшим масштабом?
Думал, для этого нужно прописать в controls в настройках форматтера ‘miniMap’, но тогда карта не отображается. Хотя я даже не уверен, что ‘miniMap’ отвечает именно за это.

в новых картах больше нет этого элемента

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

Это можно сделать через views и аргументы.
Первый вид делается без приближения, например по адресу сайт.ком/карта
второй вид делается с аргументом по термину сайт.ком/карта/%
и там уже сделать масштабирование как надо.

Можно ли добавить возможность создания не только метки, линия, полигона — но и пути, из точки А в точку Б

Geofield не поддерживает такого типа данных.

Не пойму, можно ли с помощью этого модуля строить маршруты?

строить можно, сохранять и выводить нет

Возможно кому-то пригодиться по кластеризации участков.
Если просто сделать участок — то он не сливается в кластер, в кластер сливается только метка.
Была у меня задача сделать чтобы участки сливались в кластеры, поддержки такого функционала в api yandex вроде нету, соответственно и в модуле тоже нет.
Выход следующий: ставим в настройках поля количество допустимых значений больше одного (я поставил не ограничено) и когда создаю ноду ставлю в центр участка метку, а затем обрисовываю участок.
Так получается и метка есть, которая сливается в кластер и участок прорисован.
P.S. Еще раз благодарность xandeadx’у за модуль (и не только за этот модуль, и не только за модули, а за кучу полезной инфы и пр.)

Спасибо за модуль. Один нюанс: объекты на карте можно как то идентифицировать? у них есть id ноды или что-нибудь подобное?
Спасибо

источник

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

Adblock
detector