Více

Vzorec ohraničovacího rámečku Mapnik (sférický obchodník)

Vzorec ohraničovacího rámečku Mapnik (sférický obchodník)


Chci implementovat server dlaždic a sleduji kód v repo uzlu-mapnik-sample-code.

Když je odeslán požadavek s parametry x, y, z (zeměpisná délka, šířka, zvětšení), použijí se tyto parametry k vytvoření ohraničujícího rámečku s následujícím kódem:

/ ** * Převést hodnotu xyz dlaždice na obálku Mapnik * * @param {Number} x číslo zeměpisné šířky. * @param {Number} y numberitude number. * @param {Number} zoom zoom. * @param {Boolean} tms_style zda vypočítat dlaždici tms. * @return Object Mapnik obálka. * / SphericalMercator.prototype.xyz_to_envelope = function (x, y, zoom, TMS_SCHEME) {if (TMS_SCHEME) {y = (Math.pow (2, zoom) - 1) - y; } var ll = [x * this.size, (y + 1) * this.size]; var ur = [(x + 1) * this.size, y * this.size]; var bbox = this.px_to_ll (ll, zoom) .concat (this.px_to_ll (ur, zoom)); vrátit mercator.forward (bbox); };

(celý kód zde: https://github.com/mapnik/node-mapnik-sample-code/blob/master/utils/sphericalmercator.js)

Proč zde musí být zeměpisná délka a šířka vynásobeny velikostí dlaždic (256):

var ll = [x * this.size, (y + 1) * this.size];

Ztrácím se mezi pixely a zeměpisnými souřadnicemi.


Parametry x a y této funkce jsou souřadnice dlaždic, kde hodnoty xay představují počet dlaždic z levého horního rohu mapy v každém směru. V systému číslování Google začínají souřadnice dlaždic na(0, 0)pro dlaždici vlevo nahoře.

var ll = [x * this.size, (y + 1) * this.size];

Řádek nad tím, který jste zvýraznili, počítá souřadnice pixelů pro levý dolní roh dlaždice. Například pokud jsou souřadnice dlaždice (parametry xay k funkci)(2,3)a velikost dlaždice je 256, levý dolní roh této dlaždice by byl na(2 * 256, (3 + 1) * 256) = (512, 1024).

Našel jsem tuto stránku maptiler.org na souřadnicích map Google zvláště užitečnou pro vizualizaci systému. Níže je snímek obrazovky z této stránky zobrazující systém dlaždic na úrovni zvětšení 1.


Podívejte se na video: Create Hyperlink and Buttons for Interactive PDF in Adobe InDesign - Beginner Guide