Клуб API Карт

Как у группы меток проставить номера и name с description

viacheslav.sukhov
28 сентября 2011, 14:18
Добрый день, реализовал подгрузку группы меток так, как здесь http://api.yandex.ru/maps/jsapi/examples/mapgroup.html

Но как мне у меток проставить названия и описания, чтобы было правильно? Потому что если в цикле указываю значения, то ставит у всех меток последнее значение.
8 комментариев
Подписаться на комментарии к посту

потому что так устроен javascript - у вас, судя по всему, одна из самых распространенных ошибок проявилась.

покажите код, я подскажу где поправить

Смысл какой. При выборе города из списка подгружается карта города, подгружается список сервисных центров с адресами и подгружаются метки этих сервисных центров. Сейчас метки подгружаются правильно, но я никак не могу их пронумеровать и у каждой метки проставить description с адресом и name - названием сервисного центра
Комментарий удалён

поставить можно где-то рядом с  _this.add(geocoder.get(0)), например задать в этот самый .get(0) свои параметры.

Хотя, если я правильно понимаю что вы делаете, лучше произведите геокодирование заранее и подгружайте готовые данные(можно в виде YML)

А как это сделать? _this.description() или как? Я синтаксис долго искал....может у меня руки кривые, но не нашел.

И как в .get(0) можно задать свои параметры?
Раньше у меня был такой код он работал также как и текущий, но тоже не нумеровал и не проставлял описания как надо:

while ( i < 20) {
            var street = $(server).find('#service-address-'+i).html();
            var service = $(server).find('#service-name-'+i).html();

            if(street!=null) {
                var geocoder = new YMaps.Geocoder("Россия, "+ address+", " + street,{ prefLang : "ru" });
                var text = i;
                var street2 = street;
                YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {

                    if (geocoder.get(0).getGeoPoint()) {       
                        var geoCoords = geocoder.get(0).getGeoPoint();
                        cplacemark = new YMaps.Placemark(geoCoords);
                        cplacemark.name = service;
                        cplacemark.description = street2;
                        cplacemark.setIconContent(text);
                        map.addOverlay(cplacemark); 
                    }
                });

            }
            i++;
Может быть здесь я что-то не так делаю и можно выкрутиться
Так кто-нибудь может мне помочь?