Mais

Altere a ordem de uma camada com mapscript

Altere a ordem de uma camada com mapscript


Sou muito novo no mapScript, estou tentando alterar a ordem de uma camada com o mapScript. Meu ms_newMapObj é uma fusão de muitos mapfile, então não sei o índice da camada que desejo mover para cima.

Não descobri como associar a camada com o índice de desenho fornecido porgetLayersDrawingOrder. Este método retorna apenas uma lista de índice, mas o que eu percebo, é que o objeto de camada não tem propriedades de índice. Eu conheço o métodomoveLayerUpmas também precisa de um índice no parâmetro.

Aqui está meu código para obter a camada que desejo subir.

$ allLayers = $ oMapFinal-> getAllLayerNames (); foreach ($ allLayers as $ evalLayer) {$ layer = $ oMapFinal-> getLayerByName ($ evalLayer); if ($ layer == MINHA CONDIÇÃO) // altera a ordem do desenho

Finalmente entendi, parece que getAllLayerNames e getLayersDrawingOrder têm a mesma ordem.

Então, aqui está o meu código:

$ allLayers = $ oMapFinal-> getAllLayerNames (); foreach ($ allLayers as $ index => $ evalLayer) {$ layer = $ oMapFinal-> getLayerByName ($ evalLayer); if ($ layer == MINHA CONDIÇÃO) {$ arrLayOrder = $ oMapFinal-> getLayersDrawingOrder (); não definido ($ arrLayOrder [$ index]); $ oMapFinal-> setLayersDrawingOrder (array_merge ([$ index], $ arrLayOrder)); }}

Assista o vídeo: Corrigindo vazios perfeitamente no ArcGIS