Térképcsempék létrehozása
Bevezetés
Szekció neve “Bevezetés”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.
Rajz online bemutatása
Szekció neve “Rajz online bemutatása”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.dxfA -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.dxfMivel 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" ] } ]}Térképcsempék létrehozása
Szekció neve “Térképcsempék létrehozása”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.dxfVegye 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 &waitTermé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.
Példa
Szekció neve “Példa”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.