Клуб API Карт

подскажите как правильно Как правильно сделать цикл

bratyxa-servis
28 декабря 2013, 16:46

Привет всем. Наткнулся на хороший пример вот он http://dimik.github.io/ymaps/examples/group-menu/menu03.html захотел себе его реализовать, но проблема в том что я хочу вывести данные из бд, так как я не привык работать с js для меня трудно передать данные из php в js нашел пример где есть вывод с бд  вот этот пример http://webmap-blog.ru/yandex-maps/sozdanie-karty-na-sajte-s-adresami-magazinov-s-ispolzovaniem-api-yandeks-kart-versii-2-x-prodolzhenie

Так вот я решил объединить эти два примера  в идеале должно получиться список городов  по которым щелкаешь и появляется нужный регион с метками, которые будут фильтроваться с помощью меню.

мне надо сделать цикл, что бы в нем была нужная мне информация вот сейчас эта информация есть в первом примере в таком виде

 

 group1 = new ymaps.GeoObjectArray({

                properties: {

                    id: 'group-1',

                    name: 'Известные памятники'

                }

            }, {

                preset: 'twirl#redIcon'

            }),

            group2 = new ymaps.GeoObjectArray({

                properties: {

                    id: 'group-2',

                    name: 'Покушайки'

                }

            }, {

                preset: 'twirl#greenIcon'

            }),

            group3 = new ymaps.GeoObjectArray({

                properties: {

                    id: 'group-3',

                    name: 'Оригинальные музейчики'

                }

            }, {

                preset: 'twirl#orangeIcon'

            }),

            group4 = new ymaps.GeoObjectArray({

                properties: {

                    id: 'group-4',

                    name: 'Красивости'

                }

            });

 

Здесь надо создать четыре группы проблема в том, что я не знаю, сколько будет у меня групп в меню, поэтому будем делать все на автомате будем считать, что в php я сделал массив категорий $json = json_encode($cat);  $cat массив вида  id категории=>имя категории. Как я уже говорил, что я не знаю количества категорий и в цикле надо эти категории объявить как в коде который я представил выше.

вот второй код 

 

 // Наполняем группы геообъектами.

            group1

                .add(new ymaps.Placemark([50.426472, 30.563022], { id: 'group-1-1', balloonContent: 'Монумент "Родина-Мать"' }))

                .add(new ymaps.Placemark([50.45351, 30.516489], { id: 'group-1-2', balloonContent: 'Памятник "Богдану Хмельницкому"' }))

                .add(new ymaps.Placemark([50.454433, 30.529874], { id: 'group-1-3', balloonContent: 'Арка Дружбы народов' }));

 

            group2

                .add(new ymaps.Placemark([50.50955, 30.60791], { id: 'group-2-1', balloonContent: 'Ресторан "Калинка-Малинка"' }))

                .add(new ymaps.Placemark([50.429083, 30.521708], { id: 'group-2-2', balloonContent: 'Бар "Сало-бар"' }))

                .add(new ymaps.Placemark([50.450843, 30.498271], { id: 'group-2-3', balloonContent: 'Абсент-бар "Палата №6"' }))

                .add(new ymaps.Placemark([50.454834, 30.516498], { id: 'group-2-4', balloonContent: 'Ресторан "Спотыкач"' }));

 

            group3

                .add(new ymaps.Placemark([50.443334, 30.520163], { id: 'group-3-1', balloonContent: 'Музей грамзаписи и старинных музыкальных инструментов' }))

                .add(new ymaps.Placemark([50.446977, 30.505269], { id: 'group-3-2', balloonContent: 'Музей истории медицины или Анатомический театр' }))

                .add(new ymaps.Placemark([50.452512, 30.530889], { id: 'group-3-3', balloonContent: 'Музей водыВодно-информационный центр' }));

 

            group4

                .add(new ymaps.Placemark([50.45987, 30.516174], { id: 'group-4-1', balloonContent: 'Замок Ричарда-Львиное сердце' }))

                .add(new ymaps.Placemark([50.445049, 30.528598], { id: 'group-4-2', balloonContent: '"Дом с химерами"' }))

                .add(new ymaps.Placemark([50.449156, 30.511809], { id: 'group-4-3', balloonContent: 'Дом Рыцаря' }));

 

 

пустьздесьядаммассив $json = json_encode($metki); внембудут  id, town - город,  address- адрес, lat- широта,          lon- долгота, id_cat- id категорииккоторойнужноотнести 

и третий код 

 

 // Добавляем все группы в одну коллекцию.
 visible
     .add(group1)
     .add(group2)
     .add(group3)
     .add(group4);

  

и эти все массивы надо объявить в цикле, если я не ошибаюсь, реально не знаю как сделать еще в php что-то бы сделал, но не в js. Большое спасибо за ответ. 

4 комментария
Подписаться на комментарии к посту

Проще всего передавать данные как GeoJSON, или YMapsML

тогда не нужно их обрабатывать в js

Я уже лучше буду по примеру что-то пытаться сделать, что у меня есть перед глазами итак голова идет кругом:-$

Вы бы не могли скинуть ссылку на документацию

GeoJSON пример номер 5

YMapsML и в этой статье есть про построение меню из YMapsML