Tovább a tartalomhoz

Térképcsempék létrehozása

A QCAD két parancssori eszközzel érkezik térképcsempék létrehozásához olyan online térképmegjelenítőkhöz, mint a Leaflet. A Leaflet egy JavaScript-könyvtár interaktív térképekkel való munkához böngészőben.

Az online térkép legegyszerűbb felhasználási esete, hogy egy webhely látogatóinak interaktív, nagyítható nézetet biztosítson egy rajzról.

Íme egy példa, amely bármely adott rajzfájlhoz létrehozza a térképcsempéket:

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

A -z kapcsoló megadja a létrehozandó nagyítási szinteket, itt a 0. nagyítási szinttől a 6. nagyítási szintig. Ez azt jelenti, hogy a 0. szinttől kezdve (a teljes rajz automatikus nagyítással) a felhasználó 6-szor nagyíthat, amíg el nem éri a határt. Minden alkalommal, amikor a felhasználó nagyít, a rajz 2-es tényezővel nő, így 6 nagyítási szinttel a felhasználó 2^6 (=64) tényezővel nagyíthat. Több nagyítási szint létrehozása több időt és lemezterületet igényel. Minden további nagyítási szint jellemzően négyszer több időt és lemezterületet igényel a létrehozásához, mint az előző.

A csempék a megadott kimeneti könyvtárban (-o) jönnek létre a térképcsempék szabványos könyvtárszerkezetével és fájlneveivel (z/x/y.png).

A fenti példában azt szeretnénk, hogy a rajz fehér háttéren jelenjen meg (-b white). A fehér vonalakat feketére kell javítani annak biztosítására, hogy minden vonal látható legyen (-c).

A -hq-postfix=@2x argumentum arra utasítja a dwg2maptiles eszközt, hogy a szabványos felbontású 256x256px-es csempék mellett hozzon létre kiváló minőségű (hq, nagy felbontású, retina) csempéket is 512x512px méretben.

A minőség további növelése érdekében az élsimításhoz (antialiasing) az -a kapcsolót is használjuk.

Példa megtekintése Leaflettel online

Georeferált térképcsempék létrehozása

Szekció neve “Georeferált térképcsempék létrehozása”

A dwg2maptiles pontos átfedések létrehozására is használható világtérképekhez. Ehhez egy rajzot általában át kell alakítani egy helyi koordináta-rendszerből Web Mercator koordinátákká, ahogy azt az online térképek általában használják.

A QCAD Professional egy külön parancssori eszközzel érkezik, amely a rajzokat egyik koordináta-referenciarendszerből (CRS) a másikba alakítja át: a dwgmapconvert.

A dwgmapconvert eszközt jellemzően egy adott rajzfájl összes koordinátájának egy ismert, helyi koordináta-rendszerből az EPSG:3857 koordináta-rendszerbe (néha “Web Mercator” néven) történő átalakítására használják. Ez a legtöbb online térkép, például a Google Maps vagy a mapbox által használt koordináta-rendszer. Ahhoz, hogy egy rajzot a dwg2maptiles bemeneteként használjunk és georeferált térképcsempéket állítsunk elő, a rajznak az EPSG:3857 koordináta-rendszerben kell lennie.

Az EPSG:3857 koordináta-rendszerben a teljes világtérkép a 0. nagyítási szinten egy 20037508.3427892m-es négyzetbe fér. Ha egy rajzot átalakítanak erre a koordináta-rendszerre, a rajzot úgy alakítják át, hogy beleférjen abba a világnégyzetbe, és hogy a rajz a helyes, vetített világkoordinátákon helyezkedjen el.

Például, ha egy rajz EPSG:2056-ban (más néven LV95, a helyi svájci koordináta-rendszer) készült, akkor a dwgmapconverttel a következőképpen alakítható át EPSG:3857-re:

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

Mivel a térképvetületek általában nemlineárisak, a görbéket és a hosszabb vonalakat kis vonalszakaszokra kell osztani, amelyek aztán nemlineáris módon vetíthetők. Ha a -segment-length kapcsoló meg van adva, a dwgmapconvert automatikusan elvégzi ezt a szegmentálást a megadott szegmenshossz használatával. A szegmenshosszt az eredeti rajz rajzegységeiben adják meg (itt méter).

A -crs-in a bemeneti koordináta-rendszer megadására szolgál, itt EPSG:2056.

A -crs-out a kimeneti koordináta-rendszer megadására szolgál, amelynek EPSG:3857-nek kell lennie, ha a kimenetet később a dwg2maptiles eszközzel kívánják használni.

A dwgmapconvert az LV95 bemenetként és a WebMercator kimenetként való támogatásával érkezik.

Más koordináta-rendszereket a jövőbeli kiadásokban adnak hozzá, vagy a felhasználó adhatja hozzá.

Egy új koordináta-rendszer támogatásának hozzáadásához két egyenletet kell megadni a koordináták új koordináta-rendszerből WGS84-be (hosszúság/szélesség, mint a GPS-koordináták) történő átalakításához.

Új koordináta-rendszereket egy CRS.json nevű JSON konfigurációs fájlhoz lehet hozzáadni, amely a használt QCAD-telepítés “scripts” mappájában található. Íme egy példa CRS.json fájlra, amely az LV95 koordináta-rendszert konfigurálja. Ahhoz, hogy az LV95-öt a dwgmapconvert eszköz bemeneteként használhassuk, meg kell adnunk a “toWgs84” szakaszt az x és y koordináta átalakításához szükséges egyenletekkel. Itt két segédváltozót is használunk, x_ és y_, amelyeket az x egyenletben kell inicializálni ahhoz, hogy mindkét egyenletben elérhetők legyenek.

Megadhatnánk egy “fromWgs84” szakaszt is, hogy lehetővé tegyük más koordináta-rendszerekből az LV95-be történő átalakítást. Mindkét szakasz opcionális, attól függően, hogy melyik átalakítási irányt szeretné támogatni.

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

Miután a rajzot EPSG:3857 koordinátákká alakítottuk, a dwg2maptiles eszközzel létrehozhatjuk a csempéket a Leaflet átfedési rétegéhez:

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

Vegye figyelembe, hogy át kell adnunk a -web-mercator kapcsolót a dwg2maptiles eszköznek, hogy tudassuk vele: ne végezzen automatikus nagyítást, hanem hozzon létre egy térképátfedést a fájlban lévő pontos EPSG:3857 koordinátákban.

A -skip-empty arra utasítja a dwg2maptiles eszközt, hogy ne hozzon létre olyan csempéket, amelyek a rajz egyetlen részét sem tartalmazzák. E kapcsoló nélkül nagyítási szintenként 2^zoomLevel csempe jön létre. Ez 4’194’304 csempe lenne a 22. nagyítási szinthez. Mivel egy átfedő rajz nagy valószínűséggel csak a világtérkép nagyon kis részét fedi le, ezt a kapcsolót mindig használni kell átfedő térképek létrehozásakor.

A -b transparent átlátszóra állítja a hátteret, így a térkép átfedésként használható egy meglévő világtérképhez (pl. Google Map, mapbox stb.). Annak vezérléséhez, hogy a fekete vagy fehér vonalak milyen színben jelenjenek meg, a háttér fekete átlátszóra vagy fehér átlátszóra állítható a -b "#00ffffff" (fehér átlátszó háttér, fekete vonalak), illetve -b "#00000000" (fekete átlátszó háttér, fehér vonalak) használatával. Ebben az esetben feltétlenül adja át a -c kapcsolót is az automatikus színkorrekció kikényszerítéséhez.

A -hq-postfix=@2x argumentum a normál 256px-es csempéken kívül nagy felbontású csempék (512px) létrehozására is használható. A “@2x” érték ajánlott és széles körben használt a nagy felbontású csempékhez, a Leafletben is. Ezzel a kapcsolóval minden alacsony felbontású “N.png” csempéhez létrejön egy nagy felbontású “[email protected]” csempe.

Több folyamat (és CPU-mag) használata

Szekció neve “Több folyamat (és CPU-mag) használata”

A térképcsempék létrehozása a nagyítási szintektől, a rajz összetettségétől és egyéb beállításoktól függően CPU-igényes feladat lehet.

A térképcsempék gyorsabb létrehozásához a feladatot több elérhető CPU-mag között oszthatja el. Ehhez a funkcióhoz a dwg2maptiles az -s kapcsolót kínálja a szükséges csempéknek csak egy szeletének létrehozásához. Az -s kapcsoló két vesszővel elválasztott paramétert vár: a létrehozandó szeletet és a felhasznált szeletek teljes számát. Például a -s 1,4 az összesen négy szeletből az elsőt hozná létre. A fenti példa összes csempéjének létrehozásához négy CPU-mag használatával a következőt futtathatja:

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

Természetesen a feladatokat nagyítási szintek szerint is feloszthatja, vagy szeleteket csak a magasabb nagyítási szintekhez használhat, és egyetlen folyamatot az összes alacsonyabb (olcsóbb) nagyítási szinthez stb.

Egy interaktív példa két átfedési réteget biztosít a svájci Zürich kanton térképéhez: a védett erdőterületet és a vadvilági folyosókat. Az eredeti adatok EPSG:2056 (LV95) koordinátákban érkeztek, és a dwgmapconvert segítségével EPSG:3857-re alakították át.

Példa megtekintése Leaflettel online