En mi SQL Server (2008 R2) en Azure, hay una tabla que contiene una gran cantidad de factores geográficos Points
(latitud/longitud):Crear polígono de la geografía de puntos en T-SQL
CREATE TABLE MyPoints
(
Region uniqueidentifier NOT NULL,
Number int NOT NULL,
Position geography NOT NULL,
CONSTRAINT PK_MyPoints PRIMARY KEY(Region, Number)
)
Ahora quiero crear a Polygon
a partir de estos puntos para determinar, cuáles de mis tiendas están ubicadas en el área definida por los puntos.
¿Existe una manera nativa y rápida de construir un polígono a partir de los puntos dados en T-SQL? The solutions I found están utilizando los métodos STGeomFromText
/STGeomFomWKB
para crear un polígono, lo que me parece muy engorroso y lento.
Algo así como:
SET @POLY = geometry::STPolyFromPoints(SELECT Position FROM MyPoints)
Estamos utilizando una función que concatena los puntos en su representación binaria y llaman 'STGeomFromWKB' en esa cadena. Es lo suficientemente rápido para nuestro propósito, pero sigue siendo feo. – Gene
Otra sugerencia sería escribir su propia .NET CLR User Defined Function que sí toma un parámetro de tabla (columna de Geo Points reales) y devuelve una Geometría. No he trabajado aún, pero el SqlGeometryBuilder parece prometedor: http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlgeometrybuilder.aspx –
AFAIK no admite funciones CLR en SQL Azure Pensé en esa posibilidad, también. – Gene