Partilhar via


New Spatial Features in SQL Server Code-Named “Denali” CTP1

 

We have just released a white paper, New Spatial Features in SQL Server Code-Named “Denali” Community Technology Preview 1, as your definitive guide to the spatial improvements in this release of SQL Server.

Of course, you can’t take advantage of the new spatial features without the new server. You can now download the new server, Microsoft SQL Server code-named 'Denali' - Community Technology Preview 1 (CTP1), today.

Also, don’t forget that the serialization format for the spatial types has been updated in Microsoft SQL Server CLR Types Serialization Formats [MS-SSCLRT] for those of you who need to know even more.

Let us know how you like the new spatial features.

Comments

  • Anonymous
    November 09, 2010
    Lots of new features to play with! One question re: the new ReorientObject() method of the geography datatype - it claims to fix geography polygons constructed with the "wrong" ring orientation. But won't this method break geography instances that were intentionally constructed to be larger than a hemisphere?

  • Anonymous
    November 09, 2010
    ReorientObject() will reverse the vertex order of polygon rings.  I would posit that , in most cases, you would not run this method over a column of type geography.  Rather, you would use this method to correct the ring orientation for selected polygons which were constructed with the "wrong" ring orientation.   If your geography polygons are "intentionally constructed to be larger than a hemisphere", running ReorientObject() on them will cause them to reverse - they go from "large" polygons to "small" polygons (less than a hemisphere in size).  The new "small" polygons will be a valid polygons, just not the ones you want.

  • Anonymous
    November 10, 2010
    You can check EnvelopeAngle() and only call ReorientObject() if EnvelopeAngle() is greater than 90 degrees.

  • Anonymous
    November 10, 2010
    You can check EnvelopeAngle() and only call ReorientObject() if EnvelopeAngle() is greater than 90 degrees.

  • Anonymous
    November 13, 2010
    Milan - Since the suggested use case for ReorientObject() was to "fix" polygons with incorrect ring orientation, I had assumed that it only worked in cases where EnvelopeAngle() was > 90 anyway! Now I see that ReorientObject() simply inverts any geography polygon. So in other words, SELECT @x.ReorientObject() gives the same result as: DECLARE @g geography = geography::STGeomFromText('FULLGLOBE', 4326); SELECT @g.STDifference(@x); Is that correct? If so, it would be helpful to note in the documentation ;)

  • Anonymous
    November 13, 2010
    My last comment should of course have read: DECLARE @g geography = geography::STGeomFromText('FULLGLOBE', @x.STSrid); SELECT @g.STDifference(@x); I shouldn't assume that the full globe has to bow down to the global hegemony of EPSG 4326....

  • Anonymous
    November 13, 2010
    My last comment should of course have read: DECLARE @g geography = geography::STGeomFromText('FULLGLOBE', @x.STSrid); SELECT @g.STDifference(@x); I shouldn't assume that the full globe has to bow down to the global hegemony of EPSG 4326....