为MBR中的st_geometryfromtext函数提供的无效GIS数据包含LineFromText

时间:2018-06-29 13:36:03

标签: mysql gis mysql-5.7 spatial-index

我们有一个区域表,其中的列名为“位置”,用于存储该区域的纬度和经度。此处的“位置”列为mysql类型的“ POINT”。

我从here中读取了说明,并遵循相同的说明,但是在以下查询中出现错误:

SELECT  *
FROM    areas
WHERE   MBRContains(LineFromText(CONCAT(
    '('
    , 72.836898 + 10 / ( 111.1 / cos(RADIANS(72.836898)))
    , ' '
    , 18.935255 + 10 / 111.1
    , ','
    , 72.836898 - 10 / ( 111.1 / cos(RADIANS(18.935255)))
    , ' '
    , 18.935255 - 10 / 111.1 
    , ')' ))
    ,position);

我收到错误代码:3037。为函数st_geometryfromtext提供了无效的GIS数据。

1 个答案:

答案 0 :(得分:0)

对于您的MySQL版本,您需要使用以下代码:

SELECT  *
FROM    areas
WHERE   MBRContains
        (
        LineString
                (
                Point (
                        18.935255 + 10 / ( 111.320 / COS(RADIANS(72.836898))),
                        72.836898 + 10 / 111.133
                ),
                Point (
                        18.935255 - 10 / ( 111.320 / COS(RADIANS(72.836898))),
                        72.836898 - 10 / 111.133
                ) 
        ),
    ,position);