Webboard

Pełna wersja: Generator siatki "plastra miodu"
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,
Poszukuję skryptu który generuję siatkę "plastra miodu" coś jak na tym obrazku
[Obrazek: 16ViC.png]

lub jakiś informacji w jaki sposób takie coś stworzyć ? Docelowo chciałbym aby współpracowało to z OpenStreet maps.
Może nie jest w JS, ale znalazłem takie coś:
https://codepen.io/Martinex/pen/RQXrbK
A czy na się ktoś na Open street maps ? Potrzebuję tą siatke tam zaimplementować.
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.


Kod:
 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

Kod:
// 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]; });


Kod:
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;
},

Kod:
var hexLayer = L.hexbinLayer(options).addTo(map)
hexLayer.centers();

Lecz funkcja zwraca mi tylko jeden punkt 0,0. Co robię źle ?