为了账号安全,请及时绑定邮箱和手机立即绑定

Geoserver JSON 到制表符

Geoserver JSON 到制表符

慕尼黑5688855 2023-03-18 14:50:20
我正在研究 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
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您不需要弄清楚如何转换它,只需要求 GeoServer 将信息作为 JSON 返回给您。您可以通过将info_format参数设置为 来做到这一点application/json



查看完整回答
反对 回复 2023-03-18
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信