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
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
add a comment |
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
add a comment |
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
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
postgis postgresql centroids
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
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
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.
add a comment |
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.
add a comment |
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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Jul 31 '14 at 8:08
SergioSergio
889716
889716
add a comment |
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered Jun 18 '18 at 22:27
dbastondbaston
7,67132350
7,67132350
add a comment |
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered 2 days ago
gemo1011gemo1011
255
255
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
