【发布时间】:2017-08-22 16:52:03
【问题描述】:
所以,我正在尝试使用地理空间函数在 MYSQL 中保存 POLYGON...我在网上找到了几个示例,如下所示:
SELECT ST_GEOMFROMTEXT('POLYGON((
13.517837674890684 76.453857421875,
13.838079936422464 77.750244140625,
14.517837674890684 79.453857421875,
13.517837674890684 76.453857421875,
13.517837674890684 76.453857421875
))');
SELECT ST_GeomFromText('Polygon((
-98.07697478272888 30.123832577126326,
-98.07697478272888 30.535734310413392,
-97.48302581787107 30.535734310413392,
-97.48302581787107 30.123832577126326,
-98.07697478272888 30.123832577126326
))')
问题是当我尝试自己制作时,它返回以下错误: 错误代码:3037。提供给函数 st_geometryfromtext 的 GIS 数据无效。
这是我使用的代码...
SELECT ST_GEOMFROMTEXT('Polygon((
-99.16939973831177 19.42468828496807,
-99.16710376739502 19.424607339789876,
-99.16712522506714 19.422907481732416,
-99.168541431427 19.421996836172347,
-99.16989326477051 19.422947954749972
))');
这些都是经纬度对,我觉得跟顺序有关系,但是现在的顺序已经是连续的了。
谁能给我一个提示,好吗?
谢谢
编辑:正如他们在 cmets 部分中提到的,根据定义,必须关闭多边形。
我正在使用 Google Maps Javascript API v3 来绘制多边形,然后使用“overlaycomplete”事件侦听器在多边形关闭时触发一个函数。触发的函数基本上打印 API 给出的坐标。
如果多边形必须完全闭合,为什么 API 没有给出准确的坐标?有解决办法吗?
【问题讨论】:
-
根据定义,多边形是封闭的。所以第一点和最后一点必须相同。
-
谢谢@Solarflare,不知怎的,我忘了它以为 Google Maps Javascript API 会给我正确的多边形格式。正如我所说,我正在从 Google Maps API 获取多边形坐标,监听“overlaycomplete”事件,该事件应该在多边形关闭时触发。你知道为什么 API 没有给出确切的封闭多边形坐标吗?谢谢
-
如果您需要关闭多边形,请在其路径的末尾添加一个附加点(等于第一个点)。谷歌地图 API 将为多边形“自动关闭”路径,因此没有这个限制。
标签: mysql google-maps-api-3 geospatial polygons mysql-5.7