Opened 9 years ago
Closed 7 years ago
#3419 closed defect (invalid)
ST_CurveToLine not behaving as expected on 3 point circle
Reported by: | zimmicz | Owned by: | pramsey |
---|---|---|---|
Priority: | blocker | Milestone: | PostGIS 2.4.0 |
Component: | postgis | Version: | 2.2.x |
Keywords: | Cc: |
Description
Compare results of this query
SELECT ST_GeomFromText('CIRCULARSTRING( -1 0, 0 0, -1 0)'), (SELECT ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING( -1 0, 0 0, -1 0)'))), (SELECT ST_GeomFromText('CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)')), (SELECT ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)')));
The second statement returns a line with half a radius of original circularstring.
Attachments (1)
Change History (7)
by , 9 years ago
Attachment: | Screenshot from 2016-01-06 12:10:52.png added |
---|
comment:1 by , 9 years ago
Milestone: | PostGIS 2.2.1 → PostGIS 2.2.2 |
---|
comment:2 by , 9 years ago
Milestone: | PostGIS 2.2.2 → PostGIS 2.2.3 |
---|
comment:3 by , 8 years ago
comment:4 by , 8 years ago
Milestone: | PostGIS 2.2.3 → PostGIS 2.4.0 |
---|
comment:5 by , 7 years ago
Priority: | medium → blocker |
---|
comment:6 by , 7 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
When we look at this in another renderer (JTS test builder), the linearized version is as expected (circle w/ one edge on 0,0 and the other on -1,0)
Note:
See TracTickets
for help on using tickets.
Are you using QGIS by chance? It looks to me like QGIS is incorrectly rendering
CIRCULARSTRING ( -1 0, 0 0, -1 0 )
. It should look like the ST_CurveToLine result but instead passes through the point (1,0).Interestingly, Microsoft considers the use of a three-point CIRCULARSTRING to define a circle invalid: https://msdn.microsoft.com/en-us/library/ff929141.aspx