Сохранить координаты как тип многоугольника в Mysql

0

У меня есть координаты многоугольника в объекте JSON, и я хочу сохранить их как многоугольник в базе данных. Это мой code-

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

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

где $ координаты - строковые латинские и длинные вершины многоугольника.

Для ex.- Координаты =

"[[36,37485644939407, -96 +0,68243408203125], [35,94465937365276, -96 0,998291015625], [+36,117908916563685, -96 +0,10015869140625]]"

и они генерируются из этого code-

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+'"';

но ошибка is-

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с '\' [[36.37485644939407, -96.68243408203125], [35.94465937365276, -96.998291015625], ['в строке 1

Пожалуйста, помогите мне, как решить эту проблему.

Благодарю.

  • 0
    "ВСТАВИТЬ в многоугольники VALUES ('$ Coordinates')";
Теги:

1 ответ

0

Используйте правильный синтаксис. Например:

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/ru/gis-polygon-property-functions.html.

  • 0
    Я уже видел это. Там они принимают координаты вручную, в моем случае координаты берутся из инструмента рисования многоугольника карты Google, и он принимает координаты начальной и конечной точек только один раз.
  • 0
    Почему вы не можете предварительно обработать этот массив, чтобы исправить формат SQL?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню