У меня есть фильтрованная гексагональная сетка, которую я хотел бы классифицировать.Классифицировать гексагонные сетки с Turf, Leaflet
Я создал гекс с
var hexgrid = turf.hexGrid(bbox, cellWidth, units);
Я агрегировать значения с
var aggregated = turf.collect(hexgrid, myGeoJson, 'MyValue', 'NewCol');
, где myGeoJson является многоточечным FeatureCollection а и MyValue является свойством функции либо нулевым или> 0
Я отфильтровал гексагон с помощью
var hexFiltered = L.geoJson(aggregated, {
filter: function(feature, layer) {
return feature.properties.NewCol.length > 0;
}
}).addTo(map);
Каждый гекс объект может быть доступен с
console.log(hexFiltered["_layers"]);
output = Object { 49: Object, 51: Object, 52: Object, 53: Object...
Каждый объект имеет то .feature.properties.NewCol [п] и каждый массив имеет индекс (0, 1, 2) и значение (NULL, 1 +)
Как классифицировать каждую шестнадцатеричную сетку с суммой значений массива?
Я пробовал это с собственным javascript, но все, что я могу достичь, это строка с каждым значением.
var counts = {};
for (var obj in hexFiltered["_layers"]) {
// Output the id of each obj (hex)
// console.log("Object: " + obj);
var cnt = 0;
for (var i in hexFiltered["_layers"][obj]["feature"]["properties"]) {
// print values out as 1 line (i)
console.log("One line of values :" + hexFiltered["_layers"][obj]["feature"]["properties"][i]);
// output = One line of values :,,,1,,,,1,1,,1
// add values
cnt = cnt + hexFiltered["_layers"][obj]["feature"]["properties"][i];
console.log(cnt);
// output = 0,,,1,,,,1,1,,1
}
// attach cnt to counts object
counts += cnt;
}
Куда я иду не так? Есть ли более простой способ?