我正在处理一个编码问题。
我有一个mysql表,其中包含“polygon”列中的坐标列表。多边形都是不相交的。我想使用st_contains()函数来查找哪个多边形是一个点。这是我的sql查询(x和y是双精度的):

SELECT id_polygon
FROM polygons
WHERE ST_Contains(polygon, POINT(x,y))
LIMIT 0,1;

当我尝试此查询时,服务器将返回一条错误消息:
ERROR 3055 (HY000): Geometry byte string must be little endian.

经过搜索,我修改了列的字符集:
ALTER TABLE polygones MODIFY polygone mediumtext CHARACTER SET utf16le;

但我还是有同样的错误。我没主意了。:
如果你需要更多的信息,不要犹豫!
备注:我在下面粘贴了一个多边形条目的示例:
46.120052 4.926273,46.120692 4.921995,46.126637 4.921996,46.129165 4.909363,46.135851 4.909232,46.144537 4.91604,46.157977 4.903081,46.160961 4.904571,46.180433 4.910603,46.182715 4.914132,46.183046 4.932896,46.173769 4.938714,46.164259 4.932778,46.153246 4.958286,46.145964 4.943331,46.12938 4.939155,46.120871 4.931056,46.120052 4.926273

最佳答案

列应为“polygon”或“geometry”类型。如果由于任何原因无法执行此操作,请使用此函数:st_geomfromtext(polygon)。

关于mysql - Geometry包的MySQL字符串编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33440617/

10-11 08:00