How to get the centroid of a set of points in PostGIS? The Next CEO of Stack OverflowHow to create source and target ID columns for a linestring table in PostGIS?How to get the coordinate system from a PostGIS database?How to take polygon centroid in PostgisCentroid of Points using postgisHow to change the postgresql table to support postGIS?How do you combine multiple spatial functions in one query?How to get the geometry value from coordinatesproblem in PostGIS Name of the system used for Points and how to get distance between to point?What is the SRID for EPSG 102743?Using Postgis,The shell prompt Invalid endian flag value encountered,when I want to do MBR to my WKB_geometry

Pulling the principal components out of a DimensionReducerFunction?

Traduction de « Life is a roller coaster »

Do scriptures give a method to recognize a truly self-realized person/jivanmukta?

What was the first Unix version to run on a microcomputer?

Inexact numbers as keys in Association?

Iterate through multiline string line by line

0-rank tensor vs vector in 1D

Is there such a thing as a proper verb, like a proper noun?

Can this note be analyzed as a non-chord tone?

How did Beeri the Hittite come up with naming his daughter Yehudit?

Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?

Can I board the first leg of the flight without having final country's visa?

How to get the last not-null value in an ordered column of a huge table?

In the "Harry Potter and the Order of the Phoenix" videogame, what potion is used to sabotage Umbridge's Speakers?

My ex-girlfriend uses my Apple ID to login to her iPad, do I have to give her my Apple ID password to reset it?

Why the last AS PATH item always is `I` or `?`?

Strength of face-nailed connection for stair steps

Are the names of these months realistic?

Getting Stale Gas Out of a Gas Tank w/out Dropping the Tank

Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?

Can someone explain this formula for calculating Manhattan distance?

IC has pull-down resistors on SMBus lines?

Is there an equivalent of cd - for cp or mv

Traveling with my 5 year old daughter (as the father) without the mother from Germany to Mexico



How to get the centroid of a set of points in PostGIS?



The Next CEO of Stack OverflowHow to create source and target ID columns for a linestring table in PostGIS?How to get the coordinate system from a PostGIS database?How to take polygon centroid in PostgisCentroid of Points using postgisHow to change the postgresql table to support postGIS?How do you combine multiple spatial functions in one query?How to get the geometry value from coordinatesproblem in PostGIS Name of the system used for Points and how to get distance between to point?What is the SRID for EPSG 102743?Using Postgis,The shell prompt Invalid endian flag value encountered,when I want to do MBR to my WKB_geometry










13















I use PostgreSQL with the PostGIS extension.



I have a set of points in the_geom column from a table myschema.myobjects. I want to create a select statement to get the centroid of this cluster, so from a select statement like this:



SELECT the_geom FROM myschema.myobjects


I need to find the correct syntax for a statement like:



SELECT ST_AsText(ST_Centroid( (SELECT the_geom FROM myshema.myobjects) ));









share|improve this question




























    13















    I use PostgreSQL with the PostGIS extension.



    I have a set of points in the_geom column from a table myschema.myobjects. I want to create a select statement to get the centroid of this cluster, so from a select statement like this:



    SELECT the_geom FROM myschema.myobjects


    I need to find the correct syntax for a statement like:



    SELECT ST_AsText(ST_Centroid( (SELECT the_geom FROM myshema.myobjects) ));









    share|improve this question


























      13












      13








      13


      3






      I use PostgreSQL with the PostGIS extension.



      I have a set of points in the_geom column from a table myschema.myobjects. I want to create a select statement to get the centroid of this cluster, so from a select statement like this:



      SELECT the_geom FROM myschema.myobjects


      I need to find the correct syntax for a statement like:



      SELECT ST_AsText(ST_Centroid( (SELECT the_geom FROM myshema.myobjects) ));









      share|improve this question
















      I use PostgreSQL with the PostGIS extension.



      I have a set of points in the_geom column from a table myschema.myobjects. I want to create a select statement to get the centroid of this cluster, so from a select statement like this:



      SELECT the_geom FROM myschema.myobjects


      I need to find the correct syntax for a statement like:



      SELECT ST_AsText(ST_Centroid( (SELECT the_geom FROM myshema.myobjects) ));






      postgis postgresql centroids






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jun 18 '18 at 22:04









      Brad Koch

      307422




      307422










      asked Jul 31 '14 at 8:01









      Rémi B.Rémi B.

      628712




      628712




















          3 Answers
          3






          active

          oldest

          votes


















          18














          you have to use the union function like this



          SELECT att1, st_centroid(st_union(geom)) as geom
          FROM schema.table
          GROUP BY att1;


          so you can obtain centroid of point that have same attribute.






          share|improve this answer






























            4














            PostGIS has two functions for combining multiple geometries into a single geometry that you can use as an input to ST_Centroid.



            ST_Collect simply combines a set of geometries without modifying them.



            The alternative,ST_Union, will "dissolve" multiple geometries and remove redundant components. This is probably not what you want for this application.



            To see the difference, compare:



             SELECT ST_AsText(ST_Centroid(ST_Union(geom))) FROM 
            (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

            -- POINT(1 1)


            and



             SELECT ST_AsText(ST_Centroid(ST_Collect(geom))) FROM 
            (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

            -- POINT(1.33333333333333 1.33333333333333)


            In this case, ST_Union has removed the duplicated point, while ST_Collect has retained it.






            share|improve this answer






























              1














              If you're looking for performance use this query:



              SELECT avg(ST_X(the_geom)) as lon, avg(ST_Y(the_geom)) as lat FROM table


              it gives you more or less the same output as:



              SELECT ST_AsText(ST_Centroid(ST_Collect(the_geom))) FROM table


              like in @dbaston answer, but is faster and doesn't use as much memory.






              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%2f108973%2fhow-to-get-the-centroid-of-a-set-of-points-in-postgis%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                18














                you have to use the union function like this



                SELECT att1, st_centroid(st_union(geom)) as geom
                FROM schema.table
                GROUP BY att1;


                so you can obtain centroid of point that have same attribute.






                share|improve this answer



























                  18














                  you have to use the union function like this



                  SELECT att1, st_centroid(st_union(geom)) as geom
                  FROM schema.table
                  GROUP BY att1;


                  so you can obtain centroid of point that have same attribute.






                  share|improve this answer

























                    18












                    18








                    18







                    you have to use the union function like this



                    SELECT att1, st_centroid(st_union(geom)) as geom
                    FROM schema.table
                    GROUP BY att1;


                    so you can obtain centroid of point that have same attribute.






                    share|improve this answer













                    you have to use the union function like this



                    SELECT att1, st_centroid(st_union(geom)) as geom
                    FROM schema.table
                    GROUP BY att1;


                    so you can obtain centroid of point that have same attribute.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Jul 31 '14 at 8:08









                    SergioSergio

                    889716




                    889716























                        4














                        PostGIS has two functions for combining multiple geometries into a single geometry that you can use as an input to ST_Centroid.



                        ST_Collect simply combines a set of geometries without modifying them.



                        The alternative,ST_Union, will "dissolve" multiple geometries and remove redundant components. This is probably not what you want for this application.



                        To see the difference, compare:



                         SELECT ST_AsText(ST_Centroid(ST_Union(geom))) FROM 
                        (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                        -- POINT(1 1)


                        and



                         SELECT ST_AsText(ST_Centroid(ST_Collect(geom))) FROM 
                        (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                        -- POINT(1.33333333333333 1.33333333333333)


                        In this case, ST_Union has removed the duplicated point, while ST_Collect has retained it.






                        share|improve this answer



























                          4














                          PostGIS has two functions for combining multiple geometries into a single geometry that you can use as an input to ST_Centroid.



                          ST_Collect simply combines a set of geometries without modifying them.



                          The alternative,ST_Union, will "dissolve" multiple geometries and remove redundant components. This is probably not what you want for this application.



                          To see the difference, compare:



                           SELECT ST_AsText(ST_Centroid(ST_Union(geom))) FROM 
                          (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                          -- POINT(1 1)


                          and



                           SELECT ST_AsText(ST_Centroid(ST_Collect(geom))) FROM 
                          (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                          -- POINT(1.33333333333333 1.33333333333333)


                          In this case, ST_Union has removed the duplicated point, while ST_Collect has retained it.






                          share|improve this answer

























                            4












                            4








                            4







                            PostGIS has two functions for combining multiple geometries into a single geometry that you can use as an input to ST_Centroid.



                            ST_Collect simply combines a set of geometries without modifying them.



                            The alternative,ST_Union, will "dissolve" multiple geometries and remove redundant components. This is probably not what you want for this application.



                            To see the difference, compare:



                             SELECT ST_AsText(ST_Centroid(ST_Union(geom))) FROM 
                            (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                            -- POINT(1 1)


                            and



                             SELECT ST_AsText(ST_Centroid(ST_Collect(geom))) FROM 
                            (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                            -- POINT(1.33333333333333 1.33333333333333)


                            In this case, ST_Union has removed the duplicated point, while ST_Collect has retained it.






                            share|improve this answer













                            PostGIS has two functions for combining multiple geometries into a single geometry that you can use as an input to ST_Centroid.



                            ST_Collect simply combines a set of geometries without modifying them.



                            The alternative,ST_Union, will "dissolve" multiple geometries and remove redundant components. This is probably not what you want for this application.



                            To see the difference, compare:



                             SELECT ST_AsText(ST_Centroid(ST_Union(geom))) FROM 
                            (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                            -- POINT(1 1)


                            and



                             SELECT ST_AsText(ST_Centroid(ST_Collect(geom))) FROM 
                            (VALUES ('POINT (0 0)'), ('POINT (2 2)'), ('POINT (2 2)')) sq (geom);

                            -- POINT(1.33333333333333 1.33333333333333)


                            In this case, ST_Union has removed the duplicated point, while ST_Collect has retained it.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Jun 18 '18 at 22:27









                            dbastondbaston

                            7,67132350




                            7,67132350





















                                1














                                If you're looking for performance use this query:



                                SELECT avg(ST_X(the_geom)) as lon, avg(ST_Y(the_geom)) as lat FROM table


                                it gives you more or less the same output as:



                                SELECT ST_AsText(ST_Centroid(ST_Collect(the_geom))) FROM table


                                like in @dbaston answer, but is faster and doesn't use as much memory.






                                share|improve this answer



























                                  1














                                  If you're looking for performance use this query:



                                  SELECT avg(ST_X(the_geom)) as lon, avg(ST_Y(the_geom)) as lat FROM table


                                  it gives you more or less the same output as:



                                  SELECT ST_AsText(ST_Centroid(ST_Collect(the_geom))) FROM table


                                  like in @dbaston answer, but is faster and doesn't use as much memory.






                                  share|improve this answer

























                                    1












                                    1








                                    1







                                    If you're looking for performance use this query:



                                    SELECT avg(ST_X(the_geom)) as lon, avg(ST_Y(the_geom)) as lat FROM table


                                    it gives you more or less the same output as:



                                    SELECT ST_AsText(ST_Centroid(ST_Collect(the_geom))) FROM table


                                    like in @dbaston answer, but is faster and doesn't use as much memory.






                                    share|improve this answer













                                    If you're looking for performance use this query:



                                    SELECT avg(ST_X(the_geom)) as lon, avg(ST_Y(the_geom)) as lat FROM table


                                    it gives you more or less the same output as:



                                    SELECT ST_AsText(ST_Centroid(ST_Collect(the_geom))) FROM table


                                    like in @dbaston answer, but is faster and doesn't use as much memory.







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered 2 days ago









                                    gemo1011gemo1011

                                    255




                                    255



























                                        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%2f108973%2fhow-to-get-the-centroid-of-a-set-of-points-in-postgis%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