Ticket #73 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Incorrect results when strdf:buffer is applied on a constant geometry in the SELECT clause

Reported by: charnik Owned by: giannis
Priority: major Milestone: Strabon v3.3
Component: postgis Version: 3.2.10
Keywords: strdf:buffer, geof:buffer, incorrect results, transformation, SELECT clause, constant geometry Cc:

Description

Take the following query

PREFIX strdf: <http://strdf.di.uoa.gr/ontology#>

SELECT (strdf:buffer("POLYGON ((674299 4235110,678099 4235110,678099 4231310,674299 4231310,674299 4235110));http://www.opengis.net/def/crs/EPSG/0/2100"^^<http://strdf.di.uoa.gr/ontology#WKT>, 5000, <http://www.opengis.net/def/uom/OGC/1.0/metre>) as ?buffer)
WHERE {
    ?s strdf:hasGeometry ?g .
}

on the following database

<http://example.org/a> <http://strdf.di.uoa.gr/ontology#hasGeometry> "POLYGON ((674299 4235110,678099 4235110,678099 4231310,674299 4231310,674299 4235110));http://www.opengis.net/def/crs/EPSG/0/2100"^^<http://strdf.di.uoa.gr/ontology#WKT> .

Since strdf:buffer is computed based on meters, the query builder spits code for transforming the input geometry to 4326, but forget to transform it back to EPSG:2100 before returning it to the user. Therefore, the returned geometry have coordinates in 4326 and is reported to be expressed in EPSG:2100.

On the contrary, if "?g" is supplied as the argument, the transformation to 4326 and back to EPSG:2100 is done as expected.

Easy fix though.

Change History

comment:1 Changed 3 years ago by giannis

  • Owner changed from pyravlos-team to giannis
  • Status changed from new to assigned

comment:2 Changed 3 years ago by giannis

  • Status changed from assigned to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.