ThinkGeo.com    |     Documentation    |     Premium Support

SQL Server 2008 Error

I have the following code that is attempting to define a Rectangle in SQL Server 2008 from a Rectangle I've drawn on the map.


cGeographyInitQuery = string.Format(@" DECLARE @Rectangle geography; SET @Rectangle = geography::STGeomFromText('{0}', 4269);", RectangleSelected.GetWellKnownText());


Which formats as follows:


DECLARE @Rectangle geography;


SET @Rectangle = geography::STGeomFromText('POLYGON(( -74.933063234375 40.5839042578125, -74.3233220234375 40.5839042578125, -74.3233220234375 40.13895796875, -74.933063234375 40.13895796875, -74.933063234375 40.5839042578125))', 4269);


However when I run the query, I get the following error in SQL Server:


Msg 6522, Level 16, State 1, Line 2 A .NET Framework error occurred during execution of user-defined routine or aggregate "geography": Microsoft.SqlServer.Types.GLArgumentException: 24205: The specified input does not represent a valid geography instance because it exceeds a single hemisphere. Each geography instance must fit inside a single hemisphere. A common reason for this error is that a polygon has the wrong ring orientation.


Since we aren't crossing any hemisphere's it appears as if the "GetWellKnowText()" function is not using the correct ring orientation. How do I correct this? It seems funny that the function wouldn't produce the correctly formated polygon.


Bob



Hi Bob,


I think it should be



DECLARE @Rectangle geometry;


SET @Rectangle = geometry::STGeomFromText('POLYGON(( -74.933063234375 40.5839042578125, -74.3233220234375 40.5839042578125, -74.3233220234375 40.13895796875, -74.933063234375 40.13895796875, -74.933063234375 40.5839042578125))', 4269);


Regards,


Edgar




Then the coralary question would be…how can you query a geography with a geometry?  They wouldn’t be compatible. 
  
 You see, after this defintiion, I’m trying to perform the following in a query, where company.location_geography is a geography column. 
  
 @Rectangle.STIntersects(company.location_geography) 
  
 Your thoughts? 
  
 bob

So I took the above original Rectangle and reversed all the points and Geography worked as well as the Geometry!!  So why doesn’t the function return the points in the right order? 
  
 This seems like a bug to me. 
  
 bob

Bob, 
  
 It seems that using geography is more strict than using geometry, the polygon’s outer ring must be counterclockwise, we’ve made the changes, please get 6.0.108.0 or 6.0.0.108 and have a try. 
  
 Regards, 
  
 Edgar

That may be a problem.  I’m currently in the 60 day evaluation period, and the demo link indicates version 6.0.0.0.  Has the Eval been updated for these corrections? 
  
 bob

Hello Bob, 
  
 Both the evaluation and full version have made the changes, you can get the evaluation 6.0.108.0 or 6.0.0.108 and have a try. 
  
 You can find the download link in helpdesk.thinkgeo.com
  
 Regards, 
  
 Gary