【问题标题】:How to close an open polygon in mysql GIS spacial extensions如何在 mysql GIS 空间扩展中关闭一个开放的多边形
【发布时间】:2012-07-09 05:52:49
【问题描述】:

我有一个包含多边形的 mysql 表,其中一些是打开的,我需要关闭它们。大概是通过将“StartPoint”附加到“Linestring”的末尾并重写为多边形。有什么想法吗?

当然,我可以拿出并测试一个多边形,看看它是打开还是关闭

SELECT ExteriorRing(SHAPE) into @testshape from tablename where OGR_FID=1; 
SELECT (StartPoint(@testshape)) INTO @SP;
SELECT (EndPoint(@testshape)) INTO @EP;
SELECT @EP=@SP as myIsRing;

好的,但是当它打开时,我需要将 Startpoint 附加到行字符串的末尾以关闭多边形。有没有办法附加那个“封闭”点并创建一个封闭的多边形?

可能值得注意的是我尝试过(根据手册页)

SELECT UNION(@testshape,@SP) INTO @newshape;

并得到标准语法错误 ERROR 1064 (42000) 好像我的版本不接受 UNION 函数。

【问题讨论】:

    标签: mysql gis polygon


    【解决方案1】:

    对不起大家,又花了几个小时解决这个问题,得到了以下结果

    select polygon(geomfromtext(astext(concat(geomfromtext(astext(@testshape)),(geomfromtext(astext(@SP))))))) INTO @newpoly;
    

    不完全干净,但它有效并且可以通过以下方式进行测试:

    SELECT (StartPoint(EXTERIORRING(@newpoly))) INTO @SP2;
    SELECT (EndPoint(EXTERIORRING(@newpoly))) INTO @EP2;
    SELECT @EP2=@SP2 as myIsRing;
    

    【讨论】:

    • 最近才想起来,这也是一种方便的技术,可以将点逐点添加到行尾。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多