Клуб API Карт

Отображение разных меток с учетом значения

goscha.gora
27 мая, 19:45

Добрый день!

Пробую организовать отображение разных на карте меток в зависимости от значения произвольных полей в постах к которым они относятся.

Допустим имеется поле  'meta_key' => 'vibor', 'value' =>  array('Первое', 'Второе)'.

на  карте отображены метки с балунами и сылками на посты . Вот часть кода отвечающая за вывод

$content = "<script type='text/javascript'>
            ymaps.ready(function () {
                              myMap = new ymaps.Map('yam-$idmap', {
                    center: [55.819543, 37.611619],
                    zoom: 12,
                    controls: ['zoomControl','typeSelector','fullscreenControl']
                }),
                clusterer = new ymaps.Clusterer(),
                geoObjects = [];
                
                // Создаем экземпляр класса ymaps.control.SearchControl
                mySearchControl = new ymaps.control.SearchControl({
                    options: {
                        provider:'yandex#search' 
                    }
                });
                myMap.controls.add(mySearchControl);
                          ";
    
            foreach($posts as $k=>$post){
                $thumbnail = (has_post_thumbnail( $post->ID ))? get_the_post_thumbnail($post->ID,'thumbnail'): '';
                $content .= 'geoObjects['.$k.'] = new ymaps.Placemark('
                        . '['.implode(',',unserialize($post->coords)).'], '
                        . '{
                            balloonContentBody: [\'<p><b>'.$post->post_title.'</b></p><p>'.$thumbnail.yam_excerpt($post).'</p>\'].join(\'\'),
                            clusterCaption: \''.$post->post_title.'\'
                            }, {preset: \'islands#glyphIcon\', iconGlyphColor: \'green\', iconColor: \'green\'}),
                               ';
            }
            
            $content .= "

            clusterer.options.set({
                gridSize: 80,
                clusterDisableClickZoom: false
            });

            clusterer.add(geoObjects);
            myMap.geoObjects.add(clusterer);

            myMap.setBounds(clusterer.getBounds(), {
                checkZoomRange: true
            });
        });
        </script>
        <div id='yam-$idmap' class='yam-map'></div>";
    
    return $content;

Пожалуйста подскажите, каким образом можно дополнить код, чтобы была возможность отображения отдельной метки дя каждого значения произвольного поля.

Хотябы в общих чертах. Если будет пример, еще лучше.

Заранее спасибо !