Curves converting to straight lines in SQL spatial view

3259
4
Jump to solution
09-18-2015 02:30 PM
Highlighted
Occasional Contributor III

Operating System: Windows Server 2008 R2 Enterprise

Software: ArcGIS 10.3.1 with SQL Server 2012

I am updating our method for merging parcel boundaries from our SDE database with data copied from the appraiser's database. Rather than a join/export process, I've set up a SQL view that joins the parcel data to a table with a copy of the appraiser's data. The join works, but the resulting feature class is converting true curves to straight lines. Here's a screenshot to illustrate what I'm seeing. The tan polygon is the original parcel feature class and the heavier black line shows the geometry of the same parcel in the SQL view:

Why would the SQL view convert the true curve to a series of straight lines?

Tags (1)
Reply
0 Kudos
1 Solution

Accepted Solutions
Highlighted
MVP Regular Contributor

My hunch here is that this is caused by the fact that true curves in geodatabases traditionally are stored in a separate table or "CAD" binary field type column as described here (scroll down to the section "Feature classes stored using the Microsoft geometry or geography type in a SQL Server database" , and the CAD side table mentioned there), and that the SQL view, being based on SQL Server backend definition rather than a geodatabase Feature Class object, can not incorporate this data. AFAIK, the base table of the feature class stores a secondary geometry in the form of a "simplified" (maybe better said densified) version of the true curve in the way you describe here: a set of straight lines stored in the Geometry or Geography spatial column. It is this that is likely returned in your spatial view, rather than the true curve stored in the CAD side table.

Of course, SQL Server 2012 introduced native support for at least circular arcs in Geometry and Geography storage, but I doubt if this is yet supported by ArcGIS (maybe reading but probably not editing), as it doesn't fulfill all the needs of parts of ArcGIS (e.g. no bezier curves).

By the way, I encountered these interesting articles related to curves and SQL Server:

New Spatial Features in SQL Server 2012 | Lenni Lobel on SQL Server and .NET Development

Geospatial Support for Circular Data in SQL Server 2012 | Lenni Lobel on SQL Server and .NET Develop...

View solution in original post

4 Replies
Highlighted
MVP Esteemed Contributor

perhaps curves aren't supported...similar observations can be made with different data types ... such as shapefiles which don't support curves or their derivatives (circles, ellipses) since they are simplified to segmented representations.  I would check on the capabilities of your environment.

Reply
0 Kudos
Highlighted
MVP Regular Contributor

My hunch here is that this is caused by the fact that true curves in geodatabases traditionally are stored in a separate table or "CAD" binary field type column as described here (scroll down to the section "Feature classes stored using the Microsoft geometry or geography type in a SQL Server database" , and the CAD side table mentioned there), and that the SQL view, being based on SQL Server backend definition rather than a geodatabase Feature Class object, can not incorporate this data. AFAIK, the base table of the feature class stores a secondary geometry in the form of a "simplified" (maybe better said densified) version of the true curve in the way you describe here: a set of straight lines stored in the Geometry or Geography spatial column. It is this that is likely returned in your spatial view, rather than the true curve stored in the CAD side table.

Of course, SQL Server 2012 introduced native support for at least circular arcs in Geometry and Geography storage, but I doubt if this is yet supported by ArcGIS (maybe reading but probably not editing), as it doesn't fulfill all the needs of parts of ArcGIS (e.g. no bezier curves).

By the way, I encountered these interesting articles related to curves and SQL Server:

New Spatial Features in SQL Server 2012 | Lenni Lobel on SQL Server and .NET Development

Geospatial Support for Circular Data in SQL Server 2012 | Lenni Lobel on SQL Server and .NET Develop...

View solution in original post

Highlighted
Occasional Contributor III

Thank you, Marco, for this information. I think you're right. How disappointing that we won't be able to use a view to publish our parcels! I have a Python routine that does a join based on attributes, but the current process takes 23 minutes to complete. I can certainly streamline it (and plan to do so now!) but the near instantaneous results of a SQL view were ideal. Ugh.

Reply
0 Kudos
Highlighted
MVP Esteemed Contributor

Starting with ArcGIS 10.4, Esri's documentation should clearly state which SQL Server spatial data objects, or instance types, are supported and which ones are not supported.  There was a documentation bug on this omission, and it has been closed as fixed.