在mysql中将坐标另存为多边形类型

yxyvkwin  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(468)

我有json对象中多边形的坐标,我想在数据库中将它们保存为多边形类型。这是我的密码-

$Coordinates   = $conn->real_escape_string($_POST['Coordinates']);

"INSERT into table_name (polygon) VALUES(PolyFromText('POLYGON('" .($Coordinates). "')'))";

其中$坐标是多边形顶点的弦化lat和long。
对于ex.-坐标=
"[[36.37485644939407,-96.68243408203125],[35.94465937365276,-96.998291015625],[36.117908916563685,-96.10015869140625]]"
这些都是由这个代码生成的-

google.maps.event.addListener(drawingManager, 'overlaycomplete', function(polygon) {
var coordinates_poly = polygon.overlay.getPath().getArray();

    var lat_poly = [];
    var lng_poly = [];
    var Coordinates = [];
    for(var i = 0; i <coordinates_poly.length; i++){
    lat_poly = coordinates_poly[i].lat();
    lng_poly = coordinates_poly[i].lng();
    Data = [lat_poly,lng_poly];
    Coordinates.push(Data);
    }
    var JSON_Coordinates = JSON.stringify(Coordinates);
    document.getElementById("coordinates").value= '"'+JSON_Coordinates+'"';

但错误是-
sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以了解在第1行“\”[[36.37485644939407,-96.68243408203125],[35.94465937365276,-96.998291015625],'附近使用的正确语法
请有人帮我解决这个问题。
谢谢。

agyaoht7

agyaoht71#

使用正确的语法。例如:

POLYGON((50.866753 5.686455, 50.859819 5.708942, 50.851475 5.722675, 50.841611 5.720615, 50.834023 5.708427, 50.840744 5.689373, 50.858735 5.673923, 50.866753 5.686455))

看到这里了吗https://dev.mysql.com/doc/refman/5.7/en/gis-polygon-property-functions.html

相关问题