Vairāk

Automātiskās aizpildes formāts ar atlantu

Automātiskās aizpildes formāts ar atlantu


Es cenšos izveidot automātiskās aizpildes formātu QGIS, pamatojoties uz atlantu.

Būs daži dinamiski teksta lauki un dažas rūtiņas, kuras jāpārbauda ar "x", ja atlanta ģeometrija krustojas ar citu ģeometriju grupu. Kaut kas līdzīgs "JA $ $ atlasgeometrija šķērso slāni X VAI Y VAI ... VAI Z, tad atzīmējiet izvēles rūtiņu". Šie slāņi ir sagrupēti, tāpēc būtu jauki, ja es tos visus varētu saukt kopā skriptā. Lieta ir tāda, ka es nevaru atrast nevienu pamācību, kas paskaidrotu, kā formulās vajadzētu izsaukt kartes slāņus, visi redzamie piemēri ir par atsevišķām ģeometrijām, un man ir simtiem to, lai tas nedarbotos.

Vai kāds varētu man paskaidrot, kā tam vajadzētu darboties? Un kādai jābūt formulas struktūrai?


Ļaujiet man mēģināt izskaidrot:

  1. Mums ir kartes slānis, kurā ir saglabāti daži objekti: tie apraksta dažu ēku ģeogrāfisko atrašanās vietu. Katra ģeometrija ir ēka. Sauksim slāni "Projekti"
  2. Mums ir daži citi slāņi, kas satur to apgabalu perimetrus (= daudzstūrus), kur nevar veikt kāda veida darbus vai kuriem ir jābūt noteiktām iezīmēm. Sauksim tos par "ierobežojumiem A", "ierobežojumiem B" ...
  3. Man ir nepieciešams skripts, kurā teikts, ka "IF" projekti "krustojas ar ierobežojumiem A, pēc tam ierakstiet X noteiktā tekstlodziņā.

Mērķis ir izveidot formātu, kas vienā lapā apraksta visus ierobežojumus, kas man jāievēro, definējot projektu.


Sapratu!

Bet vispirms jums ir nedaudz jāsagatavo dati, jo jūs nevarat gaidīt efektivitāti, ja mēģināt pārbaudīt katra ierobežojošā slāņa katru iezīmi katram mērķa projektam.

Tātad, šeit ir soļi:

  1. Izšķīdiniet visu ierobežojošā slāņa ģeometriju, lai tests būtu vienkāršāks, jo katram ierobežojumam būs jāpārbauda tikai unikāla funkcija

  2. Apvienot visu ierobežojošo slāni jaunā, nosauciet to par “restraint_union” UN pārliecinieties, vai tajā ir jauns kolonnas nosaukums “col_restraint”, kurā tiks saglabāts sākotnējās ierobežošanas nosaukums, kas radīja katru funkciju “restraint1”, “restraint2”,…

  3. Pievienojiet projekta slāni un "restraint_union" savam QGis projektam

  4. Izmantojot šo izteiksmi, projekta slānī pievienojiet tik daudz virtuālo lauku, cik nepieciešamskrustojas ($ geometry, geometry (get_feature ('restraint_union', 'col_restraint', 'restraint1')))

    Tas atgriezīs Būla vērtību 1, ja projekts krustos ierobežojumu1, un 0, ja nē. Dariet to visiem ierobežojumiem. Lai to nenosauktu par "restraint1_test".

  5. Tagad projekta slānis satur visu nepieciešamo informāciju par to, vai tas krustojas ar katru ierobežojumu. Izveidojiet savu atlantu, izmantojot šo slāni, un izmantojiet tik daudz papildu izteiksmes, cik nepieciešams informācijas atveidošanai. Piemērs :

    atribūts ($ atlasfeature, 'restraint1_test')


PS: 2. darbība nav obligāta, taču tā var palīdzēt jums izveidot tīrāku projektu. Varat arī visu izšķīdušo ierobežotājslāni turēt atsevišķi.


Skatīties video: Seminārs Atvērtie dati un to publicēšana.