我有一个SQL Server表,该表的列包含Geography实例。其中一些实例是MultiPolygons。
是否可以从Multipolygon中提取单个多边形?
例如-如果我具有以下Multipolygon:
MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))
是否可以获取各个多边形:
POLYGON((40 40, 20 45, 45 30, 40 40))
POLYGON((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20))
使用内置函数而不进行某种形式的字符串解析/正则表达式?
答案 0 :(得分:1)
Declare @MultiGeom Geometry
Set @MultiGeom = 'MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))'
DECLARE @n int = 1;
WHILE (@n <= @MultiGeom.STNumGeometries())
BEGIN
Print Convert(VarChar(4000), (@MultiGeom.STGeometryN(@n)))
SET @n = @n + 1;
END
答案 1 :(得分:0)
基于设定的已接受答案的一个即席。假设您有一个数字表(查看here的含义以及可能有用的其他示例),则可以执行以下操作:
$cookiequery = unserialize($_COOKIE['djsearchquery']);