我们有一个区域表,其中的列名为“位置”,用于存储该区域的纬度和经度。此处的“位置”列为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数据。
答案 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);