简体   繁体   English

如何将多边形保存到数据库

[英]How to save a polygon to the database

I've a OpenLayers web application. 我有一个OpenLayers网络应用程序。 I've a function which after drawing a polygon generates the wkt format. 我有一个函数,在绘制多边形后会生成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('');
}

I'd like to send data wkt(unionFeatures) to the database (phpmyadmin) using a button and then after refreshing the page, use the second button to load data into the polygons and show them on the map. 我想使用一个按钮将数据wkt(unionFeatures)发送到数据库(phpmyadmin),然后刷新页面后,使用第二个按钮将数据加载到多边形中并将其显示在地图上。

How to modify this code and what to put in the php file? 如何修改此代码以及将什么放在php文件中?

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

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

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

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

    });
    return false;

});

please help step by step 请逐步帮助

To save data: 要保存数据:

//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");                 
    }
});

In post_receiver.php 在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 ****

To show the data back to map : 要将数据显示回地图:

In getData.php 在getData.php中

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

Call button click function from javascript to display geometries on map 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 
        }
    });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM