Different area between FGDB and Sql Server

418
3
07-27-2017 01:11 AM
ModyBuchbinder
Esri Regular Contributor

Hi All

There was some discussions about this  so I found and easy way to reproduce.

I am creating a poly feature class in Sql Server (10.5) with Israel TM grid projection (WKID 2039).

I am creating a CIRCLE polygon. Then I copy & paste the layer into FGDB. There is a different in the area (see picture). The different in small polygon (400 Sq Meter) can be up to 0.5% (this is a lot).

Copy into Oracle give very similar area as the SqlServer.

The one that has no difference is a square, all other are circles. 

I did not tested different projections.

Take 3 minutes and try to see for yourself.

Thanks

Mody

0 Kudos
3 Replies
JoshuaBixby
MVP Esteemed Contributor

Run Add Geometry Attributes—Help | ArcGIS Desktop on the SQL Server records and add AREA to the table.  You will likely see that the AREA that is added is much, much closer to the file geodatabase value.

If your circle geometry is based on curves, which I am guessing it is, the difference you are seeing is based on the fact that Esri doesn't utilize SQL Server curved geometry types for storing its curved geometries.  What is stored in the SQL Server geometry column is a linear approximation of the circle, and the actual Esri geometry is stored in another field, hence why running Add Geometry Attributes—Help | ArcGIS Desktop will populate a different area value than the one SQL Server is calculating and displaying when you open the attribute table.

If you take one of your circles and convert it into a densified linear approximation, I am guessing you will see the margin of difference between SQL Server and file geodatabase disappear or nearly disappear.

ModyBuchbinder
Esri Regular Contributor

Hi Joshua

You are correct - there are two different columns in the Sql Table. Is this documented anywhere?

Still if both columns keep a circle formula I would expect them to calculate the same area.

Which area is more correct, ESRI or Microsoft?

Thanks

0 Kudos
JoshuaBixby
MVP Esteemed Contributor

I will have to look for the documentation, I don't have it right off the top.  Regarding correct, they are both correct, they are just giving areas for slightly different objects.  In this case, I would say the SQL Server object is an approximation of the Esri object, and thus the Esri object area is the "correct" one.

0 Kudos