Skip to content

Ustvarjanje zemljevidnih ploščic

QCAD ima dve orodji ukazne vrstice za ustvarjanje zemljevidnih ploščic za uporabo s spletnimi prikazi zemljevidov, kot je Leaflet. Leaflet je knjižnica JavaScript za delo z interaktivnimi zemljevidi v brskalniku.

Najpreprostejši primer uporabe spletnega zemljevida je zagotoviti obiskovalcem spletnega mesta interaktiven pogled risbe z možnostjo povečave.

Tukaj je primer, ki ustvari zemljevidne ploščice za katero koli podano datoteko risbe:

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

Stikalo -z določa ravni povečave, ki naj se ustvarijo, tukaj od ravni povečave 0 do ravni povečave 6. To pomeni, da lahko uporabnik, začenši od ravni 0 (celotna risba s samodejno povečavo), poveča 6-krat, dokler ni dosežena meja. Vsakič, ko uporabnik poveča, se risba poveča za faktor 2, tako da lahko uporabnik s 6 ravnmi povečave poveča za faktor 2^6 (=64). Ustvarjanje več ravni povečave zahteva več časa in prostora na disku. Vsaka dodatna raven povečave za ustvarjanje običajno zahteva štirikrat več časa in prostora na disku kot prejšnja.

Ploščice se ustvarijo v danem izhodnem imeniku (-o) s standardno strukturo imenikov in imeni datotek za zemljevidne ploščice (z/x/y.png).

V zgornjem primeru želimo, da se risba upodobi na belem ozadju (-b white). Bele črte je treba popraviti v črne, da se zagotovi vidnost vseh črt (-c).

Argument -hq-postfix=@2x orodju dwg2maptiles pove, naj ustvari ploščice visoke kakovosti (hq, visoka ločljivost, retina) v velikosti 512x512px skupaj s ploščicami standardne ločljivosti v velikosti 256x256px.

Za nadaljnje povečanje kakovosti uporabljamo tudi stikalo -a za glajenje robov (antialiasing).

Oglejte si primer z Leaflet na spletu

Ustvarjanje georeferenciranih zemljevidnih ploščic

Section titled “Ustvarjanje georeferenciranih zemljevidnih ploščic”

dwg2maptiles je mogoče uporabiti tudi za ustvarjanje natančnih prekrivanj za svetovne zemljevide. Za to je treba risbo običajno pretvoriti iz lokalnega koordinatnega sistema v koordinate Web Mercator, kot jih običajno uporabljajo spletni zemljevidi.

QCAD Professional ima ločeno orodje ukazne vrstice za pretvorbo risb iz enega koordinatnega referenčnega sistema (CRS) v drugega: dwgmapconvert.

dwgmapconvert se običajno uporablja za pretvorbo vseh koordinat v dani datoteki risbe iz znanega, lokalnega koordinatnega sistema v koordinatni sistem EPSG:3857 (včasih imenovan “Web Mercator”). To je koordinatni sistem, ki ga uporablja večina spletnih zemljevidov, na primer Google Maps ali mapbox. Za uporabo risbe kot vhoda za dwg2maptiles in ustvarjanje georeferenciranih zemljevidnih ploščic mora biti risba v koordinatnem sistemu EPSG:3857.

V koordinatnem sistemu EPSG:3857 se celoten svetovni zemljevid pri ravni povečave 0 prilega v kvadrat velikosti 20037508.3427892m. Če je risba pretvorjena v ta koordinatni sistem, se risba pretvori tako, da se prilega v tisti svetovni kvadrat in da je risba nameščena na pravilnih, projiciranih svetovnih koordinatah.

Na primer, če je bila risba ustvarjena v EPSG:2056 (tudi LV95, lokalni švicarski koordinatni sistem), jo je mogoče pretvoriti v EPSG:3857 z dwgmapconvert na naslednji način:

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

Ker so zemljevidne projekcije običajno nelinearne, je treba krivulje in daljše črte razdeliti na majhne črtne segmente, ki jih je nato mogoče projicirati na nelinearen način. Če je podano stikalo -segment-length, dwgmapconvert to segmentacijo izvede samodejno z uporabo podane dolžine segmenta. Dolžina segmenta je določena v risalnih enotah izvirne risbe (tukaj metri).

-crs-in se uporablja za določitev vhodnega koordinatnega sistema, tukaj EPSG:2056.

-crs-out se uporablja za določitev izhodnega koordinatnega sistema, ki mora biti EPSG:3857, če naj se izhod pozneje uporabi z dwg2maptiles.

dwgmapconvert ima podporo za LV95 kot vhod in WebMercator kot izhod.

Drugi koordinatni sistemi bodo dodani v prihodnjih izdajah ali jih lahko doda uporabnik.

Za dodajanje podpore za nov koordinatni sistem je treba zagotoviti dve enačbi za pretvorbo koordinat iz novega koordinatnega sistema v WGS84 (zemljepisna dolžina/širina, kot koordinate GPS).

Nove koordinatne sisteme je mogoče dodati v konfiguracijsko datoteko JSON z imenom CRS.json, ki se nahaja v mapi “scripts” uporabljene namestitve QCAD. Tukaj je primer datoteke CRS.json, ki konfigurira koordinatni sistem LV95. Da bi lahko uporabili LV95 kot vhod za orodje dwgmapconvert, moramo zagotoviti razdelek “toWgs84” z enačbami za pretvorbo koordinat x in y. Tukaj uporabljamo tudi dve pomožni spremenljivki, x_ in y_, ki morata biti inicializirani v enačbi x, da sta dostopni v obeh enačbah.

Zagotovili bi lahko tudi razdelek “fromWgs84”, da bi omogočili pretvorbo iz drugih koordinatnih sistemov v LV95. Oba razdelka sta izbirna, odvisno od smeri pretvorbe, ki jo želite podpirati.

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

Ko smo risbo pretvorili v koordinate EPSG:3857, lahko uporabimo dwg2maptiles za ustvarjanje ploščic za prekrivni sloj v Leaflet:

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

Upoštevajte, da moramo orodju dwg2maptiles posredovati stikalo -web-mercator, da mu sporočimo, da ne sme izvesti samodejne povečave, ampak ustvariti prekrivanje zemljevida v natančnih koordinatah EPSG:3857, kot so prisotne v datoteki.

-skip-empty orodju dwg2maptiles pove, naj ne ustvarja ploščic, ki ne vsebujejo nobenega dela risbe. Brez tega stikala se na raven povečave ustvari 2^zoomLevel ploščic. To bi bilo 4’194’304 ploščic za raven povečave 22. Ker prekrivna risba zelo verjetno pokriva le zelo majhen del svetovnega zemljevida, je treba to stikalo vedno uporabiti pri ustvarjanju prekrivnih zemljevidov.

-b transparent nastavi ozadje na prosojno, tako da je zemljevid mogoče uporabiti kot prekrivanje za obstoječi svetovni zemljevid (npr. Google Map, mapbox itd.). Za nadzor barve, v kateri so prikazane črne ali bele črte, je mogoče ozadje nastaviti na črno prosojno ali belo prosojno z -b "#00ffffff" (belo prosojno ozadje, črne črte) oziroma -b "#00000000" (črno prosojno ozadje, bele črte). V tem primeru obvezno posredujte tudi stikalo -c, da vsilite samodejno popravljanje barv.

Argument -hq-postfix=@2x je mogoče uporabiti za ustvarjanje ploščic visoke ločljivosti (512px) poleg običajnih ploščic 256px. Vrednost “@2x” je priporočena in široko uporabljena za ploščice visoke ločljivosti, tudi v Leaflet. S tem stikalom se za vsako ploščico nizke ločljivosti “N.png” ustvari ploščica visoke ločljivosti “[email protected]”.

Ustvarjanje zemljevidnih ploščic je lahko naloga, ki intenzivno obremenjuje CPE, odvisno od ravni povečave, kompleksnosti risbe in drugih nastavitev.

Za hitrejše ustvarjanje zemljevidnih ploščic lahko nalogo razdelite med več razpoložljivih jeder CPE. Za to funkcijo dwg2maptiles ponuja stikalo -s za ustvarjanje samo dela potrebnih ploščic. Stikalo -s pričakuje dva z vejico ločena parametra: del za ustvarjanje in skupno število uporabljenih delov. Na primer, -s 1,4 bi ustvaril prvi del od skupno štirih delov. Za ustvarjanje vseh ploščic zgornjega primera z uporabo štirih jeder CPE bi lahko zagnali:

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

Seveda bi lahko naloge razdelili tudi po ravneh povečave ali uporabili dele samo za višje ravni povečave in en sam proces za vse nižje (cenejše) ravni povečave itd.

Interaktiven primer zagotavlja dva prekrivna sloja zemljevidu švicarskega kantona Zürich: zaščiteno gozdno območje in koridorje za prostoživeče živali. Izvirni podatki so prišli v koordinatah EPSG:2056 (LV95) in so bili pretvorjeni v EPSG:3857 z uporabo dwgmapconvert.

Oglejte si primer z Leaflet na spletu