Več

Geoserver SLD: Dinamična spremenljiva zamenjava

Geoserver SLD: Dinamična spremenljiva zamenjava


Soočam se s težavo z Geoserverjem in njegovim mehanizmom za oblikovanje, zato nisem prepričan, ali je to mogoče rešiti ali ne. Najprej pa hiter kontekst ...

Kontekst

Za prikaz zemljevida v naši aplikaciji želimo uporabiti Geoserver in OpenLayers. V tej aplikaciji bomo lahko na izbranem polju izbrali brazilsko državo, da bomo videli vsa mesta iz te države. Upoštevajte tudi, da bo vsako mesto napolnjeno z določeno barvo.

Barve bodo poslane prek zahteve WMS, namesto da bi bile izračunane ali definirane znotraj SLD, na primer z uporabo podatkov iz našega nabora podatkov. To je težava ... Upoštevati je treba še to, da imajo nekatere države v Braziliji več kot 400 mest.

Reševanje problema?

Prvi pristop, ki smo ga preizkusili, je ustvarjanje specifičnega Pravilo za vsako mesto. Vendar se je izkazalo za neizvedljivo, ker imamo v nekaterih državah več kot 300 mest. Predstavljajte si, kako velika bi bila ta datoteka SLD!

Drugi pristop, o katerem smo razmišljali, je bil dinamično pridobiti vsako barvo iz QueryStringa. Na primer, ko prikaže mesto z imenom "Salvador", mora poiskati parameter QueryString barva-salvador. Ampak ne vemo, kako do tega. Pravzaprav se zdi nemogoče. Imam prav?

Oglejte si SLD spodaj.

 Mestno pravilo Mesto    #  salvador 234545

Kar bi radi, je namesto da definiramo dobesedno salvador, znotraj env funkcijo, bi radi uporabili lastnost kot ime mesta ki izhaja iz našega nabora podatkov o plasteh. Nekaj ​​podobnega…

 Mestno pravilo Mesto    #  ime_ mesta-barva  234545

Namesto

 ime_ mesta-barva 

Uporabiti morate funkcijo Concatenate

 ime_ mesta -barva

Poglej si posnetek: SLD. Geoserver, Lines