Нужен вариант для квартир. Тоесть показывать на карте все объекты, что бы размер карты подстраивался.
Нашел такой вариант, точки появляютя, но как передать параметры для баллуна? Если они у меня в массиве и прокручиваются, там где идет добавление координат. То есть:
<script>
ymaps.ready(init);
var myMap;
function init ( ) {
myMap = new ymaps.Map("map", {
center: [55.585749, 37.915356],
zoom: 3
}),
clusterer = new ymaps.Clusterer({
preset: 'islands#invertedDarkOrangeClusterIcons',
clusterHideIconOnBalloonOpen: false,
geoObjectHideIconOnBalloonOpen: false
}) ;
getPointData = function (index) {
return {
balloonContentBody: 'балун <strong>метки ' + index + '</strong>',
clusterCaption: 'метка <strong>' + index + '</strong>'
};
},
getPointOptions = function () {
return {
preset: 'islands#violetIcon'
};
},
geoObjects = [ ],
points = [
<?while($element = $result->GetNextElement()) {
$arItem = $element->GetFields();?>
[<?=$arItem['PROPERTY_MAPKA_VALUE']?>],
// Вот тут идет выборка данных.
// Но тут наполняются координаты.
// Как мне в боллуты передать имена? - $arItem['NAME']
// Если я только в этом цикле могу их вытащить.
// Или может какой другой способ для моей задачи есть?
<?}?>
];
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
}) ;
$("#map").show( ) ;
fix( ) ;
myMap.setBounds(clusterer.getBounds( ) , {
checkZoomRange: true
}) ;
}
function fix( ){
myMap.container.fitToViewport( ) ;
}
</script>