Witam znalazłem bibliotekę d3-hexbin.js która generuje ową siatkę.
Z tym że mam pewien problem użyłem jej w moim
kodzie i chciałbym aby mi zwróciła punkty centralne plastrów. Biblioteka ma do tego zaimplementowaną funkcje zwracającą punkty.
hexbin.centers = function() {
var centers = [],
j = Math.round(y0 / dy),
i = Math.round(x0 / dx);
for (var y = j * dy; y < y1 + r; y += dy, ++j) {
for (var x = i * dx + (j & 1) * dx / 2; x < x1 + dx / 2; x += dx) {
centers.push([x, y]);
}
}
return centers;
};
U siebie mam to wywołane w ten sposób
// Create the hex layout
this._hexLayout = d3_hexbin()
.radius(this.options.radius)
.x(function(d) { return d.point[0]; })
.y(function(d) { return d.point[1]; });
centers: function() {
var points_table = [];
points_table = this._hexLayout.centers();
for (let i=0; i<points_table.length; i++) {
console.log('licznik pętli: ' + i);
console.log('element: ' + points_table[i]);
}
return points_table;
},
var hexLayer = L.hexbinLayer(options).addTo(map)
hexLayer.centers();
Lecz funkcja zwraca mi tylko jeden punkt 0,0. Co robię źle ?