How to move a layer position on the layers order Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How to move layers in the Layer Order Panel using PyQGIS?Using Python to set text for a label in a QGIS3 print layout labelCreating and manipulating an HTML frame in QGIS 3.2.0 Print Composer using PyQGISUnable to export map with PyQGIS 3PyQGIS import csv- QGIS 3.4Getting field index from input vector layer in PyQGIS?Writing pyQGIS 3 script to modify layer (add field and feel it) inside QGIS?PyQGIS - Managing print layoutsQGIS Processing Script Stops Working After First Runpyqgis 3:how to identify partial intersections between a buffer (polygon) layer and pipe (line) layer?Selecting layers in PyQGIS

Why doesn't SQL Optimizer use my constraint?

Hangman Game with C++

Why is my ESD wriststrap failing with nitrile gloves on?

An adverb for when you're not exaggerating

Is grep documentation about ignoring case wrong, since it doesn't ignore case in filenames?

Benefits of using sObject.clone versus creating a new record

How do living politicians protect their readily obtainable signatures from misuse?

I want to run a python3 script on startup and in an endless loop on my raspberry pi

Multiple OR (||) Conditions in If Statement

Effects on objects due to a brief relocation of massive amounts of mass

What do you call the main part of a joke?

Is it ethical to give a final exam after the professor has quit before teaching the remaining chapters of the course?

How do I find out the mythology and history of my Fortress?

NumericArray versus PackedArray in MMA12

Crossing US/Canada Border for less than 24 hours

If windows 7 doesn't support WSL, then what does Linux subsystem option mean?

Physics no longer uses mechanical models to describe phenomena

Should I follow up with an employee I believe overracted to a mistake I made?

What is a fractional matching?

Using audio cues to encourage good posture

Denied boarding although I have proper visa and documentation. To whom should I make a complaint?

How does light 'choose' between wave and particle behaviour?

Why is it faster to reheat something than it is to cook it?

Project Euler #1 in C++



How to move a layer position on the layers order



Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?How to move layers in the Layer Order Panel using PyQGIS?Using Python to set text for a label in a QGIS3 print layout labelCreating and manipulating an HTML frame in QGIS 3.2.0 Print Composer using PyQGISUnable to export map with PyQGIS 3PyQGIS import csv- QGIS 3.4Getting field index from input vector layer in PyQGIS?Writing pyQGIS 3 script to modify layer (add field and feel it) inside QGIS?PyQGIS - Managing print layoutsQGIS Processing Script Stops Working After First Runpyqgis 3:how to identify partial intersections between a buffer (polygon) layer and pipe (line) layer?Selecting layers in PyQGIS



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















I am looking for a way of moving a layer to the top of the layer order once another layer is loaded. Using the following code extracted from this answer I get the error: AttributeError: 'QgsLayerTreeMapCanvasBridge' object has no attribute 'customLayerOrder'



 shapeindex = self.iface.mapCanvas().currentLayer()
bridge = self.iface.QgslayerTreeCanvasBridge()
order = bridge.customLayerOrder()
order.inster(0, order.pop(order.index(shapeindex.id())))
bridge.setCustomLayerOrder(order)


I looked into pyqgis3 documentation but it doesn't show more than the function name: QgsLayerTreeMapCanvasBridge










share|improve this question




























    2















    I am looking for a way of moving a layer to the top of the layer order once another layer is loaded. Using the following code extracted from this answer I get the error: AttributeError: 'QgsLayerTreeMapCanvasBridge' object has no attribute 'customLayerOrder'



     shapeindex = self.iface.mapCanvas().currentLayer()
    bridge = self.iface.QgslayerTreeCanvasBridge()
    order = bridge.customLayerOrder()
    order.inster(0, order.pop(order.index(shapeindex.id())))
    bridge.setCustomLayerOrder(order)


    I looked into pyqgis3 documentation but it doesn't show more than the function name: QgsLayerTreeMapCanvasBridge










    share|improve this question
























      2












      2








      2








      I am looking for a way of moving a layer to the top of the layer order once another layer is loaded. Using the following code extracted from this answer I get the error: AttributeError: 'QgsLayerTreeMapCanvasBridge' object has no attribute 'customLayerOrder'



       shapeindex = self.iface.mapCanvas().currentLayer()
      bridge = self.iface.QgslayerTreeCanvasBridge()
      order = bridge.customLayerOrder()
      order.inster(0, order.pop(order.index(shapeindex.id())))
      bridge.setCustomLayerOrder(order)


      I looked into pyqgis3 documentation but it doesn't show more than the function name: QgsLayerTreeMapCanvasBridge










      share|improve this question














      I am looking for a way of moving a layer to the top of the layer order once another layer is loaded. Using the following code extracted from this answer I get the error: AttributeError: 'QgsLayerTreeMapCanvasBridge' object has no attribute 'customLayerOrder'



       shapeindex = self.iface.mapCanvas().currentLayer()
      bridge = self.iface.QgslayerTreeCanvasBridge()
      order = bridge.customLayerOrder()
      order.inster(0, order.pop(order.index(shapeindex.id())))
      bridge.setCustomLayerOrder(order)


      I looked into pyqgis3 documentation but it doesn't show more than the function name: QgsLayerTreeMapCanvasBridge







      qgis-3 pyqgis-3 python-3






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Apr 10 at 18:53









      ThriskelThriskel

      859




      859




















          1 Answer
          1






          active

          oldest

          votes


















          2














          If you look at the documentation, you can see the changes in the API.



          https://qgis.org/api/api_break.html#qgis_api_break_3_0_QgsLayerTreeMapCanvasBridge



          Using your example you must use this



          vlayer = iface.activeLayer()
          root = QgsProject.instance().layerTreeRoot()
          root.setHasCustomLayerOrder (True)
          order = root.customLayerOrder()
          order.insert(0, order.pop( order.index( vlayer ) ) ) # vlayer to the top
          root.setCustomLayerOrder( order )


          but this code change the order in which layers will be rendered on the canvas,it doesn't physically move.If you want move physically need something like this:



          alayer = QgsProject.instance().mapLayersByName("trails")[0]

          root = QgsProject.instance().layerTreeRoot()

          # Move Layer
          myalayer = root.findLayer(alayer.id())
          myClone = myalayer.clone()
          parent = myalayer.parent()
          parent.insertChildNode(0, myClone)
          parent.removeChildNode(myalayer)


          or for automatic update



          def rearrange( layers ):
          root = QgsProject.instance().layerTreeRoot()
          order = root.customLayerOrder()
          for layer in layers: # How many layers we need to move
          order.insert( 0, order.pop() ) # Last layer to first position
          root.setCustomLayerOrder( order )

          QgsProject.instance().legendLayersAdded.connect( rearrange )


          I hope it helps you






          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "79"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318421%2fhow-to-move-a-layer-position-on-the-layers-order%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            If you look at the documentation, you can see the changes in the API.



            https://qgis.org/api/api_break.html#qgis_api_break_3_0_QgsLayerTreeMapCanvasBridge



            Using your example you must use this



            vlayer = iface.activeLayer()
            root = QgsProject.instance().layerTreeRoot()
            root.setHasCustomLayerOrder (True)
            order = root.customLayerOrder()
            order.insert(0, order.pop( order.index( vlayer ) ) ) # vlayer to the top
            root.setCustomLayerOrder( order )


            but this code change the order in which layers will be rendered on the canvas,it doesn't physically move.If you want move physically need something like this:



            alayer = QgsProject.instance().mapLayersByName("trails")[0]

            root = QgsProject.instance().layerTreeRoot()

            # Move Layer
            myalayer = root.findLayer(alayer.id())
            myClone = myalayer.clone()
            parent = myalayer.parent()
            parent.insertChildNode(0, myClone)
            parent.removeChildNode(myalayer)


            or for automatic update



            def rearrange( layers ):
            root = QgsProject.instance().layerTreeRoot()
            order = root.customLayerOrder()
            for layer in layers: # How many layers we need to move
            order.insert( 0, order.pop() ) # Last layer to first position
            root.setCustomLayerOrder( order )

            QgsProject.instance().legendLayersAdded.connect( rearrange )


            I hope it helps you






            share|improve this answer



























              2














              If you look at the documentation, you can see the changes in the API.



              https://qgis.org/api/api_break.html#qgis_api_break_3_0_QgsLayerTreeMapCanvasBridge



              Using your example you must use this



              vlayer = iface.activeLayer()
              root = QgsProject.instance().layerTreeRoot()
              root.setHasCustomLayerOrder (True)
              order = root.customLayerOrder()
              order.insert(0, order.pop( order.index( vlayer ) ) ) # vlayer to the top
              root.setCustomLayerOrder( order )


              but this code change the order in which layers will be rendered on the canvas,it doesn't physically move.If you want move physically need something like this:



              alayer = QgsProject.instance().mapLayersByName("trails")[0]

              root = QgsProject.instance().layerTreeRoot()

              # Move Layer
              myalayer = root.findLayer(alayer.id())
              myClone = myalayer.clone()
              parent = myalayer.parent()
              parent.insertChildNode(0, myClone)
              parent.removeChildNode(myalayer)


              or for automatic update



              def rearrange( layers ):
              root = QgsProject.instance().layerTreeRoot()
              order = root.customLayerOrder()
              for layer in layers: # How many layers we need to move
              order.insert( 0, order.pop() ) # Last layer to first position
              root.setCustomLayerOrder( order )

              QgsProject.instance().legendLayersAdded.connect( rearrange )


              I hope it helps you






              share|improve this answer

























                2












                2








                2







                If you look at the documentation, you can see the changes in the API.



                https://qgis.org/api/api_break.html#qgis_api_break_3_0_QgsLayerTreeMapCanvasBridge



                Using your example you must use this



                vlayer = iface.activeLayer()
                root = QgsProject.instance().layerTreeRoot()
                root.setHasCustomLayerOrder (True)
                order = root.customLayerOrder()
                order.insert(0, order.pop( order.index( vlayer ) ) ) # vlayer to the top
                root.setCustomLayerOrder( order )


                but this code change the order in which layers will be rendered on the canvas,it doesn't physically move.If you want move physically need something like this:



                alayer = QgsProject.instance().mapLayersByName("trails")[0]

                root = QgsProject.instance().layerTreeRoot()

                # Move Layer
                myalayer = root.findLayer(alayer.id())
                myClone = myalayer.clone()
                parent = myalayer.parent()
                parent.insertChildNode(0, myClone)
                parent.removeChildNode(myalayer)


                or for automatic update



                def rearrange( layers ):
                root = QgsProject.instance().layerTreeRoot()
                order = root.customLayerOrder()
                for layer in layers: # How many layers we need to move
                order.insert( 0, order.pop() ) # Last layer to first position
                root.setCustomLayerOrder( order )

                QgsProject.instance().legendLayersAdded.connect( rearrange )


                I hope it helps you






                share|improve this answer













                If you look at the documentation, you can see the changes in the API.



                https://qgis.org/api/api_break.html#qgis_api_break_3_0_QgsLayerTreeMapCanvasBridge



                Using your example you must use this



                vlayer = iface.activeLayer()
                root = QgsProject.instance().layerTreeRoot()
                root.setHasCustomLayerOrder (True)
                order = root.customLayerOrder()
                order.insert(0, order.pop( order.index( vlayer ) ) ) # vlayer to the top
                root.setCustomLayerOrder( order )


                but this code change the order in which layers will be rendered on the canvas,it doesn't physically move.If you want move physically need something like this:



                alayer = QgsProject.instance().mapLayersByName("trails")[0]

                root = QgsProject.instance().layerTreeRoot()

                # Move Layer
                myalayer = root.findLayer(alayer.id())
                myClone = myalayer.clone()
                parent = myalayer.parent()
                parent.insertChildNode(0, myClone)
                parent.removeChildNode(myalayer)


                or for automatic update



                def rearrange( layers ):
                root = QgsProject.instance().layerTreeRoot()
                order = root.customLayerOrder()
                for layer in layers: # How many layers we need to move
                order.insert( 0, order.pop() ) # Last layer to first position
                root.setCustomLayerOrder( order )

                QgsProject.instance().legendLayersAdded.connect( rearrange )


                I hope it helps you







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 11 at 9:37









                Fran RagaFran Raga

                3,42311123




                3,42311123



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318421%2fhow-to-move-a-layer-position-on-the-layers-order%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221

                    Creating closest line along the point''s azimuth using PostgreSQL Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Drawing line between points at specific distance in PostGIS?How to efficiently find the closest point over the dateline?How to find the nearest point by using PostGIS function?PostGIS nearest point with LATERAL JOIN in PostgreSQL 9.3+Creating a table and inserting selected streets using plpgsql functionsCreating a table that stores Distances and other columnSaving select query results (year wise) from PostgreSQL/PostGIS to text filesWhat is the information behind this geometry?How to give start and end vertex ids dynamically in pgr_dijkstra?Point to Polygon nearest distance DS_distance is not using geography index & knn <-> or <#> does not give result in orderLine to point conversion with start point and end point detection?

                    Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given