Re: postgres 9.2.2 point conversion from polygon doesn't always give accurate center

Поиск
Список
Период
Сортировка
От Dean Rasheed
Тема Re: postgres 9.2.2 point conversion from polygon doesn't always give accurate center
Дата
Msg-id CAEZATCXPokwKBGEBLkPEyH_kWhoUA6Ua9hJxQgLxiOtjtopDWA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: postgres 9.2.2 point conversion from polygon doesn't always give accurate center  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: postgres 9.2.2 point conversion from polygon doesn't always give accurate center  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Список pgsql-bugs
On 1 February 2013 22:16, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Colin Dunklau <colin.dunklau@gmail.com> writes:
>> Hello! I believe I've found a bug in the type conversion process from
>> polygon to point.
>
>> In the documentation found here
>> http://www.postgresql.org/docs/9.2/interactive/functions-geometry.html,
>
>> Table 9-32 claims that running the point() function on a polygon
>> returns the "center of polygon". This is not the case for some
>> polygons, as shown below.
>
> It looks like what the code is actually computing is the average X
> position and average Y position of the points listed in the polygon.

That's correct. This is the most common definition used for the centre
of a polygon --- formally referred to as the centroid. See for example
http://en.wikipedia.org/wiki/Centroid

cdunklau=# select point( polygon '((0,0),(1,0),(1,1),(1,0))');
    point
-------------
 (0.75,0.25)
(1 row)

That is the correct answer. One way to think about the centroid is as
the centre of gravity of the polygon. In this case the polygon is an
"L" shape, so imagine balancing an "L" shaped object on knife edge ---
it would balance if the edge was aligned at 45 degrees to the sides of
the L, cutting each edge in half. So the centroid is halfway along the
line that connects the midpoints of the L shape.

It's also easy to see that the centroid is definitely not at (0.5,
0.5) because the entire polygon lies to the northwest / southeast of
that point.

Regards,
Dean

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Violation of primary key constraint
Следующее
От: Dean Rasheed
Дата:
Сообщение: Re: postgres 9.2.2 point conversion from polygon doesn't always give accurate center