我正在研究 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
。
添加回答
举报
0/150
提交
取消