Přeskočit na obsah

Generování mapových dlaždic

QCAD se dodává se dvěma nástroji příkazového řádku pro vytváření mapových dlaždic k použití s online mapami, jako je Leaflet. Leaflet je knihovna JavaScriptu pro práci s interaktivními mapami v prohlížeči.

Prezentace výkresu online

Sekce “Prezentace výkresu online”

Nejjednodušším případem použití online mapy je poskytnout návštěvníkům webových stránek interaktivní zobrazení výkresu s možností přiblížení.

Zde je příklad, který generuje mapové dlaždice pro libovolný daný soubor výkresu:

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

Přepínač -z určuje úrovně přiblížení, které se mají generovat, zde od úrovně 0 do úrovně 6. To znamená, že počínaje úrovní 0 (celý výkres při automatickém přiblížení) může uživatel přiblížit 6krát, dokud není dosaženo limitu. Pokaždé, když uživatel přiblíží, se výkres zvětší o faktor 2, takže se 6 úrovněmi přiblížení může uživatel přiblížit o faktor 2^6 (=64). Generování více úrovní přiblížení vyžaduje více času a místa na disku. Každá další úroveň přiblížení obvykle vyžaduje k vygenerování čtyřikrát více času a místa na disku než předchozí.

Dlaždice se generují v daném výstupním adresáři (-o) se standardní strukturou adresářů a názvy souborů pro mapové dlaždice (z/x/y.png).

Ve výše uvedeném příkladu chceme, aby byl výkres vykreslen na bílém pozadí (-b white). Bílé čáry by měly být opraveny na černé, aby bylo zajištěno, že všechny čáry jsou viditelné (-c).

Argument -hq-postfix=@2x říká dwg2maptiles, aby vygeneroval vysoce kvalitní (hq, vysoké rozlišení, retina) dlaždice o velikosti 512x512px spolu s dlaždicemi ve standardním rozlišení 256x256px.

Pro další zvýšení kvality používáme také přepínač -a pro vyhlazování (antialiasing).

Zobrazit příklad s Leaflet online

Generování georeferencovaných mapových dlaždic

Sekce “Generování georeferencovaných mapových dlaždic”

dwg2maptiles lze také použít ke generování přesných překryvů pro světové mapy. K tomu je obvykle nutné transformovat výkres z lokálního souřadnicového systému do souřadnic Web Mercator, jak je běžně používají online mapy.

QCAD Professional se dodává se samostatným nástrojem příkazového řádku pro transformaci výkresů z jednoho souřadnicového referenčního systému (CRS) do druhého: dwgmapconvert.

dwgmapconvert se obvykle používá k převodu všech souřadnic v daném souboru výkresu ze známého lokálního souřadnicového systému do souřadnicového systému EPSG:3857 (někdy nazývaného „Web Mercator”). Toto je souřadnicový systém používaný většinou online map, například Google Maps nebo mapbox. Aby bylo možné použít výkres jako vstup pro dwg2maptiles a vytvořit georeferencované mapové dlaždice, musí být výkres v souřadnicovém systému EPSG:3857.

V souřadnicovém systému EPSG:3857 se celá světová mapa vejde do čtverce o velikosti 20037508.3427892m na úrovni přiblížení 0. Pokud je výkres převeden do tohoto souřadnicového systému, je transformován tak, aby se vešel do tohoto světového čtverce a aby byl výkres umístěn na správných projektovaných světových souřadnicích.

Například pokud byl výkres vytvořen v EPSG:2056 (také LV95, lokální švýcarský souřadnicový systém), lze jej transformovat na EPSG:3857 pomocí dwgmapconvert následovně:

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

Protože mapové projekce jsou obvykle nelineární, křivky a delší čáry je nutné rozdělit na malé úsečky, které pak lze projektovat nelineárním způsobem. Pokud je zadán přepínač -segment-length, dwgmapconvert provede toto segmentování automaticky pomocí zadané délky segmentu. Délka segmentu se zadává v kreslicích jednotkách původního výkresu (zde metry).

-crs-in se používá k určení vstupního souřadnicového systému, zde EPSG:2056.

-crs-out se používá k určení výstupního souřadnicového systému, který musí být EPSG:3857, pokud má být výstup později použit s dwg2maptiles.

dwgmapconvert je dodáván s podporou LV95 jako vstupu a WebMercator jako výstupu.

Další souřadnicové systémy budou přidány v budoucích verzích nebo je může přidat uživatel.

Pro přidání podpory nového souřadnicového systému musí být poskytnuty dvě rovnice pro převod souřadnic z nového souřadnicového systému do WGS84 (zeměpisná délka/šířka, jako GPS souřadnice).

Nové souřadnicové systémy lze přidat do konfiguračního souboru JSON s názvem CRS.json, který se nachází ve složce „scripts” používané instalace QCAD. Zde je příklad souboru CRS.json, který konfiguruje souřadnicový systém LV95. Abychom mohli použít LV95 jako vstup pro nástroj dwgmapconvert, musíme poskytnout sekci „toWgs84” s rovnicemi pro převod souřadnic x a y. Zde také používáme dvě pomocné proměnné, x_ a y_, které musí být inicializovány v rovnici pro x, aby byly přístupné v obou rovnicích.

Mohli bychom také poskytnout sekci „fromWgs84”, abychom umožnili převod z jiných souřadnicových systémů do LV95. Obě sekce jsou volitelné, v závislosti na směru převodu, který chcete podporovat.

{
"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" ]
}
]
}

Generování mapových dlaždic

Sekce “Generování mapových dlaždic”

Jakmile jsme převedli výkres na souřadnice EPSG:3857, můžeme použít dwg2maptiles ke generování dlaždic pro překryvnou vrstvu v Leaflet:

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

Všimněte si, že musíme dwg2maptiles předat přepínač -web-mercator, aby věděl, že nemá provádět automatické přiblížení, ale generovat mapový překryv v přesných souřadnicích EPSG:3857, jak jsou v souboru přítomny.

-skip-empty říká dwg2maptiles, aby negeneroval dlaždice, které neobsahují žádnou část výkresu. Bez tohoto přepínače se vygeneruje 2^zoomLevel dlaždic na úroveň přiblížení. To by bylo 4’194’304 dlaždic pro úroveň přiblížení 22. Protože překryvný výkres velmi pravděpodobně pokrývá jen velmi malou část světové mapy, měl by se tento přepínač vždy používat při vytváření překryvných map.

-b transparent nastaví pozadí na průhledné, takže mapu lze použít jako překryv pro existující světovou mapu (např. Google Map, mapbox atd.). Chcete-li ovládat barvu, ve které se zobrazují černé nebo bílé čáry, lze pozadí nastavit na černé průhledné nebo bílé průhledné pomocí -b "#00ffffff" (bílé průhledné pozadí, černé čáry), respektive -b "#00000000" (černé průhledné pozadí, bílé čáry). V tomto případě nezapomeňte také předat přepínač -c, abyste vynutili automatickou korekci barev.

Argument -hq-postfix=@2x lze použít ke generování dlaždic s vysokým rozlišením (512px) navíc k normálním dlaždicím 256px. Hodnota „@2x” se doporučuje a je široce používána pro dlaždice s vysokým rozlišením, také v Leaflet. S tímto přepínačem se pro každou dlaždici s nízkým rozlišením „N.png” vytvoří dlaždice s vysokým rozlišením „[email protected]”.

Použití více procesů (a jader CPU)

Sekce “Použití více procesů (a jader CPU)”

Generování mapových dlaždic může být úloha náročná na CPU, v závislosti na úrovních přiblížení, složitosti výkresu a dalších nastaveních.

Chcete-li generovat mapové dlaždice rychleji, můžete úlohu rozdělit mezi několik dostupných jader CPU. Pro tuto funkci nabízí dwg2maptiles přepínač -s pro generování pouze části požadovaných dlaždic. Přepínač -s očekává dva parametry oddělené čárkou: část, která se má vygenerovat, a celkový počet použitých částí. Například -s 1,4 by vygeneroval první část ze čtyř částí celkem. Chcete-li vygenerovat všechny dlaždice výše uvedeného příkladu pomocí čtyř jader CPU, můžete spustit:

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

Samozřejmě byste mohli úlohy také rozdělit podle úrovní přiblížení nebo použít části pouze pro vyšší úrovně přiblížení a jeden proces pro všechny nižší (levnější) úrovně přiblížení atd.

Interaktivní příklad poskytuje dvě překryvné vrstvy k mapě švýcarského kantonu Curych: chráněnou lesní oblast a koridory pro divokou zvěř. Původní data přišla v souřadnicích EPSG:2056 (LV95) a byla transformována na EPSG:3857 pomocí dwgmapconvert.

Zobrazit příklad s Leaflet online