【问题标题】:What is wrong in this Polygon in MYSQL 5.7.19?MYSQL 5.7.19 中的这个多边形有什么问题?
【发布时间】: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


【解决方案1】:

多边形应该这样靠近

SELECT ST_GEOMFROMTEXT('Polygon((
-99.16939973831177 19.42468828496807,
-99.16710376739502 19.424607339789876,
-99.16712522506714 19.422907481732416,
-99.168541431427 19.421996836172347,
-99.16989326477051 19.422947954749972, 
-99.16939973831177 19.42468828496807
))');

【讨论】:

  • 实际上,我提到的前两个“SELECT”查询执行得很好。问题在于我提到的最后一个。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-09-06
  • 2011-08-26
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多