1)Подскажите, как добавить изображение в балун?
Создаю кастомный кластеризатор:
var places = [];
groups.forEach(function (grp) {
grp.items.forEach(function (plc) {
places.push(plc)
});
});
// Создаем собственный макет с информацией о выбранном геообъекте.
var customItemContentLayout = ymaps.templateLayoutFactory.createClass(
// Флаг "raw" означает, что данные вставляют "как есть" без экранирования html.
'<h2 class=ballon_header>{{ properties.balloonContentHeader|raw }}</h2>' +
'<img class=balloon_img>{{properties.balloonImage|raw }}</img>'+
'<div class=ballon_body>{{ properties.balloonContentBody|raw }}</div>' +
'<div class=ballon_footer>{{ properties.balloonContentFooter|raw }}</div>'
);
var clusterer = new ymaps.Clusterer({
clusterDisableClickZoom: true,
clusterOpenBalloonOnClick: true,
// Устанавливаем режим открытия балуна.
// В данном примере балун никогда не будет открываться в режиме панели.
clusterBalloonPanelMaxMapArea: 0,
// Устанавливаем размер макета контента балуна (в пикселях).
clusterBalloonContentLayoutWidth: 500,
// Устанавливаем собственный макет.
clusterBalloonItemContentLayout: customItemContentLayout,
// Устанавливаем ширину левой колонки, в которой располагается список всех геообъектов кластера.
clusterBalloonLeftColumnWidth: 120
});
// Заполняем кластер геообъектами со случайными позициями.
getPointData = function (index) {
return {
balloonImage: places[index].img,
balloonContentHeader: places[index].name,
balloonContentBody: places[index].Body,
balloonContentFooter: places[index].Footer,
clusterCaption: '<strong>' + places[index].name + '</strong>'
};
},
getPointOptions = function () {
return {
preset: 'islands#redIcon'
};
},
points = [];
groups.forEach(function (grp) {
grp.items.forEach(function (plc) {
points.push(
plc.center
);
});
});
geoObjects = [];
for (var i = 0, len = points.length; i < len; i++) {
geoObjects[i] = new ymaps.Placemark(points[i], getPointData(i),
getPointOptions());
}
clusterer.add(geoObjects);
myMap.geoObjects.add(clusterer);
myMap.setBounds(clusterer.getBounds(), {
checkZoomRange: true
});
Данные координат и данных для меток тянутся из другого .js файла который имеет вид
var groups = [
{ style: "islands#redIcon",
items: [
{
center: [50.621523, 36.578564],
name: "Корпус №1",
Header: "Корпус №1",
Body: "<p>Факультет математики и естественнонаучного образования;</p> <p>Институт инженерных технологий и естественных наук - инженерно-физическое направление;</p> <p><strong>Приемная комиссия</strong></p>",
img: '<img src="image/logo_name.jpg" />'
},
{
center: [50.621442, 36.577685],
name: "Корпус №2",
Header: "Корпус №2",
Body:"Институт педагогический;<p> Факультет иностранных языков",
img: '<img src="image/logo_name.jpg" />'
},
Проблема в том, что стили применяются к кластеризированным меткам, а если они находятся отдельно, то изображение и стили не применяются. Может быть решением является создание отдельного макета для единичного балуна? или как по другому это можно организовать?
Самый простой способ сделать балун с фотографией, это задать balloonContentBody
.
ymaps.ready(function() {
var myMap = new ymaps.Map('map', {
center: [55.733835, 37.588227],
zoom: 12,
controls: []
});
var myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
balloonContentBody: [
'<address>',
'<strong>Офис Яндекса в Москве</strong>',
'<br/>',
'Адрес: 119021, Москва, ул. Льва Толстого, 16',
'<br/>',
'Подробнее: <a href="https://company.yandex.ru/">https://company.yandex.ru</a>',
'<br/>',
'<img src="http://mis.mixmarket.biz/r/200/65735/149827303.jpg"/>',
'</address>'
].join('')
}, {
preset: 'islands#redDotIcon'
});
myMap.geoObjects.add(myPlacemark);
myPlacemark.balloon.open();
});
html,
body,
#map {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
<script type="text/javascript" src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<div id="map"></div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В переменную Vue записан тег (переменная SomeTag и тег <a href="test">топ ссылка</a>)При выводе <div>{{SomeTag}}</div> выводит: <a href="test">топ ссылка</a>,...
У меня есть карта google построенная по сводным таблицам (FusionTablesLayer)
С (WebAPI) и с помощью кода ниже отправлю сообщение указанному пользователю