Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL 5.7.19中的多边形有什么问题?_Mysql_Google Maps Api 3_Geospatial_Polygons_Mysql 5.7 - Fatal编程技术网

MYSQL 5.7.19中的多边形有什么问题?

MYSQL 5.7.19中的多边形有什么问题?,mysql,google-maps-api-3,geospatial,polygons,mysql-5.7,Mysql,Google Maps Api 3,Geospatial,Polygons,Mysql 5.7,所以,我正在尝试使用地理空间函数在MYSQL中保存多边形。。。我在网上找到了以下几个例子: SELECT ST_GEOMFROMTEXT('POLYGON(( 13.517837674890684 76.453857421875, 13.838079936422464 77.750244140625, 14.517837674890684 79.453857421875, 13.517837674890684 76.453857421875, 13.517837674890684 76.4538

所以,我正在尝试使用地理空间函数在MYSQL中保存多边形。。。我在网上找到了以下几个例子:

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
))');
这些都是经纬度对,我认为这与顺序有关,但当前的顺序已经是连续的

谁能给我一个提示吗

多谢各位

编辑:正如他们在评论部分提到的,根据定义,多边形必须是闭合的

我正在使用GoogleMapsJavaScriptAPIv3绘制一个多边形,然后使用“OverlyComplete”事件监听器,在多边形关闭时触发一个函数。激发的函数基本上打印API给定的坐标


如果多边形必须精确闭合,为什么API不能给出精确的坐标?有解决办法吗?

多边形应该这样靠近

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
))');

根据定义,多边形是闭合的。所以第一点和最后一点必须是相同的。谢谢@Solarflare,不知怎么的,我忘记了谷歌地图Javascript API会为多边形提供正确的格式。正如我所说,我从谷歌地图API获取多边形坐标,收听“OverlyComplete”事件,该事件应该在多边形关闭时触发。你知道为什么API没有给出精确的闭合多边形坐标吗?谢谢如果需要闭合多边形,请在其路径末端添加一个附加点(等于第一个点)。google maps API将自动关闭多边形的路径,因此没有这个限制。实际上,我提到的前两个“选择”查询执行得很好。问题在于我提到的最后一个问题。非常感谢。