0

我有一个非常简单的问题,到目前为止我找不到解决方案。我有一个传单,它通过 L.TileLayer.BetterWMS.js ( https://gist.github.com/rclark/6908938 ) 从 Geoserver 获取数据。当用户点击图像时,获取特征数据。在 WMS 中,每次只有一行,只有一个值。我想将此值传递给变量并解析为 PHP。怎么做?下面是我得到的传单和桌子的图片。

地理服务器 getFeatureInfo

我想将值 188 解析为一个变量。

提前致谢!

4

3 回答 3

0

我有另一个解决方案,您需要将第一个 text/html 更改为 application/json L.TileLayer.BetterWMS.js,然后添加:

$("#yourId").text(data.features[0].properties.YourVar)

所以你终于得到:

getFeatureInfo: function(evt) {
// Make an AJAX request to the server and hope for the best
var url = this.getFeatureInfoUrl(evt.latlng),
    showResults = L.Util.bind(this.showGetFeatureInfo, this);

$.ajax({
  url: url,
  success: function (data, status, xhr) {

    $("#yourid").text(data.features[0].properties.YourVar)


    var err = typeof data === 'string' ? null : data;
    showResults(err, evt.latlng, data);

  },
  error: function (xhr, status, error) {
    showResults(error);  
  }
});
于 2019-01-23T16:08:19.593 回答
0

伙计们,谢谢,我找到了解决方案。您可以创建一个新的 DomParser 并获取一个字符串。创建元素并解析之前获得的 html 后,传递变量如下:

el.getElementsByTagName('td')[1].innerHTML;

就是这样。完整代码在这里:

var doc = (new DOMParser()).parseFromString(data, "text/html"); 
if (doc.body.innerHTML.trim().length > 0)
showResults(err, evt.latlng, data);
var el = document.createElement( 'html' );
el.innerHTML = data;
var stra = el.getElementsByTagName('td')[1].innerHTML;

再次感谢!

于 2018-02-28T10:27:10.663 回答
0

如果您想访问应在 application/json 或 application/xml 中请求数据并解析的值,您的响应将作为 text/html 返回。

于 2018-02-28T07:17:56.807 回答