12-11-2018 04:14 AM
We are having custom dimensioning tool. The functionality works fine for composite geometry with arcs and polygon geometry in GMSC 2015 and 2016 versions. But, when upgrade to 2018 version it is found that the functionality is failing for geometry with polygon. Whereas the composite geometry with arc, the functionality is working. When we checked the code, we found that below is the code for the arc (the working code):
startPoint = GeometryBuilder.CreatePoint(sdoGeometry.OrdinatesArray[ordinatesStartIndex], sdoGeometry.OrdinatesArray[++ordinatesStartIndex], dimension == 3 ? sdoGeometry.OrdinatesArray[++ordinatesStartIndex] : 0);
endPoint = GeometryBuilder.CreatePoint(sdoGeometry.OrdinatesArray[++ordinatesStartIndex], sdoGeometry.OrdinatesArray[++ordinatesStartIndex], dimension == 3 ? sdoGeometry.OrdinatesArray[++ordinatesStartIndex] : 0);
using (GeometryBuilder builder = new GeometryBuilder(0, dimension))
Here, above line the first parameter is "0" (zero).
Below is the code for handling polygon (failing area):
startPoint = exteriorRing.STPointN(i);
endPoint = exteriorRing.STPointN(++i);
using (GeometryBuilder builder = new GeometryBuilder(exteriorRing.STSrid, sourceGeometry.Dimension))
Here, above line the first parameter is "exteriorRing.STSrid". On debugging, all time the return value is 3. And the code is failing on inserting to database of below line.
Error logged as below:
"05.12.2018 13:16:26 ERROR - Controller Trigger has raised an exception in Action FireData.
Oracle.DataAccess.Client.OracleException: ORA-29875: failed in the execution of the ODCIINDEXINSERT routine
ORA-13365: layer SRID does not match geometry SRID
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 930
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 435
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck, Int32 isRecoverable, OracleLogicalTransaction m_OracleLogicalTransaction)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck, OracleLogicalTransaction m_OracleLogicalTransaction)
If I am setting first parameter as "0" as below, the code works.
using (GeometryBuilder builder = new GeometryBuilder(0, sourceGeometry.Dimension)).
Please let me know what is the role of "SRID" here. And what can be the impact if we set first parameter as zero.
Thanks & Regards,
12-12-2018 07:12 AM - edited 12-12-2018 07:13 AM
Which version of GMSC 2018 are you using?
There is known issue where there is Geometry dimension mismatch when using Intergraph.Emea.Geospatial.GeometryBuilder in GMSC 2018.
The issue has been resolved and the fix included in Update 3 which is available for download.
03-22-2019 09:21 AM
Did you get this issue resolved with Update 3 (16.5.316.4) ?
I have another client having similar issue with Update 3 so I am curious about your current status with this issue.
Thanks in advance