Клуб API Карт

Автодобавление меток

Пост в архиве.

Есть сайт на битриксе с объектами. которые нужно расставить на карте. Нашел способ, как сделать все под названием "Оптимальное добавление множества меток". А можно ли все метки загружать из базы сайта? Чтобы при добавлении нового объекта сразу выставлялась метка.

П.С. я СЕОшник, поэтому в программировании никакой, знаю только базис. Как сделать, чтобы в data.json добавлялись координаты, нужные мне?

8 комментариев
посмотрите готовые модули для Битрикса
https://tech.yandex.ru/maps/jsapi/
Удалённый пользователь
19 апреля 2016, 11:12
dimik,
А вот то, что внизу не видел, смотрю. Спасибо!
Удалённый пользователь
19 апреля 2016, 11:53
dimik,
Работает криво, выдает ошибки при определении адреса. Вопрос мой все еще актуален
Удалённый пользователь
19 апреля 2016, 11:12
Смотрел, там есть карта готовая и берет данные из инфоблока, но она сильно глючит, судя по отзывам, была бы бесплатной - попробовал, а так..Может все же есть возможность сделать самому?
Возможность есть, надо видимо уметь готовить Битрикс, похапэ и вот это всё
Да можно, как рас это делал, если у вас хранятся координаты в инфоблоке то выводите их на хпх передавайте карте json массив и выставляйте метки. Вот вам как пример кусок моего кода
Jquery
У меня массив объявляется т.к. данные статичные но их много вам надо сделать генерацию такого
var MasAg=[
{
Numb:1,
Koordinat:[43.115917299098285,131.90459149999992],
Placemark:'',
},
{
Numb:3,
Koordinat:[43.154680299103866,131.91140149999998],
Placemark:'',
}
]
далее идет отрисовка карты и выставление на ней меток из масива
ymaps.ready(function(){
var map = new ymaps.Map("map", {
center:[43.13236667411461,131.9226823044433],
zoom: 13,
controls: ["default","routeEditor"]
});
jQuery.each(MasAg, function(keyMas) {
MasAg[keyMas].Placemark = new ymaps.Placemark([MasAg[keyMas].Koordinat[0],MasAg[keyMas].Koordinat[1]],
{
balloonContent: '<img style="width:150px;height:200px;" src="MasAg[keyMas].Numb+'/kkk.jpg" />',
hintContent: MasAg[keyMas].Numb,
},
{
// Опции.
// Необходимо указать данный тип макета.
iconLayout: 'default#image',
// Своё изображение иконки метки.
iconImageHref: 'img/metka.png',
// Размеры метки.
iconImageSize: [18, 16],
// Смещение левого верхнего угла иконки относительно
// её "ножки" (точки привязки).
iconImageOffset: [0, 0]
}
);
map.geoObjects.add(MasAg[keyMas].Placemark);
MasAg[keyMas].Placemark.events.add('click', function (e) {
map.setZoom(17);
});

});
map.controls.add('zoomControl');
});

Вам остается лишь сгенерировать данный массив выбрав данные из инфоблока например через метод get::list
и все)
Удалённый пользователь
25 апреля 2016, 14:39
askom.td,
А можно подробнее? Я ж СЕОшник..