Click here to monitor SSC
SQLServerCentral is supported by Redgate
Log in  ::  Register  ::  Not logged in
Home       Members    Calendar    Who's On

Add to briefcase

SPATIAL SQL Server 2008 Expand / Collapse
Posted Sunday, May 23, 2010 9:01 PM
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Group: General Forum Members
Last Login: Sunday, May 23, 2010 8:58 PM
Points: 1, Visits: 0
How can I use STTOUCHES with a GEOMETRY field? Can it be converted? How?

Post #926597
Posted Thursday, January 17, 2013 5:06 PM

SSC Eights!

SSC Eights!SSC Eights!SSC Eights!SSC Eights!SSC Eights!SSC Eights!SSC Eights!SSC Eights!

Group: General Forum Members
Last Login: Monday, July 4, 2016 12:06 AM
Points: 940, Visits: 712
A couple of points on this post, (given it has been here unanswered for quite a while, the info may be a bit late to help for the original post, but may help others)

first, the Geography and Geometry methods are case sensitive, so you must use STTouches()

second, STTouches() return type is Boolean ... so can be used wherever a boolean comparison is required (Case statements, IF..Then, etc) but not sure what the question "Can it be converted?" is referring to here. If this is referring to using this method against Geography data, the answer would be 'no, not without converting the data type'

finally, the example in 'online help' (see will always return 'false' as it is testing a linestring geometry against a point geometry. The text of the help topic states that "Two geometry instances touch if their point sets intersect, but their interiors do not intersect." As neither the linestring nor the point geometries have an interior, the result is always false.

a better example of using STIntersects(), here checking if a line touches a polygon. This example returns 'true':
DECLARE @g geometry;
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('POLYGON((0 2, 2 0, 4 2, 0 2))', 0);
SET @h = geometry::STGeomFromText('LINESTRING(3 2, 4 3)', 0);
SELECT @g.STTouches(@h);

Note also that the function should always be symmetrical, so that @g.STTouches(@h) will return the same as @h.STTouches(@g)

Hope this helps.
Post #1408676
Posted Friday, January 18, 2013 4:10 AM



Group: General Forum Members
Last Login: Thursday, September 1, 2016 2:56 AM
Points: 5,969, Visits: 6,067
carlecot88ssn (1/18/2013)
Diverse fashion principles can be recognized with different designers. Various people also think of it as the typical vintage style dragged from the early 70s. These explanations are correct and this is what the designers after these immense styles wish their constantly increasing customers to keep on believing.


Want an answer fast? Try here
How to post data/code for the best help - Jeff Moden
When a question, really isn't a question - Jeff Smith
Need a string splitter, try this - Jeff Moden
How to post performance problems - Gail Shaw
CrossTabs-Part1 & Part2 - Jeff Moden
SQL Server Backup, Integrity Check, and Index and Statistics Maintenance - Ola Hallengren
Managing Transaction Logs - Gail Shaw
Troubleshooting SQL Server: A Guide for the Accidental DBA - Jonathan Kehayias and Ted Krueger

Post #1408810
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse