Клуб API Карт

yandex maps 2 динамический показ, не меняется карта

Пост в архиве.
Nekulin
10 октября 2012, 15:00

Всем привет! пытаюсь сделать динамическую загрузку карты но карта не меняется, я использую кластер.

 

Каждый раз при клике на ссылку myTovarToshkaMap,грузаться метки которые нужно разместить на картке. Если щелкнуть первый раз карта загрузиться , а если второй раз то новых меток не будет и отображается старая карта (

И как можно избавиться от загрузки <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script> приходитсья долго ждать и грузит страницу

 

    $("a[href='#myTovarToshkaMap']").click(function() {
        var self = this;
        // Загрузим карту точки продаж
        ymaps.ready(function () {
            myMap = new ymaps.Map("map_tovar", {center: [56.135459, 47.235484], zoom: 14});
            myMap.controls.add("zoomControl")
                .add("typeSelector")
                .add("mapTools");
            myGeoObjects = [];
            if (temp_sales[$(self).attr('data-tosh-id')]===undefined)
            {
                // Добавим точки продаж на карту
                $.ajax({
                    async: false,
                    url: '/json_sales/' + $(self).attr('data-tovar-id') + '?sale_id=' + $(self).attr('data-tosh-id'),                 // указываем URL и
                    dataType : "json",                              // тип загружаемых данных
                    success: function (data_maps, textStatus) {     // вешаем свой обработчик на функцию success
                        if (data_maps)
                        {
                            sales_list = '';
                            for(i in data_maps)
                            {
                                myPlacemark = new ymaps.Placemark([data_maps[i].lat, data_maps[i].long], {
                                    balloonContentBody: '<strong>Адрес:</strong> ' + data_maps[i].address
                                });
                                myGeoObjects.push(myPlacemark);
                                myMap.setCenter([data_maps[i].lat, data_maps[i].long], 16);
                                sales_list += "<a href='' onclick='tovar_init_center(\"" + data_maps[i].lat + "\", \"" + data_maps[i].long + "\"); return false;'>" + data_maps[i].address + "</a>";
                            }
                            temp_sales[$(self).attr('data-tosh-id')] = data_maps;
                        }
                    }
                });
            }
            else
            {
                var data_maps  = temp_sales[$(self).attr('data-tosh-id')];
                sales_list = '';
                for(i in data_maps)
                {
                    myPlacemark = new ymaps.Placemark([data_maps[i].lat, data_maps[i].long], {
                        balloonContentBody: '<strong>Адрес:</strong> ' + data_maps[i].address
                    });
                    myGeoObjects.push(myPlacemark);
                    myMap.setCenter([data_maps[i].lat, data_maps[i].long], 16);
                    sales_list += "<a href='' onclick='tovar_init_center(\"" + data_maps[i].lat + "\", \"" + data_maps[i].long + "\"); return false;'>" + data_maps[i].address + "</a>";
                }
            }
            var clusterIcons=[{
                    href:'http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/images/m1.png',
                    size:[53,52],
                    offset:[0,0]
                }],
                clusterNumbers=[100],
                clusterer = new ymaps.Clusterer({
                    margin:[20],
                    clusterIcons:clusterIcons,
                    clusterDisableClickZoom: true,
                    clusterNumbers:clusterNumbers
                });


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

        });
    });