Guest User

map.vmr.gov.ua/scripts/__RasPil.js

a guest
May 18th, 2016
3,497
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. var ___RaspiL_RAW_DATA; // тут храним все то говно, что пришло с сервера, дабы не лазить постоянно на него и не грузить
  3. var ___Raspil_Year_Start = 2014;
  4. var ___Raspil_Year_End = 2015;
  5.  
  6. //var LayerTraffic_id; // ID слоя содержащего данные по транспорту
  7. //var LayerTraffic; // объект, содержащий слой транспорта
  8.  
  9. //
  10. // Шаблон для отображения записей в списках найденного
  11. //
  12. // _ObjLinkMap - код для гиперссылки "показать на карте"
  13. // _ObjLinkinfo - код для гиперссылки "показать информацию"
  14. // _ObjAddr - 1-я жирная строка названия ( адрес )
  15. // _ObjName - 2-я обыная строка названия ( название объекта)
  16. // _ObjLayer - 3-я мелкая курсивная строка (каменты и прочее )
  17. function RSTemplateListItemHTML(_ID, _ObjLinkMap, _ObjLinkinfo, _ObjAddr, _ObjName, _ObjLayer, _attachment) {
  18. }
  19.  
  20. // добавить один элемент списка распила в список распила
  21. function AddRSItemInList(__rs_list_container, _Marker_Id, _lat, _lng, _ObjLinkinfo, _Header, _Descr1, _Descr2, _attachment) {
  22.  
  23.     var RCon = document.getElementById(__rs_list_container);
  24.     if (RCon != null) {
  25.  
  26.         // родительский контейнер где хранится вся поебень по элементу списка распила.
  27.         var cont_RCListItem = document.createElement("div"); cont_RCListItem.id = "rcl_" + _Marker_Id; cont_RCListItem.className = 'stRSLi_DIV0';
  28.  
  29.         // галка для отображения или убирания маркера с карты
  30.         var cb_state = document.createElement("input");
  31.         cb_state.type = "checkbox";
  32.         cb_state.id = "cbRSSubGroup_" + _Marker_Id;
  33.         cb_state.value = "=";
  34.         cb_state.checked = true;
  35.         cb_state.onchange = function () { showOrHide(cb_state.id, _Marker_Id); } // ShowThisShitOnMapByXY(" + subShit[ii].LatLng[0] + "," + subShit[ii].LatLng[1] + ",'" + "" + "' )
  36.  
  37.         // картинка-кнопка "показать на карте"
  38.         //var showShit = document.createElement("img");
  39.         //showShit.title = "";
  40.         //showShit.src = "images/buttons/ShowOnMapNo_sm.png";
  41.         //showShit.onclick = function () { ShowThisShitOnMapByXY(_lat, _lng, ''); }
  42.  
  43.         // текст содержащий заголовок
  44.         var lb_header = document.createElement("span"); lb_header.textContent = " " + _Header; lb_header.className = 'RaspilSubGroupHeader';
  45.  
  46.         if (_lat * _lng != 0) {
  47.             lb_header.onclick = function () { ShowThisShitOnMapByXY(_lat, _lng, ''); }
  48.             //showShit.src = "images/buttons/ShowOnMapON_sm.png";
  49.             lb_header.className = 'stAddr zHyperLink';
  50.         }
  51.  
  52.         // текст содержащий описание
  53.         var lb_descr = document.createElement("span"); lb_descr.textContent = " " + _Descr1; lb_descr.className = 'stName';
  54.  
  55.         // часть где хранится галка показхать/убрать
  56.         var subcont_RCL1 = document.createElement("div"); subcont_RCL1.className = 'stRSLi_DIV1';
  57.         // часть где хранится описание и заголовки
  58.         var subcont_RCL2 = document.createElement("div"); subcont_RCL2.className = 'stRSLi_DIV2';
  59.  
  60.         // jeo12 jkx122015
  61.         // jeo6 2015jkx6
  62.         // jeo15 15jkx2015
  63.  
  64.         // впиливаем все созданные элементы в контейнер элемента
  65.  
  66.         subcont_RCL1.appendChild(cb_state);
  67.         //cont_RCListItem.appendChild(showShit);
  68.  
  69.         subcont_RCL2.appendChild(lb_header);
  70.         subcont_RCL2.appendChild(document.createElement("br"));
  71.         subcont_RCL2.appendChild(lb_descr);
  72.  
  73.         cont_RCListItem.appendChild(subcont_RCL1);
  74.         cont_RCListItem.appendChild(subcont_RCL2);
  75.  
  76.         // впиливаем элемент в общий список
  77.         RCon.appendChild(cont_RCListItem);
  78.     }
  79. }
  80.  
  81. //
  82. // добавить один элемент заголовка (категории) для группы в список распила
  83. //
  84. function AddRSCategoryInList(__rs_list_container, _id, _imgSrc, _Header) {
  85.  
  86.     var RCon = document.getElementById(__rs_list_container);
  87.     if (RCon != null) {
  88.  
  89.         // родительский контейнер где находится название группы
  90.         var cont_RCListItem = document.createElement("div"); //cont_RCListItem.id = "rcl_" + _id; //sub_cont.className = 'stObjListTemplate';
  91.         var cont_RCSubList = document.createElement("div"); cont_RCSubList.id = 'rl_SubGroup_' + _id; cont_RCSubList.className = 'magrin-bottom-10px magrin-top-5px itemInVisible';
  92.  
  93.         // галка для отображения или убирания маркера с карты
  94.         var cb_state = document.createElement("input");
  95.         cb_state.type = "checkbox";
  96.         cb_state.id = "cbRSGroup_" + _id;
  97.         cb_state.value = "=";
  98.         cb_state.checked = true;
  99.         //cbRSSubGroup_
  100.         cb_state.onchange = function () { HideAllSubGroups(_id); } // ShowThisShitOnMapByXY(" + subShit[ii].LatLng[0] + "," + subShit[ii].LatLng[1] + ",'" + "" + "' )
  101.  
  102.         // изображение маркера категории
  103.         var ShitMarker = document.createElement("img");
  104.         ShitMarker.title = "";
  105.         ShitMarker.src = _imgSrc;
  106.  
  107.         // изображение маркера свернуто или нет
  108.         //var ShitVisible = document.createElement("img");
  109.         //ShitVisible.title = "";
  110.         //ShitVisible.src = _imgSrc;
  111.  
  112.         // текст содержащий заголовок
  113.         var lb_header = document.createElement("span"); lb_header.textContent = " " + _Header; lb_header.className = 'RaspilGroupHeader zHyperLink';
  114.         lb_header.onclick = function () {
  115.             var sub_group = document.getElementById('rl_SubGroup_' + _id);
  116.             if (sub_group != null) {
  117.                 //if (sub_group.style.display == 'none') { sub_group.className = 'itemInVisible'; } else { sub_group.className = 'itemVisible'; }
  118.                 if (sub_group.style.display == 'block') { sub_group.style.display = 'none'; } else { sub_group.style.display = 'block'; }
  119.             }
  120.         }
  121.  
  122.         // впиливаем все созданные элементы в контейнер элемента
  123.         //cont_RCListItem.appendChild(document.createElement("br"));
  124.         cont_RCListItem.appendChild(cb_state);
  125.         cont_RCListItem.appendChild(ShitMarker);
  126.         cont_RCListItem.appendChild(lb_header);
  127.         //cont_RCListItem.appendChild(document.createElement("br"));
  128.  
  129.         // впиливаем элемент в общий список
  130.         RCon.appendChild(cont_RCListItem);
  131.         // добавляем блок где будут элементы подгруппы
  132.         RCon.appendChild(cont_RCSubList);
  133.  
  134.     }
  135.  
  136. }
  137.  
  138. // показывает или прячет маркер на карте по его ИД
  139. function showOrHide(_id, _marker_id) { cb = document.getElementById("cbRSSubGroup_" + _marker_id); if (cb.checked) { ShowMarkerByID(_marker_id); } else { HideMarkerByID(_marker_id); } }
  140. function hideMarker(_marker_id) { cb = document.getElementById("cbRSSubGroup_" + _marker_id); if (cb != null) { cb.checked = false; cb.disabled = true; HideMarkerByID(_marker_id); } }
  141. function showMarker(_marker_id) { cb = document.getElementById("cbRSSubGroup_" + _marker_id); if (cb != null) { cb.checked = true; cb.disabled = false; ShowMarkerByID(_marker_id); } }
  142.  
  143. // ----------------------------------------------
  144. // Убирает с карты все подгруппы в группе
  145. // _id - ИД группы в списке
  146. // ----------------------------------------------
  147. function HideAllSubGroups(_id) {
  148.     if (___RaspiL_RAW_DATA == "") return; // данные есть ??
  149.     // Покажем юзеру что-то, дабы он думал что чтото происходит...
  150.     ShowShitMessage(__MSG_DO_SOMETHING);
  151.  
  152.     var MarkerLayerData = ___RaspiL_RAW_DATA;
  153.  
  154.     // получим checkBox группы, и будем его проверять для определиния, прятать или показывать группы
  155.     cbGroup = document.getElementById("cbRSGroup_" + _id);
  156.  
  157.     for (i = 0; i < MarkerLayerData.length; i++) { // разделы с дрочерними элементами
  158.         if (_id == i) { //
  159.             var subShit = MarkerLayerData[i].shit; // возьмем подразделы
  160.             for (sg = 0; sg < subShit.length; sg++) {
  161.                 if (!cbGroup.checked) { hideMarker(subShit[sg].Id); } // состояние фильтра - снято, прячем всю группу
  162.                 if (cbGroup.checked) { showMarker(subShit[sg].Id); } // состояние фильтра - установлено, показываем всю группу
  163.             } // for sg
  164.         }
  165.     } // for i
  166.  
  167.     HideShitMessage(); // закроем окно где было уведомление о процессе
  168. }
  169.  
  170.  
  171. //-----------------------
  172. // панель управления базой данных
  173. //
  174. //-----------------------
  175. function SetRaspilMenu() {
  176.     WorkWithDB = 7; // работаем с БДэ... отключаем карту
  177.     info.update("");
  178.     info.updateMenu("");
  179.     ___RaspiL_RAW_DATA = "";
  180.  
  181.     $('#pnMapSearch').css({ 'display': 'none' }); // уберем поиск
  182.  
  183.     // т.к. у нас тут меню, то чистка срани будет после выбора пунктов.
  184.     // да очистим же предидущую карту, не дожидаясь выбора от оленя !
  185.     DeleteMapLayerByID(DBMapLayer_id); info.update("");
  186.  
  187.     ClearPrevousMapData();
  188.  
  189.     // pnInfoMenu
  190.  
  191.     var MenuCon = document.getElementById('pnInfoMenu');
  192.     if (MenuCon != null) {
  193.  
  194.         // изображение маркера категории
  195.         var ShitMarker = document.createElement("img"); ShitMarker.title = "Розподіл коштів"; ShitMarker.src = "images/buttons/btRaspil.png";
  196.         ShitMarker.setAttribute("align", "middle");
  197.  
  198.         // текст содержащий заголовок
  199.         var lb_header = document.createElement("span"); lb_header.textContent = " РОЗПОДІЛ КОШТІВ";
  200.  
  201.         // кнопка "Х"
  202.         var btClear = document.createElement("img"); btClear.src = "images/buttons/clear1.png";
  203.         btClear.title = "Х_х";
  204.         btClear.onclick = function () { ClearMapData(); }
  205.         btClear.className = 'zImg-button zAlign-right';
  206.  
  207.         // кнопка "показать по разделам"
  208.         var btRCMain = document.createElement("img"); btRCMain.src = "images/buttons/btRCMainCat.png";
  209.         btRCMain.title = "Впорядкувати за розділом";
  210.         btRCMain.onclick = function () { GetRSMainCategory(); }
  211.         btRCMain.className = 'zImg-button zAlign-right';
  212.  
  213.         // кнопка "показать по категориям"
  214.         var btRCCat = document.createElement("img"); btRCCat.src = "images/buttons/btRCSubCat.png";
  215.         btRCCat.title = "Впорядкувати за категорією";
  216.         btRCCat.onclick = function () { GetRSSubCategory(); }
  217.         btRCCat.className = 'zImg-button zAlign-right';
  218.  
  219.         // кнопка "помощь в распиле"
  220.         var btRCHelp = document.createElement("img"); btRCHelp.src = "images/buttons/MapSubHelp.png";
  221.         btRCHelp.title = "Допомога у користуванні";
  222.         //btRCReload.onclick = function () { BuildRaspilList(); }
  223.         btRCHelp.className = 'zImg-button zAlign-right';
  224.  
  225.  
  226.         //слайдер для выбора интервала дат
  227.         var rangeSlider = document.createElement("div"); rangeSlider.className = 'zAlign-right'; rangeSlider.appendChild(document.createTextNode("Роки: "));
  228.  
  229.         // делаем костыль для выбора годов распила.
  230.         for (yy = ___Raspil_Year_Start; yy <= ___Raspil_Year_End; yy++) {
  231.             var c = document.createElement("label");
  232.             var cb_year = document.createElement("input"); cb_year.type = "checkbox"; cb_year.id = "cbRSYY_" + yy; cb_year.checked = true;
  233.                 cb_year.onclick = function () { BuildRaspilList(); }
  234.  
  235.             c.appendChild(cb_year);
  236.             c.appendChild(document.createTextNode(yy + " ")); // подпись к ЧБ
  237.             rangeSlider.appendChild(c);
  238.         }
  239.  
  240.         // впиливаем все созданные элементы в контейнер элемента
  241.         MenuCon.appendChild(ShitMarker);
  242.         MenuCon.appendChild(lb_header);
  243.         MenuCon.appendChild(btClear);
  244.         MenuCon.appendChild(btRCHelp);
  245.         MenuCon.appendChild(btRCCat);
  246.         MenuCon.appendChild(btRCMain);
  247.         MenuCon.appendChild(rangeSlider);
  248.     }
  249.  
  250.     GetRSMainCategory();
  251. }
  252.  
  253.  
  254. // --------------------
  255. // запрос на список главных категорий
  256. // --------------------
  257. function GetRSMainCategory() {
  258.  
  259.     // перед построением слоя, его нужно зачистить от срани
  260.     DeleteMapLayerByID(DBMapLayer_id);
  261.  
  262.     PosMarker.setLatLng(L.latLng(0, 0));
  263.     //info.update("<img src='images/wait2.gif' >"); // покажем юзверю что чтото делается, чтобы не психовал....
  264.     // Покажем юзеру что-то, дабы он думал что чтото происходит...
  265.     ShowShitMessage(__MSG_DO_SOMETHING);
  266.     CallServer("cmdGetRaspilMainCat~" + DBMapLayer_id, "");
  267. }
  268.  
  269. // --------------------
  270. // запрос на список подкатегорий
  271. // --------------------
  272. function GetRSSubCategory() {
  273.  
  274.     // перед построением слоя, его нужно зачистить от срани
  275.     DeleteMapLayerByID(DBMapLayer_id);
  276.  
  277.     PosMarker.setLatLng(L.latLng(0, 0));
  278.     //info.update("<img src='images/wait2.gif' >"); // покажем юзверю что чтото делается, чтобы не психовал....
  279.     // Покажем юзеру что-то, дабы он думал что чтото происходит...
  280.     ShowShitMessage(__MSG_DO_SOMETHING);
  281.     CallServer("cmdGetRaspilSubCat~" + DBMapLayer_id, "");
  282. }
  283. // --------------------------------------------------
  284. // Проверка, виден ли указанный год распила денег в списке
  285. // --------------------------------------------------
  286. function isYearVisible(__year_for_check) {
  287.  
  288.     for (yy = ___Raspil_Year_Start; yy <= ___Raspil_Year_End; yy++) {
  289.         if (yy == __year_for_check) { // год распила совпал с запрашиваемым
  290.             var _year = document.getElementById("cbRSYY_" + yy); // проверяем статус галки в фильтре
  291.             if (_year != null) {
  292.                 if (_year.checked) { return true; }; // если стоит - нах отсюда...
  293.             }
  294.         }
  295.     }
  296.     return false; // найден большой и толстый члин.
  297. }
  298.  
  299.  
  300. // ------------------------------------------------------
  301. // ДОБАВЛЕНИЕ МАРКЕРА НА КАРТУ
  302. //
  303. // __layer - слой маркеров
  304. // __ID - идентификатор маркера для фильтра отображения
  305. // __lat, __lng - координаты
  306. // __GroupIcon - иконка группы
  307. // __GroupText - название группы
  308. // __Summa - сумма распила общая
  309. // __Year - год, когда пилили
  310. // __Addr - адрес где было распилено
  311. // __Name - название мероприятия под которое распилили
  312. // __Info - разное инфо, с подробностиями распила
  313. // __URL - гиперссылка(и) с сылками на вебресурсы посвященные распилу
  314. // ------------------------------------------------------
  315. function AddMapMarker(__layer, __MarkerID, __lat, __lng, __GroupIcon, __GroupText, __Summa, __Year, __Addr, __Name, __Info, __URL, __Attchment) {
  316.  
  317.     if (__lat * __lng == 0) return; // если координаты - лажа, то валим отсюдова....
  318.  
  319.     __Year != null && __Year.length >= 2 ? __Year += " р." : __Year = "";
  320.     __Summa != null && __Summa.length >= 1 ? __Summa += " грн." : __Summa = "";
  321.     __URL != null && __URL.length > 6 ? __URL = "<br/><a href='" + __URL + "' target='_ass'><img src='images/buttons/ShowOnMapON_sm.png'/> <u>Посилання на сторінку</u></a>" : __URL = "";
  322.  
  323.     // вложения
  324.     var _att_cont = "";
  325.     if (__Attchment.length > 3) {
  326.         var _attParts = __Attchment.split('*');
  327.  
  328.         var __attachLink = ""; // __Attchment
  329.         //var className = "thumbs_img_big";
  330.         var className = "thumbs_img_small";
  331.  
  332.         for (att_i = 0; att_i < _attParts.length; att_i++) {
  333.             __attachLink = "http://wms.vmr.gov.ua/web_Resources/Images/_raspil/mcvg/Lists/Cards/Attachments/" + __MarkerID + "/" + _attParts[att_i];
  334.             //_att_cont += "<img onclick=\"Fresco.show('" + __attachLink + "');\" src=\"" + __attachLink + "\" class=\"" + className + "\" />";
  335.             _att_cont += "<a class=\"fresco\" data-fresco-group=\"rs_img_group_" + __MarkerID + "\" " +
  336.                           "data-fresco-caption=\"" + "<b>" + __Name + "</b><br/>" + __Addr + "<br/>" + __GroupText + " " + __Year +  
  337.                           "\" href=\"" + __attachLink + "\">" +
  338.                          "<img class=\"" + className + "\" src=\"" + __attachLink + "\" />" +
  339.                          "</a>";
  340.         }
  341.         _att_cont = "<hr><div id=\"eObjectSummaryImage\" class=\"summaryImage\">" + _att_cont + "</div>"
  342.     }
  343.  
  344.  
  345.  
  346.     var Map_MarkeR = new L.marker(L.latLng(__lat, __lng), { icon: IconMarkerZ })
  347.                                           .bindPopup(
  348.                                                  "<img src='" + "images/markers/raspil/" + __GroupIcon + "' /> " + "<b>" + __GroupText + " " + __Year + "</b><hr>" +
  349.                                                      "<b>" + __Addr + "</b><br/>" +
  350.                                                      __Name + "<br/><br/>" +
  351.                                                      "<u>Витрачено коштів:</u>: " + __Summa + "<br/>" +
  352.                                                      "<i>" + __Info + "</i>" +
  353.  
  354.     // картинки из вложений
  355.                                                      _att_cont +
  356.     // ссылки внешние
  357.                                                      __URL
  358.  
  359.                                           , { showOnMouseOver: true }
  360.                                          );
  361.     Map_MarkeR.options.icon.options.iconUrl = "images/markers/raspil/" + __GroupIcon;
  362.     Map_MarkeR.options.icon.options.iconSize = [16, 16];
  363.     Map_MarkeR.options.icon.options.iconAnchor = [16 / 2, 16 / 2];
  364.     Map_MarkeR.options.title = __Addr + " " + __Year + " " + __Summa;
  365.     Map_MarkeR.options.alt = __MarkerID;
  366.  
  367.     Map_MarkeR.addTo(__layer);
  368. }
  369.  
  370. //---------------------------------------
  371. // Выводим список основных категорий 1
  372. function ShowRCMainCat(_rawData) {
  373.     if (_rawData == "") return; // данные есть ??
  374.     info.update(""); // чистим список
  375.  
  376.     // создадим слой, который будет содержать в себе маркеры мест распила денег
  377.     DBMapLayer = new L.layerGroup().addTo(map); // слой содержащий маркеры
  378.  
  379.     //DBMapLayer = new L.MarkerClusterGroup({ spiderfyOnMaxZoom: true, showCoverageOnHover: false, zoomToBoundsOnClick: false });
  380.     //DBMapLayer.on('clusterclick', function (a) {
  381.     //    a.layer.spiderfy();
  382.     //});
  383.  
  384.     DBMapLayer_id = DBMapLayer._leaflet_id; // ИД слоя, для того чтоб его можно було йобнуть среди слоёв карты
  385.  
  386.     ___RaspiL_RAW_DATA = _rawData.shit;
  387.  
  388.     var MarkerLayerData = _rawData.shit;
  389.     var _info = "";
  390.     var _link = "";
  391.     var __GroupIcon = "icon000.png";
  392.     for (i = 0; i < MarkerLayerData.length; i++) { // разделы с дрочерними элементами
  393.  
  394.         __GroupIcon = MarkerLayerData[i].markerName;
  395.         AddRSCategoryInList('pnInfoData', i, "images/markers/raspil/" + __GroupIcon, MarkerLayerData[i].CatName + " [" + MarkerLayerData[i].shit.length + "]");
  396.  
  397.         // выбираем подразделы
  398.         var __link = "";
  399.         var __summa = "";
  400.         var __year = "";
  401.         var subShit = MarkerLayerData[i].shit; // тут подразделы
  402.         _info += ""; //"<td valign=\"top\">";
  403.  
  404.         for (ii = 0; ii < subShit.length; ii++) {
  405.             _ObjLinkMap = "";
  406.             // если координаты лажа - убираем ссылку на карту
  407.             subShit[ii].LatLng[0] * subShit[ii].LatLng[1] == 0 ? __link = "" : __link = "<div class=\"stShowThisShit_sm\" " +
  408.                             "onclick=\"ShowThisShitOnMapByXY(" + subShit[ii].LatLng[0] + "," + subShit[ii].LatLng[1] + ",'" + "" + "' )\">" +
  409.                             "</div>";
  410.  
  411.             subShit[ii].Year == "" ? __year = "" : __year = subShit[ii].Year + " p.,";
  412.             subShit[ii].Summa == "" ? __summa = "" : __summa = subShit[ii].Summa + " грн.,";
  413.  
  414.  
  415.             AddRSItemInList('rl_SubGroup_' + i, subShit[ii].Id,
  416.                                   subShit[ii].LatLng[0], subShit[ii].LatLng[1],
  417.                                   __link,
  418.                                   __year + " " + __summa + " " + subShit[ii].Addr,
  419.                                   subShit[ii].Name,
  420.                                   "",
  421.                                   "");
  422.             // добавляем марекр
  423.             AddMapMarker(DBMapLayer,
  424.                                       subShit[ii].Id, subShit[ii].LatLng[0], subShit[ii].LatLng[1],
  425.                                       __GroupIcon, MarkerLayerData[i].CatName,
  426.                                       subShit[ii].Summa, subShit[ii].Year, subShit[ii].Addr, subShit[ii].Name, subShit[ii].Info,
  427.                                       subShit[ii].Url, subShit[ii].Att);
  428.         } // for ii
  429.     } // for i
  430.     //DBMapLayer.addTo(map);
  431.  
  432. }
  433.  
  434.  
  435. //---------------------------------------
  436. // Выводим список основных категорий версия 2
  437. // данные берутся из памяти, к серверу не лезем
  438. //---------------------------------------
  439. function BuildRaspilList() {
  440.     if (___RaspiL_RAW_DATA == "") return; // данные есть ??
  441.     info.update(""); // чистим список
  442.     // перед построением слоя, его нужно зачистить от срани
  443.     DeleteMapLayerByID(DBMapLayer_id);
  444.  
  445.     // Покажем юзеру что-то, дабы он думал что чтото происходит...
  446.     ShowShitMessage(__MSG_DO_SOMETHING);
  447.  
  448.     // создадим слой, который будет содержать в себе маркеры мест распила денег
  449.     DBMapLayer = new L.layerGroup().addTo(map); // слой содержащий маркеры
  450.     DBMapLayer_id = DBMapLayer._leaflet_id; // ИД слоя, для того чтоб его можно було йобнуть среди слоёв карты
  451.  
  452.     var MarkerLayerData = ___RaspiL_RAW_DATA;
  453.     var _info = "";
  454.     var _link = "";
  455.     var __GroupIcon = "icon000.png";
  456.     for (i = 0; i < MarkerLayerData.length; i++) { // разделы с дрочерними элементами
  457.  
  458.         __GroupIcon = MarkerLayerData[i].markerName;
  459.         AddRSCategoryInList('pnInfoData', i, "images/markers/raspil/" + __GroupIcon, MarkerLayerData[i].CatName + " [" + MarkerLayerData[i].shit.length + "]");
  460.  
  461.         // выбираем подразделы
  462.         var __url = "";
  463.         var __link = "";
  464.         var __summa = "";
  465.         var __year = "";
  466.         var subShit = MarkerLayerData[i].shit; // тут подразделы
  467.         _info += ""; //"<td valign=\"top\">";
  468.  
  469.         for (ii = 0; ii < subShit.length; ii++) {
  470.             _ObjLinkMap = "";
  471.  
  472.             if (isYearVisible(subShit[ii].Year)) {
  473.                 // если координаты лажа - убираем ссылку на карту
  474.                 subShit[ii].LatLng[0] * subShit[ii].LatLng[1] == 0 ? __link = "" : __link = "<div class=\"stShowThisShit_sm\" " +
  475.                             "onclick=\"ShowThisShitOnMapByXY(" + subShit[ii].LatLng[0] + "," + subShit[ii].LatLng[1] + ",'" + "" + "' )\">" +
  476.                             "</div>";
  477.  
  478.                 subShit[ii].Year == "" ? __year = "" : __year = subShit[ii].Year + " p.,";
  479.                 subShit[ii].Summa == "" ? __summa = "" : __summa = subShit[ii].Summa + " грн.,";
  480.  
  481.                 //AddRSItemInList('pnInfoData', subShit[ii].Id,
  482.                 AddRSItemInList('rl_SubGroup_' + i, subShit[ii].Id,
  483.                                   subShit[ii].LatLng[0], subShit[ii].LatLng[1],
  484.                                   __link,
  485.                                   __year + " " + __summa + " " + subShit[ii].Addr,
  486.                                   subShit[ii].Name,
  487.                                   "",
  488.                                   "");
  489.                 // добавляем марекр
  490.                 AddMapMarker(DBMapLayer, subShit[ii].Id,
  491.                                       subShit[ii].LatLng[0], subShit[ii].LatLng[1],
  492.                                       __GroupIcon, MarkerLayerData[i].CatName,
  493.                                       subShit[ii].Summa, subShit[ii].Year, subShit[ii].Addr, subShit[ii].Name, subShit[ii].Info,
  494.                                       subShit[ii].Url, subShit[ii].Att);
  495.  
  496.             } // isYearVisible
  497.         } // for ii
  498.     } // for i
  499.  
  500.     HideShitMessage(); // закроем окно где было уведомление о процессе
  501. }
  502.  
  503. //---------------------------------------
  504. // Выводим маркер с конкретнозаданным ИД объекта
  505. function ShowMarkerByID(__id) {
  506.     if (___RaspiL_RAW_DATA == "") return;
  507.  
  508.     var MarkerLayerData = ___RaspiL_RAW_DATA;
  509.     var _info = "";
  510.     var _link = "";
  511.     var __GroupIcon = "icon000.png";
  512.     for (i = 0; i < MarkerLayerData.length; i++) { // разделы с дрочерними элементами
  513.         __GroupIcon = MarkerLayerData[i].markerName;
  514.         // выбираем подразделы
  515.         var __link = "";
  516.         var __summa = "";
  517.         var __year = "";
  518.         var subShit = MarkerLayerData[i].shit; // тут подразделы
  519.         _info += ""; //"<td valign=\"top\">";
  520.  
  521.         for (sm_ii = 0; sm_ii < subShit.length; sm_ii++) {
  522.             // добавляем марекр
  523.             if (subShit[sm_ii].Id == __id) {
  524.                 // добавляем марекр
  525.                 AddMapMarker(DBMapLayer, subShit[sm_ii].Id,
  526.                                       subShit[sm_ii].LatLng[0], subShit[sm_ii].LatLng[1],
  527.                                       __GroupIcon, MarkerLayerData[i].CatName,
  528.                                       subShit[sm_ii].Summa, subShit[sm_ii].Year, subShit[sm_ii].Addr, subShit[sm_ii].Name, subShit[sm_ii].Info,
  529.                                       subShit[sm_ii].Url, subShit[sm_ii].Att);
  530.             }
  531.  
  532.  
  533.         }
  534.     }
  535.  
  536. }
  537.  
  538. //
  539. // Удаляем маркер с карты по его ИД
  540. // Ид храним в атрибуте "alt" элемента
  541. function HideMarkerByID(__id) {
  542.     if (___RaspiL_RAW_DATA == "") return;
  543.     for (var lc in DBMapLayer._layers) {
  544.         if (DBMapLayer._layers[lc].options.alt == __id) { DBMapLayer.removeLayer(lc); return; }
  545.     }
  546. }
RAW Paste Data