Map

Details

diff --git a/web-map/Scripts/SiteScripts/AjaxQuery.js b/web-map/Scripts/SiteScripts/AjaxQuery.js
index 22e5d85..d191d04 100644
--- a/web-map/Scripts/SiteScripts/AjaxQuery.js
+++ b/web-map/Scripts/SiteScripts/AjaxQuery.js
@@ -43,10 +43,10 @@ function GetAllPoints(YearMin, YearMax) {
             //  Нужно ли делать выборку
             //                     |
             //                     |
-            //                     | фильтры
-            //                     |     |
-            //                     |     |
-            FillDataArrays(data, true, false);            
+            //                     |
+            //                     |
+            //                     |
+            FillDataArrays(data, true);            
         },
 
         error: function (response) {
diff --git a/web-map/Scripts/SiteScripts/Events.js b/web-map/Scripts/SiteScripts/Events.js
index 969ebb9..713ea30 100644
--- a/web-map/Scripts/SiteScripts/Events.js
+++ b/web-map/Scripts/SiteScripts/Events.js
@@ -24,7 +24,7 @@ function changePlacemarkPreset(placemark, preset) {
 
 //  Заполнение массивов из исходного (response.data)
 //  В соответствии с параметрами поселения
-function FillDataArrays(fromData, isNeedSelect = false, isNeedFilters = false) {
+function FillDataArrays(fromData, isNeedSelect = false) {
 
     Collections.AllGeoObjects.removeFromMap(Map);
 
@@ -34,8 +34,7 @@ function FillDataArrays(fromData, isNeedSelect = false, isNeedFilters = false) {
     Collections.Regions = new Array();
     Collections.Names = new Array();
     Collections.FindName = '';
-
-    console.log('Количество загруженных поселений ' + fromData.arraySettlements.length);
+    Collections.isNeedFilters = false;
 
     Collections.Names = fromData.arrayNameSettlements;
     Collections.SettlementTypes = fromData.arrayNameTypes;
@@ -46,51 +45,47 @@ function FillDataArrays(fromData, isNeedSelect = false, isNeedFilters = false) {
     filterCollectionInit(Collections.Filters.Region, Collections.Regions, 'filterGroupRegions', 'countRegions');
 
     Collections.All = fromData.arraySettlements;
-    LoadCollection(fromData.arraySettlements, isNeedSelect, isNeedFilters);
+    LoadCollection(fromData.arraySettlements, isNeedSelect, );
 }
 
 //  Функция заполнения Яндекс-коллекций Яндекс-объектами из JSON массива
-function LoadCollection(fromData, isNeedSelect = false, isNeedFilters = false) {
+function LoadCollection(fromData, isNeedSelect = false) {
     fromData.forEach(function (element) {
         Collections.AllGeoObjects = Collections.AllGeoObjects.add(CreateYandexPlacemark(element)); //  Добавление
     });
     if (isNeedSelect)
-        SelectDataFromArrays(isNeedFilters);
+        SelectDataFromArrays();
 }
 
 //  Согласно текущим установленным фильтрам собрать нужный массив данных
-function SelectDataFromArrays(isNeedFilters = false) {
-    var ResultDataArray = new Array();
-
-    console.log("select with " + isNeedFilters);
-    isNeedFilters=false;
+function SelectDataFromArrays() {
     var insideMap = Collections.AllGeoObjects.searchInside(Map);
+
     var afterFilters = new ymaps.geoQuery();
-    if (!isNeedFilters) 
+    if (!Collections.isNeedFilters) 
         afterFilters = insideMap;
     else        
-        {
-            var typeFilters = new ymaps.geoQuery();
-            var regionFilters = new ymaps.geoQuery();
-
-            //  тут применить фильтры
-            //  объединить по признаку типа 
-            //  объединить по признаку региона
-            //  пересечь две выборки
-
-            for (e in Collections.Filters.Type) {
-                if (Collections.Filters.Type[e]) {
-                    typeFilters = insideMap.search('options.Types regexp "{|' + e + '}"').add(regionFilters);
-                }
+    {
+        var typeFilters = new ymaps.geoQuery();
+        var regionFilters = new ymaps.geoQuery();
+
+        //  тут применить фильтры
+        //  объединить по признаку типа 
+        //  объединить по признаку региона
+        //  пересечь две выборки
+
+        for (e in Collections.Filters.Type) {                       
+            if (Collections.Filters.Type[e]) {
+                typeFilters = insideMap.search('options.Types regexp "{' + e + '}"').add(typeFilters);
             }
-            for (e in Collections.Filters.Region) {
-                if (Collections.Filters.Region[e]) {
-                    regionFilters = insideMap.search('options.Regions regexp "{' + e + '}"').add(regionFilters);
-                }
+        }
+        for (e in Collections.Filters.Region) {
+            if (Collections.Filters.Region[e]) {
+                regionFilters = insideMap.search('options.Regions regexp "{' + e + '}"').add(regionFilters);
             }
-
-            afterFilters = typeFilters.intersect(regionFilters);
         }
+        afterFilters = typeFilters.intersect(regionFilters).sort('options.Population desc');
+    }
     
 
 //filterTypes = all.search('options.Regions regExp "*|gorod|*"') 
@@ -118,7 +113,7 @@ function SelectDataFromArrays(isNeedFilters = false) {
 
     //if (isNeedPlaceCollection)
     //    PlaceFromCollection(geo_query);
-    return ResultDataArray;
+    //  return ResultDataArray;
 }
 
 
@@ -325,7 +320,6 @@ function filterTypeChange(e) {
 }
 
 function defaultFilters() {
-
     for (e in Collections.Filters.Type) {
         Collections.Filters.Type[e] = true;
     } 
@@ -336,11 +330,13 @@ function defaultFilters() {
     $("#filterGroups input").each(function (index, element) {
         element.checked = true;
     });
-    SelectDataFromArrays(false);
+    Collections.isNeedFilters = false;
+    SelectDataFromArrays();
 
     //console.log($("#filterGroupRegions")[0].children);
 }
 
 function activeFilters() {
-    SelectDataFromArrays(true);
+    Collections.isNeedFilters = true;
+    SelectDataFromArrays();
 }
diff --git a/web-map/Scripts/SiteScripts/Init.js b/web-map/Scripts/SiteScripts/Init.js
index e13b71b..8d96cfb 100644
--- a/web-map/Scripts/SiteScripts/Init.js
+++ b/web-map/Scripts/SiteScripts/Init.js
@@ -3,8 +3,8 @@
 function MapInit()
 {
     console.log("MapInit");
-    YandexMapInit();
     CollectionsInit();
+    YandexMapInit();
     GetDate(true);    
 }
 
@@ -46,7 +46,7 @@ function YandexMapInit()
         //                 Выгрузить коллекцию на карту
         //                     |
         //                     |
-        SelectDataFromArrays(false);
+        SelectDataFromArrays();
 
         //  фильтрация поселений при зуммировании
         //CurrentZoom = event.get('newZoom');       
@@ -236,4 +236,5 @@ function CollectionsInit() {
     Collections.Filters = new Object();
     Collections.Filters.Type = new Object();
     Collections.Filters.Region = new Object();
+    Collections.isNeedFilters = false;
 }
\ No newline at end of file