Вообщем ситайция такая, на странице изначально выводится карта компонентом bitrix:map.yandex.view, в нее запихиваем нужные нам PLACEMARKS из свойства элементов. Т.е. выводим на карте все метки, которые проставлены у элементов у определенного раздела. Затем мы выбираем другой раздел и загружаем этот же компонент через аякс. Все бы хорошо, карта загружается, но PLACEMARKS от нужного раздела не проставляются... Проставляются только тогда, когда мы выбираем раздел который загружался с самого начала... соответсвенно init_<?=$MAP_ID?>(); не спасает. Чтобы не бало глюков я для каждого раздела подгружаю компоненту bitrix:map.yandex.view с уникальным " MAP_ID " чтобы после загрузки данных инициализировать именно ту карту, какую мы загрузили... Поидее же init_<?=$MAP_ID?>(); как раз и инициализирует карту и подгружает метки. Ну седя по тому какие скрипты генерит данный компонент. Может я че не так вызываю, подскажите пожалуйста)))
в файле, который загружает карту примерно такой код
[CODE]if($_REQUEST["SECTION_ID"]){
$sect = $_REQUEST["SECTION_ID"];
}else{
$sect = 15;
}
$arSelect = Array("ID", "NAME", "PROPERTY_ADRES", "PROPERTY_MAP");
$arFilter2 = Array("IBLOCK_ID"=>3, "ACTIVE"=>"Y", "SECTION_ID"=>$sect);
$db_list = CIBlockElement::GetList(Array("PROPERTY_MAP"=>"ASC"), $arFilter2, false, false, $arSelect);
$i=0;
while($ar_result = $db_list->GetNext())
{
if($ar_result["PROPERTY_MAP_VALUE"]!=""){
$MAP = explode (",", $ar_result["PROPERTY_MAP_VALUE"]);
$TEXT = "<b>".$ar_result["NAME"]."</b><div>".$ar_result["PROPERTY_ADRES_VALUE"]."</div>";//составляем текстовое поле маркера. Возможно использовать html и php.
$PLACEMARKS[$i]["LON"] = $MAP[1]; //Заполняем массив маркера данными
$PLACEMARKS[$i]["LAT"] = $MAP[0]; //
$PLACEMARKS[$i]["TEXT"] = $TEXT; //
$i++;
}
}
$map_id = "maps_".$sect;
<?$GLOBALS["APPLICATION"]->IncludeComponent(
"bitrix:map.yandex.view",
"",
Array(
"INIT_MAP_TYPE" => "MAP",
"MAP_DATA" => serialize(
array(
'google_lat' => $MAP[0], // координаты центра карты
'google_lon' => $MAP[1], // используем координаты последнего маркера
'google_scale' => 10, // масштаб карты 0-20
'PLACEMARKS' => $PLACEMARKS // подготовленный ранее массив маркеров
)
),
"MAP_WIDTH" => "400",
"MAP_HEIGHT" => "415",
"CONTROLS" => array("ZOOM", "MINIMAP", "TYPECONTROL", "SCALELINE"),
"OPTIONS" => array("ENABLE_SCROLL_ZOOM", "ENABLE_DBLCLICK_ZOOM", "ENABLE_DRAGGING"),
"MAP_ID" => $map_id
),
false
);?>
[/CODE]
в js, которое отвечает за подгрузку карты - код такой
[CODE] (jQuery)(function($){
$('a').on('click', function(){
load_content_city($(this).attr('href'), $(this).attr('rel'));
});
});
function load_content_city(link_href, id_sect){
$('.conteiner_thith_map').load(link_href, function(){
map_id = "init_maps_"+id_sect;
window[map_id]();
});
}
[/CODE]