我已将地理空间数据保存到表格的一个字段中。它的类型是Polygon
。
如果要使用此类查询:
SELECT AsWKT(area) as `polygon` FROM geo.info_buildings;
我得到了下一种类型的结果,例如:
POLYGON((55.4295824 36.8635427),(55.4296539 36.8636714),
(55.4291776 36.8644788),(55.4290999 36.86435)
我想知道,如何从SQL命令中解析/反序列化Polygon
对象,以便我能够从longitude/latitude
的每个点获得Polygon
。
据我了解,反序列化的方法是:
注意
我没有很好的SQL技能,所以下一个伪代码只是一个概念/想法,所以要耐心和善意请:)并原谅我在MySQL领域缺乏知识。
1)。使smth类似于foreach()
块。
的伪代码:
foreach (Point p in Polygon) { ... }
2)。然后在这个foreach
块中做smth。像:
foreach (Point p in Polygon)
{
SET @var1 = p.GetLatitude();
SET @var2 = p.GetLongitude();
}
答案 0 :(得分:0)
要提取多边形或线的点,必须使用“NumPoints (ls)”来确定点数,然后必须使用命令PointN (ls, N)逐个滚动它们,提取坐标,在以下链接中您可以找到每个
的示例http://dev.mysql.com/doc/refman/5.6/en/geometry-property-functions.html