如何在MySQL中反序列化Polygon数据以获取纬度/经度?

时间:2013-10-04 14:41:40

标签: mysql deserialization polygon geospatial latitude-longitude

我已将地理空间数据保存到表格的一个字段中。它的类型是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();
}

1 个答案:

答案 0 :(得分:0)

要提取多边形或线的点,必须使用“NumPoints (ls)”来确定点数,然后必须使用命令PointN (ls, N)逐个滚动它们,提取坐标,在以下链接中您可以找到每个

的示例

http://dev.mysql.com/doc/refman/5.6/en/geometry-property-functions.html