Geoserver JSON 到制表符

我正在研究 OpenLayers 和 Geoserver。当用户单击一个功能时,我有一个已经创建的制表符表来获取功能信息数据。我的问题是我需要将 html 响应从 Geoserver 转换为 JSON。我怎样才能做到这一点?


这是 Geoserver 的响应


<table class="featureInfo">

  <caption class="featureInfo">l1Data</caption>

  <tbody><tr>

    <th>id</th>

    <th>sensor</th>

    <th>timestamp</th>

    <th>reliability</th>

  </tr>


  <tr>

    <td>16021</td>

    <td>Basic</td>

    <td>Sep 18, 2020 12:05:02 PM</td>

    <td>0.929717403858748</td>

  </tr>

</tbody>

</table>

制表符已设置为:


table = new Tabulator("#eventtable", {

    //height:"311px",

    layout:"fitColumns",

    columns:[

    {title:"ID", field:"id", visible:false},

    {title:"Sensor", field:"sensor", sorter:"string"},

    {title:"Last Detection", field:"timestamp", sorter:"date"},

    {title:"Reliability", field:"reliability", sorter:"number"},

    ],

  });

编辑我发现我可以有一个 application/json 响应,但我不能放入 Tabulator。地图上的代码点击:


map.on('singleclick', function (evt) {

var viewResolution = /** @type {number} */ (view.getResolution());

    var url = wmsSource.getFeatureInfoUrl(

      evt.coordinate, viewResolution, 'EPSG:3857',

      { 'INFO_FORMAT': 'application/json' });

    if (url) {

      fetch(url)


        .then(function (response) { return response.text(); })

        .then(function (html) {

          var test1 = JSON.parse(html);

          var test2 = test1.features[0].properties;

          table.setData(test2);

        });

    }

  });

错误是:


tabulator.min.js:2 Data Loading Error - Unable to process data due to invalid data type 

Expecting: array 

Received:  object


慕尼黑5688855
浏览 76回答 1
1回答

元芳怎么了

您不需要弄清楚如何转换它,只需要求 GeoServer 将信息作为 JSON 返回给您。您可以通过将info_format参数设置为 来做到这一点application/json。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript