Kartes elementu ģenerēšana
Ievads
Section titled “Ievads”QCAD tiek piegādāts ar diviem komandrindas rīkiem kartes elementu izveidei izmantošanai ar tiešsaistes karšu attēlojumiem, piemēram, Leaflet. Leaflet ir JavaScript bibliotēka darbam ar interaktīvām kartēm pārlūkprogrammā.
Rasējuma prezentēšana tiešsaistē
Section titled “Rasējuma prezentēšana tiešsaistē”Vienkāršākais tiešsaistes kartes lietošanas gadījums ir nodrošināt vietnes apmeklētājiem interaktīvu, tālummaināmu rasējuma skatu.
Šeit ir piemērs, kas ģenerē kartes elementus jebkuram dotajam rasējuma failam:
dwg2maptiles -z 0-6 -c -b white -hq-postfix=@2x -a -o path/to/output/directory drawing.dxfSlēdzis -z norāda ģenerējamos tālummaiņas līmeņus, šeit no tālummaiņas līmeņa 0 līdz tālummaiņas līmenim 6. Tas nozīmē, ka, sākot no līmeņa 0 (viss rasējums ar automātisko tālummaiņu), lietotājs var tuvināt 6 reizes, līdz tiek sasniegts ierobežojums. Katru reizi, kad lietotājs tuvina, rasējums tiek palielināts par koeficientu 2, tāpēc ar 6 tālummaiņas līmeņiem lietotājs var tuvināt par koeficientu 2^6 (=64). Vairāk tālummaiņas līmeņu ģenerēšana prasa vairāk laika un diska vietas. Katrs papildu tālummaiņas līmenis parasti prasa četras reizes vairāk laika un diska vietas, lai to ģenerētu, nekā iepriekšējais.
Elementi tiek ģenerēti dotajā izvades direktorijā (-o) ar standarta direktoriju struktūru un failu nosaukumiem kartes elementiem (z/x/y.png).
Iepriekš minētajā piemērā mēs vēlamies, lai rasējums tiktu atveidots uz balta fona (-b white). Baltās līnijas jālabo uz melnām, lai nodrošinātu, ka visas līnijas ir redzamas (-c).
Arguments -hq-postfix=@2x liek dwg2maptiles ģenerēt augstas kvalitātes (hq, augstas izšķirtspējas, retina) elementus 512x512px izmērā kopā ar standarta izšķirtspējas elementiem 256x256px izmērā.
Lai vēl vairāk uzlabotu kvalitāti, mēs izmantojam arī slēdzi -a nogludināšanai (antialiasing).
Skatīt piemēru ar Leaflet tiešsaistē
Ģeoreferencētu kartes elementu ģenerēšana
Section titled “Ģeoreferencētu kartes elementu ģenerēšana”dwg2maptiles var izmantot arī precīzu pārklājumu ģenerēšanai pasaules kartēm. Šim nolūkam rasējums parasti ir jātransformē no lokālas koordinātu sistēmas uz Web Mercator koordinātām, kā to parasti izmanto tiešsaistes kartes.
QCAD Professional tiek piegādāts ar atsevišķu komandrindas rīku rasējumu transformēšanai no vienas koordinātu atsauces sistēmas (CRS) uz citu: dwgmapconvert.
dwgmapconvert parasti tiek izmantots, lai konvertētu visas koordinātas dotajā rasējuma failā no zināmas, lokālas koordinātu sistēmas uz EPSG:3857 koordinātu sistēmu (dažreiz saukta par “Web Mercator”). Šī ir koordinātu sistēma, ko izmanto lielākā daļa tiešsaistes karšu, piemēram, Google Maps vai mapbox. Lai izmantotu rasējumu kā ievadi dwg2maptiles un iegūtu ģeoreferencētus kartes elementus, rasējumam jābūt EPSG:3857 koordinātu sistēmā.
EPSG:3857 koordinātu sistēmā visa pasaules karte tālummaiņas līmenī 0 ietilpst 20037508.3427892m kvadrātā. Ja rasējums tiek konvertēts šajā koordinātu sistēmā, rasējums tiek transformēts tā, lai tas ietilptu šajā pasaules kvadrātā un lai rasējums atrastos pareizajās projicētajās pasaules koordinātās.
Piemēram, ja rasējums tika izveidots EPSG:2056 (arī LV95, lokālā Šveices koordinātu sistēma), to var transformēt uz EPSG:3857 ar dwgmapconvert šādi:
dwgmapconvert -segment-length=0.5 -crs-in=EPSG:2056 -crs-out=EPSG:3857 -f -o drawing_epsg3857.dxf drawing_epsg2056.dxfTā kā karšu projekcijas parasti ir nelineāras, līknes un garākas līnijas ir jāsadala mazos līniju segmentos, kurus pēc tam var projicēt nelineārā veidā. Ja tiek norādīts slēdzis -segment-length, dwgmapconvert veic šo segmentēšanu automātiski, izmantojot doto segmenta garumu. Segmenta garums tiek norādīts sākotnējā rasējuma rasēšanas vienībās (šeit metros).
-crs-in tiek izmantots, lai norādītu ievades koordinātu sistēmu, šeit EPSG:2056.
-crs-out tiek izmantots, lai norādītu izvades koordinātu sistēmu, kurai jābūt EPSG:3857, ja izvade vēlāk jāizmanto ar dwg2maptiles.
dwgmapconvert nāk ar LV95 atbalstu kā ievadi un WebMercator kā izvadi.
Citas koordinātu sistēmas tiks pievienotas nākamajās versijās vai tās var pievienot lietotājs.
Lai pievienotu atbalstu jaunai koordinātu sistēmai, jānodrošina divi vienādojumi koordinātu konvertēšanai no jaunās koordinātu sistēmas uz WGS84 (garums/platums, tāpat kā GPS koordinātas).
Jaunas koordinātu sistēmas var pievienot JSON konfigurācijas failam ar nosaukumu CRS.json, kas atrodas izmantotās QCAD instalācijas mapē “scripts”. Šeit ir piemēra CRS.json fails, kas konfigurē koordinātu sistēmu LV95. Lai varētu izmantot LV95 kā ievadi rīkam dwgmapconvert, mums jānodrošina sadaļa “toWgs84” ar vienādojumiem x un y koordinātu konvertēšanai. Šeit mēs izmantojam arī divus palīgmainīgos, x_ un y_, kas jāinicializē x vienādojumā, lai tie būtu pieejami abos vienādojumos.
Mēs varētu nodrošināt arī sadaļu “fromWgs84”, lai atļautu konvertēšanu no citām koordinātu sistēmām uz LV95. Abas sadaļas ir neobligātas atkarībā no konvertēšanas virziena, kuru vēlaties atbalstīt.
{ "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" ] } ]}Kartes elementu ģenerēšana
Section titled “Kartes elementu ģenerēšana”Kad esam konvertējuši rasējumu uz EPSG:3857 koordinātām, mēs varam izmantot dwg2maptiles, lai ģenerētu elementus pārklājuma slānim Leaflet:
dwg2maptiles -web-mercator -skip-empty -hq-postfix=@2x -z 22 -b transparent -o path/to/output/directory drawing_epsg3857.dxfŅemiet vērā, ka mums ir jānodod slēdzis -web-mercator rīkam dwg2maptiles, lai tas zinātu, ka tam nevajadzētu veikt automātisko tālummaiņu, bet ģenerēt kartes pārklājumu precīzās EPSG:3857 koordinātās, kā tās ir failā.
-skip-empty liek dwg2maptiles neģenerēt elementus, kuros nav nevienas rasējuma daļas. Bez šī slēdža katram tālummaiņas līmenim tiks ģenerēti 2^zoomLevel elementi. Tas būtu 4’194’304 elementi tālummaiņas līmenim 22. Tā kā pārklājuma rasējums ļoti iespējams aptver tikai ļoti mazu pasaules kartes daļu, šis slēdzis vienmēr jāizmanto, veidojot pārklājuma kartes.
-b transparent iestata fonu kā caurspīdīgu, lai karti varētu izmantot kā pārklājumu esošai pasaules kartei (piem., Google Map, mapbox utt.). Lai kontrolētu krāsu, kādā tiek attēlotas melnas vai baltas līnijas, fonu var iestatīt kā melnu caurspīdīgu vai baltu caurspīdīgu ar attiecīgi -b "#00ffffff" (balts caurspīdīgs fons, melnas līnijas) vai -b "#00000000" (melns caurspīdīgs fons, baltas līnijas). Šajā gadījumā noteikti nododiet arī slēdzi -c, lai piespiestu automātisku krāsu korekciju.
Argumentu -hq-postfix=@2x var izmantot, lai papildus parastajiem 256px elementiem ģenerētu augstas izšķirtspējas elementus (512px). Vērtība “@2x” ir ieteicama un plaši izmantota augstas izšķirtspējas elementiem, arī Leaflet. Ar šo slēdzi katram zemas izšķirtspējas elementam “N.png” tiek izveidots augstas izšķirtspējas elements “[email protected]”.
Vairāku procesu (un CPU kodolu) izmantošana
Section titled “Vairāku procesu (un CPU kodolu) izmantošana”Kartes elementu ģenerēšana var būt CPU intensīvs uzdevums atkarībā no tālummaiņas līmeņiem, rasējuma sarežģītības un citiem iestatījumiem.
Lai ātrāk ģenerētu kartes elementus, jūs varat sadalīt darbu starp vairākiem pieejamiem CPU kodoliem. Šai funkcijai dwg2maptiles piedāvā slēdzi -s, lai ģenerētu tikai daļu no nepieciešamajiem elementiem. Slēdzis -s sagaida divus ar komatu atdalītus parametrus: ģenerējamo daļu un izmantoto daļu kopējo skaitu. Piemēram, -s 1,4 ģenerētu pirmo daļu no kopumā četrām daļām. Lai ģenerētu visus iepriekš minētā piemēra elementus, izmantojot četrus CPU kodolus, jūs varat palaist:
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 &waitProtams, jūs varētu arī sadalīt uzdevumus pēc tālummaiņas līmeņiem vai izmantot daļas tikai augstākiem tālummaiņas līmeņiem un vienu procesu visiem zemākiem (lētākiem) tālummaiņas līmeņiem utt.
Piemērs
Section titled “Piemērs”Interaktīvs piemērs nodrošina divus pārklājuma slāņus Šveices Cīrihes kantona kartei: aizsargāto meža platību un savvaļas dzīvnieku koridorus. Sākotnējie dati bija EPSG:2056 (LV95) koordinātās un tika transformēti uz EPSG:3857, izmantojot dwgmapconvert.