Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Вывести свойство привязка к Яндекс Картам в Битрикс

Просмотров: 18143

Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента. Например в детальной новости или в детальном элементе каталога. Достаточно часто это нужно при разработке сайта недвижимости или фирменного сайта, для вывода объектов или филиалов, сети офисов и так далее.

У этой заметки есть продолжение: Свойство: привязка к Яндекс:Картам - вывести из нескольких элементов на одну карту

Часто бывает нужно вывести свойство "привязка к Яндекс карте" в детальном описании элемента. Например, в детальной новости или в детальном элементе каталога. Достаточно часто это нужно при разработке сайта недвижимости или фирменного сайта, для вывода объектов или филиалов, сети офисов и так далее.

Для начала в настройках инфоблока создаем новое свойство типа "Привязка к Яндекс картам", затем выводим необходимый компонент в публичной части сайта и копируем шаблон компонента в шаблон своего сайта

Затем добавляем в template.php шаблона компонента вот такой код

<? $arProperty = $arResult["DISPLAY_PROPERTIES"]; ?> 
 <? if (isset($arProperty['YAMAP'])):?> 
 <? $arPos = explode(",", $arProperty['YAMAP']['VALUE']);?> 
 <div class="yandexmapa"> 
 	<?$APPLICATION->IncludeComponent( 
 		"bitrix:map.yandex.view", 
 		"", 
 		Array( 
 			"INIT_MAP_TYPE" => "MAP", 
 			"MAP_DATA" => serialize(array( 
 			'yandex_lat' => $arPos[0], 
 			'yandex_lon' => $arPos[1], 
 			'yandex_scale' => 13, 
 			'PLACEMARKS' => array ( 
 				array( 
 					'TEXT' => $arProperty["YAMAP"]["VALUE"].", ".$arProperty["YAMAP"]["VALUE"], 
 					'LON' => $arPos[1], 
 					'LAT' => $arPos[0], 
 					), 
 				), 
 			)), 
 			"MAP_WIDTH" => "100%", 
 			"MAP_HEIGHT" => "300", 
 			"CONTROLS" => array("ZOOM", "MINIMAP", "TYPECONTROL", "SCALELINE"), 
 			"OPTIONS" => array("DESABLE_SCROLL_ZOOM", "ENABLE_DBLCLICK_ZOOM", "ENABLE_DRAGGING"), 
 			"MAP_ID" => "" 
 	), 
 	false 
 	);?> 
 </div> 
 <?endif;?>

В атрибуте YAMAP хранится наша связь. Также можно создать свойство адрес (город / улица / дом) - типа строка, карта может получать местоположение с помощью поиска по карте Яндекс и использовать типовой компонент "Яндекс карта: поиск по карте"

В итоге получится примерно так же как я вывел это на одном разрабатываемом сайте по недвижимости Москвы

Михаил Базаров 10.02.2017
Цитата
Константин Нечаев написал:
Как таким же методом вывести карту Гугла?
Просто вызовите компонент Гугл карта из стандартных, правда не помню выпилили его или нет.
Константин Нечаев 10.02.2017
Цитата
Михаил Базаров пишет:
Цитата
Константин Нечаев написал:
Как таким же методом вывести карту Гугла?
Просто вызовите компонент Гугл карта из стандартных, правда не помню выпилили его или нет.
Нашел прямо вариант с кодом.
Сергей Стефанович 18.04.2018
Цитата
Михаил Базаров пишет:
Вставте карту не в template.php а в component_epilog.php тогда кеширование будет работать
а как это сделать??
Михаил Базаров 19.04.2018
Цитата
Сергей Стефанович написал:
Цитата
Михаил Базаров  пишет:
Вставте карту не в template.php а в component_epilog.php тогда кеширование будет работать
а как это сделать??
Создать файл component_epilog.php рядом с template.php и вставить туда
Сергей Стефанович 20.04.2018
Цитата
Михаил Базаров пишет:
Создать файл component_epilog.php рядом с template.php и вставить туда
а как потом вывести это всё в нужном месте в template.php ??

Михаил, не плохо было бы увидеть статью по component_epilog.php. С разъяснением зачем он и как работает.
Михаил Базаров 20.04.2018
Цитата
Сергей Стефанович пишет:
Цитата
Михаил Базаров пишет:
Создать файл component_epilog.php рядом с template.php и вставить туда
а как потом вывести это всё в нужном месте в template.php ??

Михаил, не плохо было бы увидеть статью по component_epilog.php. С разъяснением зачем он и как работает.
Зачем нужен и как используется описано вот здесь. Вроде как и добавить нечего  :)  
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2975
Сергей Стефанович 21.04.2018
Цитата
Михаил Базаров пишет:
Зачем нужен и как используется описано вот здесь. Вроде как и добавить нечего    
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2975
Михаил, читал эту статью несколько раз уже, и блог читал)
но все равно не понял как решить данную задачу, что, куда и как вставлять  :)
Тимур Парфенцев 14.11.2018
Код
'TEXT' => $arProperty["YAMAP"]["VALUE"].", ".$arProperty["YAMAP"]["VALUE"], 
 
А зачем здесь дважды в бабл передавать координату. Попробовал заменить на

Код
"TEXT"=>$arItem["NAME"].",<br> ".$arItem["PREVIEW_TEXT"]
 
Отлично работает. (В списке новостей). Спасибо за решение.
Михаил Базаров 15.11.2018
Цитата
Тимур Парфенцев написал:
Код
 'TEXT' => $arProperty["YAMAP"]["VALUE"].", ".$arProperty["YAMAP"]["VALUE"], 
  
А зачем здесь дважды в бабл передавать координату. Попробовал заменить на

Код
 "TEXT"=>$arItem["NAME"].",<br> ".$arItem["PREVIEW_TEXT"]
  
Отлично работает. (В списке новостей). Спасибо за решение.
Да, видимо продублировал когда копировал
Николай Толстых 16.04.2019
Михаил, спасибо за статью. Подскажите, а как быть со списком новостей (news.list)? В итоге подключаются сразу множество компонентов bitrix:map.yandex.view. Может как то отдельно свойство
Код
<?=$arItem['DISPLAY_PROPERTIES']['YAMAP']['VALUE']?>
выводить? Но так выползают только координаты.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Многосайтовость битрикс на разных доменах и поддоменах Просмотров: 61197 Часто спрашивают "как настроить многосайтовость Битрикс на разных доменах", решил записать... Информация о заказах и содержимое корзины текущего пользователя. Просмотров: 11734 В процессе разработки сайта могут понадобиться рецепты приведенные ниже. Использовать можн... Создание блога с комментариями, оценками и просмотрами на сайте с 1С-... Просмотров: 22989 Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в... Вывести свойство привязка к Яндекс Картам в Битрикс Просмотров: 18143 Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента... Заполнение габаритов товара, после обмена с 1С, из свойств элемента и... Просмотров: 10383 Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1... Как работает система сертификации партнеров 1С-Битрикс, уровни партне... Просмотров: 3456 Сертификация от «1С-Битрикс» – это объективная оценка знаний и практических навыков разраб... Вывести информацию, только на первом уровне раздела каталога, в 1С-Би... Просмотров: 4216 Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента по... Вывести список всех пользователей с необходимой информацией Просмотров: 24030 Если нужно, на какой-либо странице сайта, вывести всех пользователей из группы "Зарегистир... Создание раздела инфоблока при регистрации пользователя в Битрикс Просмотров: 7873 Например вам нужно выводить информацию исключительно для определенного пользователя. Само ... Следующая/предыдущая новость/статья при просмотре подробной в Битрикс Просмотров: 17521 Дизайн создается только для наглядного и удобного предоставления содержимого сайта, пользо... Смена вида карточек товаров в catalog.section с иммитацией AJAX Просмотров: 782 Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии, запис... Скопировать номер телефона из поля пользователя в телефон для регистр... Просмотров: 1593 Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режи... Автоматически отгрузить заказ и сменить статус отгрузки, при выполнен... Просмотров: 321 Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузка... Создание скидки на общую сумму покупки в Битрикс корзине Просмотров: 26908 Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать м... Ленивая подгрузка картинок в компоненте, на vue js Битрикс Просмотров: 9424 Если на одну страницу сайта выводится большое количество картинок, которые могут долго под... Подключение SSL на Битрикс виртуальная машина Просмотров: 11893 С первого января 2017 года, наличие безопасного соединения HTTPS становится практически об... Добавление и удаление из сравнения на AJAX: Битрикс Просмотров: 17648 Рецепт лежал у меня в закромах, почти о нем и забыл, но тут подвернулся под руку- решил оп... Определить местоположение пользователя и показать на карте Просмотров: 3254 Задача определить местоположение текущего пользователя и показать его на карте, с меткой. ... Вывод даты создания элемента в правильном формате в Битрикс Просмотров: 21619 Если нужно вывести дату создания новости, статьи или товара в каталоге, в принципе любого ... Автоматически помечаем новинки лейблом в каталоге битрикс Просмотров: 5357 Если вы хотите помечать новинки каталога, вашего магазина на Битрикс, лейблом "Новинка". И...