Skip to content

Generovanie mapových dlaždíc

QCAD sa dodáva s dvomi nástrojmi príkazového riadka na vytváranie mapových dlaždíc na použitie s online zobrazeniami máp, ako je Leaflet. Leaflet je knižnica jazyka JavaScript na prácu s interaktívnymi mapami v prehliadači.

Najjednoduchším prípadom použitia online mapy je poskytnúť návštevníkom webovej stránky interaktívne, priblížiteľné zobrazenie výkresu.

Tu je príklad, ktorý generuje mapové dlaždice pre ľubovoľný zadaný súbor výkresu:

dwg2maptiles -z 0-6 -c -b white -hq-postfix=@2x -a -o path/to/output/directory drawing.dxf

Prepínač -z určuje úrovne priblíženia, ktoré sa majú vygenerovať, tu od úrovne priblíženia 0 po úroveň priblíženia 6. To znamená, že počnúc úrovňou 0 (celý výkres alebo automatické priblíženie) môže používateľ priblížiť 6-krát, kým sa nedosiahne limit. Zakaždým, keď používateľ priblíži, výkres sa zväčší faktorom 2, takže so 6 úrovňami priblíženia môže používateľ priblížiť faktorom 2^6 (=64). Generovanie viacerých úrovní priblíženia vyžaduje viac času a miesta na disku. Každá ďalšia úroveň priblíženia zvyčajne vyžaduje na vygenerovanie štyrikrát viac času a miesta na disku ako predchádzajúca.

Dlaždice sa generujú v zadanom výstupnom adresári (-o) so štandardnou štruktúrou adresárov a názvami súborov pre mapové dlaždice (z/x/y.png).

Vo vyššie uvedenom príklade chceme, aby sa výkres vykreslil na bielom pozadí (-b white). Biele čiary by sa mali opraviť na čierne, aby sa zaručilo, že všetky čiary sú viditeľné (-c).

Argument -hq-postfix=@2x hovorí nástroju dwg2maptiles, aby popri dlaždiciach v štandardnom rozlíšení 256x256px generoval aj vysokokvalitné (hq, vysoké rozlíšenie, retina) dlaždice s rozlíšením 512x512px.

Na ďalšie zvýšenie kvality používame aj prepínač -a na vyhladenie hrán (antialiasing).

Zobraziť príklad online s Leaflet

Generovanie georeferencovaných mapových dlaždíc

Section titled “Generovanie georeferencovaných mapových dlaždíc”

Nástroj dwg2maptiles možno použiť aj na generovanie presných prekrytí pre svetové mapy. Na to zvyčajne treba výkres transformovať z lokálneho súradnicového systému do súradníc Web Mercator, ktoré bežne používajú online mapy.

QCAD Professional sa dodáva so samostatným nástrojom príkazového riadka na transformáciu výkresov z jedného referenčného súradnicového systému (CRS) do iného: dwgmapconvert.

dwgmapconvert sa zvyčajne používa na prevod všetkých súradníc v danom súbore výkresu zo známeho, lokálneho súradnicového systému do súradnicového systému EPSG:3857 (niekedy nazývaného „Web Mercator“). Toto je súradnicový systém, ktorý používa väčšina online máp, napríklad Mapy Google alebo mapbox. Aby bolo možné použiť výkres ako vstup pre dwg2maptiles a vytvoriť georeferencované mapové dlaždice, výkres musí byť v súradnicovom systéme EPSG:3857.

V súradnicovom systéme EPSG:3857 sa celá svetová mapa na úrovni priblíženia 0 zmestí do štvorca s rozmerom 20037508.3427892m. Ak sa výkres prevedie do tohto súradnicového systému, transformuje sa tak, aby sa zmestil do tohto svetového štvorca a aby sa nachádzal na správnych, premietnutých svetových súradniciach.

Napríklad, ak bol výkres vytvorený v EPSG:2056 (tiež LV95, lokálny švajčiarsky súradnicový systém), možno ho transformovať do EPSG:3857 pomocou dwgmapconvert takto:

dwgmapconvert -segment-length=0.5 -crs-in=EPSG:2056 -crs-out=EPSG:3857 -f -o drawing_epsg3857.dxf drawing_epsg2056.dxf

Keďže mapové projekcie sú zvyčajne nelineárne, krivky a dlhšie čiary treba rozdeliť na malé čiarové segmenty, ktoré potom možno premietnuť nelineárnym spôsobom. Ak sa zadá prepínač -segment-length, dwgmapconvert vykoná túto segmentáciu automaticky s použitím zadanej dĺžky segmentu. Dĺžka segmentu sa určuje v jednotkách výkresu pôvodného výkresu (tu Meter).

-crs-in sa používa na určenie vstupného súradnicového systému, tu EPSG:2056.

-crs-out sa používa na určenie výstupného súradnicového systému, ktorý musí byť EPSG:3857, ak sa má výstup neskôr použiť s dwg2maptiles.

dwgmapconvert obsahuje podporu pre LV95 ako vstup a WebMercator ako výstup.

Ďalšie súradnicové systémy budú pridané v budúcich vydaniach alebo ich môže pridať používateľ.

Na pridanie podpory pre nový súradnicový systém treba poskytnúť dve rovnice na prevod súradníc z nového súradnicového systému do WGS84 (dĺžka/šírka, ako súradnice GPS).

Nové súradnicové systémy možno pridať do konfiguračného súboru JSON s názvom CRS.json, ktorý sa nachádza v priečinku „scripts“ použitej inštalácie QCAD. Tu je príklad súboru CRS.json, ktorý konfiguruje súradnicový systém LV95. Aby bolo možné použiť LV95 ako vstup pre nástroj dwgmapconvert, musíme poskytnúť sekciu „toWgs84“ s rovnicami na prevod súradníc x a y. Tu používame aj dve pomocné premenné, x_ a y_, ktoré musia byť inicializované v rovnici pre x, aby boli prístupné v oboch rovniciach.

Mohli by sme poskytnúť aj sekciu „fromWgs84“, ktorá umožňuje prevod z iných súradnicových systémov do LV95. Obe sekcie sú voliteľné v závislosti od smeru prevodu, ktorý chcete podporovať.

{
"CRS" : [
{
"id" : "EPSG:2056 CH1903+ / LV95",
"toWgs84" : {
"x": "x_ = (y-1200000)/1000000; y_ = (x-2600000)/1000000; (2.6779094 + 4.728982*y_ + 0.791484*y_*x_ + 0.1306*y_*x_*x_ - 0.0436*y_*y_*y_) * 100 / 3",
"y": "(16.9023892 + 3.238272*x_ - 0.270978*y_*y_ - 0.002528*x_*x_ - 0.0447*y_*y_*x_ - 0.0140*x_*x_*x_) * 100 / 36"
},
"aliases" : [ "LV95", "Swiss" ]
}
]
}

Keď sme výkres previedli do súradníc EPSG:3857, môžeme použiť dwg2maptiles na vygenerovanie dlaždíc pre prekrývaciu vrstvu v Leaflet:

dwg2maptiles -web-mercator -skip-empty -hq-postfix=@2x -z 22 -b transparent -o path/to/output/directory drawing_epsg3857.dxf

Všimnite si, že nástroju dwg2maptiles musíme odovzdať prepínač -web-mercator, aby vedel, že nemá vykonávať automatické priblíženie, ale generovať prekrytie mapy v presných súradniciach EPSG:3857 tak, ako sú prítomné v súbore.

-skip-empty hovorí nástroju dwg2maptiles, aby negeneroval dlaždice, ktoré neobsahujú žiadnu časť výkresu. Bez tohto prepínača sa na každú úroveň priblíženia vygeneruje 2^zoomLevel dlaždíc. To by bolo 4 194 304 dlaždíc pre úroveň priblíženia 22. Keďže prekrývací výkres veľmi pravdepodobne pokrýva len veľmi malú časť svetovej mapy, tento prepínač by sa mal pri vytváraní prekrývacích máp vždy používať.

-b transparent nastaví pozadie na priehľadné, takže mapu možno použiť ako prekrytie existujúcej svetovej mapy (napr. Mapy Google, mapbox atď.). Na ovládanie farby, v ktorej sa zobrazujú čierne alebo biele čiary, možno pozadie nastaviť na čierne priehľadné alebo biele priehľadné pomocou -b "#00ffffff" (biele priehľadné pozadie, čierne čiary), resp. -b "#00000000" (čierne priehľadné pozadie, biele čiary). V tomto prípade nezabudnite odovzdať aj prepínač -c, aby ste vynútili automatickú korekciu farieb.

Argument -hq-postfix=@2x možno použiť na generovanie dlaždíc s vysokým rozlíšením (512px) popri bežných dlaždiciach s rozlíšením 256px. Hodnota „@2x“ sa odporúča a je široko používaná pre dlaždice s vysokým rozlíšením, aj v Leaflet. S týmto prepínačom sa pre každú dlaždicu s nízkym rozlíšením „N.png“ vytvorí dlaždica s vysokým rozlíšením „[email protected]“.

Použitie viacerých procesov (a jadier procesora)

Section titled “Použitie viacerých procesov (a jadier procesora)”

Generovanie mapových dlaždíc môže byť náročná úloha na procesor, v závislosti od úrovní priblíženia, zložitosti výkresu a ďalších nastavení.

Na rýchlejšie generovanie mapových dlaždíc môžete úlohu rozdeliť medzi viacero dostupných jadier procesora. Pre túto funkciu ponúka dwg2maptiles prepínač -s na generovanie iba časti (rezu) požadovaných dlaždíc. Prepínač -s očakáva dva parametre oddelené čiarkou: rez, ktorý sa má vygenerovať, a celkový počet použitých rezov. Napríklad -s 1,4 by vygenerovalo prvý rez zo štyroch rezov celkovo. Na vygenerovanie všetkých dlaždíc vyššie uvedeného príkladu s použitím štyroch jadier procesora by ste mohli spustiť:

dwg2maptiles -web-mercator -skip-empty -hq-postfix=@2x -z 22 -s 1,4 -b transparent -o path/to/output/directory drawing_epsg3857.dxf &
dwg2maptiles -web-mercator -skip-empty -hq-postfix=@2x -z 22 -s 2,4 -b transparent -o path/to/output/directory drawing_epsg3857.dxf &
dwg2maptiles -web-mercator -skip-empty -hq-postfix=@2x -z 22 -s 3,4 -b transparent -o path/to/output/directory drawing_epsg3857.dxf &
dwg2maptiles -web-mercator -skip-empty -hq-postfix=@2x -z 22 -s 4,4 -b transparent -o path/to/output/directory drawing_epsg3857.dxf &
wait

Samozrejme, úlohy by ste mohli rozdeliť aj podľa úrovní priblíženia alebo použiť rezy len pre vyššie úrovne priblíženia a jeden proces pre všetky nižšie (lacnejšie) úrovne priblíženia atď.

Interaktívny príklad poskytuje mape švajčiarskeho kantónu Zürich dve prekrývacie vrstvy: chránenú lesnú oblasť a biokoridory. Pôvodné údaje boli v súradniciach EPSG:2056 (LV95) a boli transformované do EPSG:3857 pomocou dwgmapconvert.

Zobraziť príklad online s Leaflet