首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geoserver /传单/ getfeatureinfo

geoserver /传单/ getfeatureinfo
EN

Stack Overflow用户
提问于 2018-02-26 14:55:56
回答 3查看 1.4K关注 0票数 0

我有一个很简单的问题,到目前为止我还没有找到解决办法。我有一个传单,通过L.TileLayer.BetterWMS.js (https://gist.github.com/rclark/6908938)从Geoserver获得数据。当用户在图像中单击时,获取特征数据。在WMS中,每次只有一行,只有一个值。我想把这个值转换成一个变量,然后解析成PHP。怎么做?下面是我得到的传单和桌子的图片。

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

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-28 07:17:56

您的响应将以text/html的形式返回,如果您想访问值,您应该请求application/json或application/xml中的数据并对其进行解析。

票数 0
EN

Stack Overflow用户

发布于 2018-02-28 10:27:10

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

代码语言:javascript
复制
el.getElementsByTagName('td')[1].innerHTML;

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

代码语言:javascript
复制
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;

再次感谢!

票数 0
EN

Stack Overflow用户

发布于 2019-01-23 16:08:19

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

代码语言:javascript
复制
$("#yourId").text(data.features[0].properties.YourVar)

所以你终于得到了:

代码语言:javascript
复制
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);  
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48991264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档