Как сохранить полигон в базе данных

У меня есть веб-приложение OpenLayers. У меня есть функция, которая после рисования многоугольника генерирует формат WKT.

function generateWkt() {
var featureWkt, modifiedWkt;
var unionFeatures = [];

layer.getSource().forEachFeature(function(f) {
var featureClone = f.clone();
featureWkt = wkt.writeFeature(featureClone);

if(featureWkt.match(/MULTIPOLYGON/g)) {
modifiedWkt = (featureWkt.replace(/MULTIPOLYGON/g, '')).slice(1, -1);
} else {
modifiedWkt = (featureWkt.replace(/,/g, ', ')).replace(/POLYGON/g, '');
}

unionFeatures.push(modifiedWkt);
});

layer.getSource().getFeatures().length ? $('#wkt').text('MULTIPOLYGON(' + unionFeatures + ')') : $('#wkt').text('');
}

Я хотел бы отправить данные wkt (unionFeatures) в базу данных (phpmyadmin) с помощью кнопки, а затем после обновления страницы использовать вторую кнопку, чтобы загрузить данные в полигоны и показать их на карте.

Как изменить этот код и что поместить в файл php?

$('#postJson').click(function(){

$.post('post_receiver.php', { ??? }, function(data){

$('#response').html(data);

}).fail(function() {
alert( "Posting failed." );

});
return false;

});

пожалуйста, помогите шаг за шагом

0

Решение

Чтобы сохранить данные:

//javascript code
//Send the json object to php file to save to db

$.ajax({
type: 'post',
dataType: "json",
data:JSON.stringify(unionFeatures),
url: "http://localhost/post_receiver.php",
success: function (data) {
alert("data sent");
}
});

В post_receiver.php

$data = json_decode(trim(file_get_contents('php://input')), true);

//Save the $data to db using your logic. You may have to separate
//multiple geometries WKT and insert separately.
//***Saving logic ****

Чтобы показать данные обратно на карту:

В getData.php

//Retrieve data as a string through SQL query from db tables.

Функция вызова кнопки вызова из JavaScript для отображения геометрии на карте

function showGeometriesOnMap(){
$.ajax({
type: 'get',
dataType: "json",
url: "http://localhost/getData.php",
success: function (data) {
var retrievedData = JSON.parse(data);

//Display on map logic here
//See https://openlayers.org/en/latest/examples/wkt.html to
//show on map from WKT
}
});
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]