Вопрос в следующем, как прикрепить к этим меткам балуны, метки идут через FeatureCollection и я не понимаю как сделать к ним балун, пробовал от myPlacemark, но так не работает.
<script type="text/javascript">
ymaps.ready(init);
var myMap,
myPlacemark;
function init() {
var myMap = new ymaps.Map('map', {
center: [55.755826, 37.6173],
zoom: 10
});
red = new ymaps.Placemark([55.709658441942416, 37.632903415777605], {
// Чтобы балун и хинт открывались на метке, необходимо задать ей определенные свойства.
balloonContentHeader: "AFI Residence Paveletskaya",
balloonContentBody: "Cкачать презентацию",
balloonContentFooter: "Москва, Павелецкая наб., д.8 - 6 ",
hintContent: "Подробнее"
});
myMap.geoObjects.add(red);
// Функция, которая по состоянию чекбоксов в меню
// показывает или скрывает геообъекты из выборки.
function checkState () {
var shownObjects,
byColor = new ymaps.GeoQueryResult(),
byShape = new ymaps.GeoQueryResult();
// Отберем объекты по цвету.
if ($('#red').prop('checked')) {
// Будем искать по двум параметрам:
// - для точечных объектов по полю preset;
// - для контурных объектов по цвету заливки.
byColor = myObjects.search('options.fillColor = "#ff1000"')
.add(myObjects.search('options.preset = "twirl#redIcon"'));
}
if ($('#green').prop('checked')) {
byColor = myObjects.search('options.fillColor = "#00ff00"')
.add(myObjects.search('options.preset = "twirl#greenIcon"'))
// После того, как мы нашли все зеленые объекты, добавим к ним
// объекты, найденные на предыдущей итерации.
.add(byColor);
}
if ($('#yellow').prop('checked')) {
byColor = myObjects.search('options.fillColor = "#ffcc00"')
.add(myObjects.search('options.preset = "twirl#yellowIcon"'))
.add(byColor);
}
// Отберем объекты по форме.
if ($('#point').prop('checked')) {
byShape = myObjects.search('geometry.type = "Point"');
}
if ($('#polygon').prop('checked')) {
byShape = myObjects.search('geometry.type = "Polygon"').add(byShape);
}
if ($('#circle').prop('checked')) {
byShape = myObjects.search('geometry.type = "Circle"').add(byShape);
}
// Мы отобрали объекты по цвету и по форме. Покажем на карте объекты,
// которые совмещают нужные признаки.
shownObjects = byColor.intersect(byShape).addToMap(myMap);
// Объекты, которые не попали в выборку, нужно убрать с карты.
myObjects.remove(shownObjects).removeFromMap(myMap);
}
$('#red').click(checkState);
$('#green').click(checkState);
$('#yellow').click(checkState);
$('#point').click(checkState);
$('#polygon').click(checkState);
$('#circle').click(checkState);
// Создадим объекты из их JSON-описания и добавим их на карту.
window.myObjects = ymaps.geoQuery({
type: "FeatureCollection",
features: [
{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55.895636, 37.462314900000024]
},
options: {
preset: 'twirl#yellowIcon'
}
},
{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55.8104533, 37.64509599999997]
},
options: {
preset: 'twirl#greenIcon'
}
},
{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55.70864899999999, 37.64558490000002]
},
options: {
preset: 'twirl#greenIcon'
}
},
{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55.84060729999999, 37.49379109999995],
radius: 10000
},
options: {
preset: 'twirl#redIcon'
}
}
]
}).addToMap(myMap);
}
var expanded = false;
function showCheckboxes() {
var checkboxes = document.getElementById("checkboxes");
if (!expanded) {
checkboxes.style.display = "block";
expanded = true;
} else {
checkboxes.style.display = "none";
expanded = false;
}
}
</script> <form>
<div class="multiselect">
<div class="selectBox" onclick="showCheckboxes()">
<select>
<option>Выбрать фильтр</option>
</select>
<div class="overSelect"></div>
</div>
<div id="checkboxes">
<label for="red" >
<input type="checkbox" id="red" checked=true/>Красные</label>
<label for="green">
<input type="checkbox" id="green"checked=true />Зеленые</label>
<label for="yellow">
<input type="checkbox" id="yellow"checked=true />Желтые</label>
<label for="point">
<input type="checkbox" id="point"checked=true />Все объекты</label>
</div>
</div>
</form>