1

我编写了一个 JavaScript 函数来将 GeoJson 数据转换为 WKT 格式。当我直接在 javascript 代码中获取输入值时,它可以工作。但我不知道如何从 php 获取输入并将其发回。

这是php代码:

<?php
  $geojson=file_get_contents("clipfeature.geojson");
  $WKT = $_POST['wkt'];
  echo ($WKT);
?>

所以它从文件中获取 geojson 数据,我想从 Javascript 函数接收转换后的 WKT 代码。

请帮我完成 JavaScript 代码:

   function converttoWKT (){
     $.ajax({
        type: "GET",
        url: "readJson.php",
        contentType: "application/json"
    }).done(function (data) {

    var JSONObject = How to give the value from PHP to this Variable;

    var coordinate = JSONObject.features[0].geometry.coordinates;
    var type= JSONObject.features[0].geometry.type;


    var coordinate1 = "";
    var coordinate2 = "";
    for (var i=0; i< coordinate[0].length; i++) {
     coordinate1= coordinate[0][i][0]+" "+coordinate[0][i][1];
     coordinate2=coordinate1+","+coordinate2;
    }

    var WKT= "\""+ type + "((" + coordinate2;
        WKT=WKT.substring(0,WKT.length-1);
        WKT=WKT+"))\"" 

    sendback ( );

}); 

    function sendback(){$.post("readJson.php",
    {'wkt':How to send the value of var WKT back to php 'wkt'
    });
    }
4

2 回答 2

1

基本上:

var jsVar= "<? echo $myVariable_value_goes_in_here; ?>";

或者,如上所述:

var JSONObject =  <? echo json_encode($WKT); ?>;  
                  // this NEED TO BE json, otherwise syntax error in JS!
于 2013-05-21T19:51:56.507 回答
1

由于您已经知道您的返回数据将是 JSON,因此您可以$.getJSON()使用方便。这是$.get()与 配对的请求JSON.parse()。使用$.getJSON(),在响应时解析 JSON。要发回数据,只需使用 jQuery 的$.post().

这是您的代码的编辑版本。

function converttoWKT() {
  $.getJSON('clipfeature.geojson', function(data) {
    var coordinate = data.features[0].geometry.coordinates;
    var type = data.features[0].geometry.type;

    var coordinate1 = '';
    var coordinate2 = '';
    for(var i = 0; i < coordinate[0].length; i++) {
      coordinate1 = coordinate[0][i][0] + ' ' + coordinate[0][i][1];
      coordinate2 = coordinate1 + ',' + coordinate2;
    }

    var WKT = '"' + type + '((' + coordinate2;
    WKT = WKT.substring(0, WKT.length - 1);
    WKT = WKT + '))"'

    sendback(WKT);
  });
};

function sendback(data) {
  $.post('readJson.php', {
    'wkt': data
  });
};
于 2013-05-21T20:20:07.173 回答