地理服务器/传单/getfeatureinfo
geoserver / leaflet / getfeatureinfo
我有一个非常简单的问题,到目前为止我找不到解决方案。
我有一张传单,它通过 L.TileLayer.BetterWMS.js (https://gist.github.com/rclark/6908938) 从 Geoserver 获取数据。
当用户点击图像时,获取特征数据。在 WMS 中,每次只有一行只有一个值。我想将这个值赋给一个变量并解析为 PHP。怎么做?
下面是我得到的传单和 table 的图片。
我想将值 188 解析为一个变量。
提前致谢!
如果您想访问应该在 application/json 或 application/xml 中请求数据并解析的值,您的响应将返回为 text/html。
伙计们,谢谢,我找到了解决方案。
您可以创建一个新的 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;
再次感谢!
我有其他解决方案
您需要先将 text/html 更改为 L.TileLayer.BetterWMS.js
中的 application/json 然后添加:
$("#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);
}
});
我有一个非常简单的问题,到目前为止我找不到解决方案。 我有一张传单,它通过 L.TileLayer.BetterWMS.js (https://gist.github.com/rclark/6908938) 从 Geoserver 获取数据。 当用户点击图像时,获取特征数据。在 WMS 中,每次只有一行只有一个值。我想将这个值赋给一个变量并解析为 PHP。怎么做? 下面是我得到的传单和 table 的图片。
我想将值 188 解析为一个变量。
提前致谢!
如果您想访问应该在 application/json 或 application/xml 中请求数据并解析的值,您的响应将返回为 text/html。
伙计们,谢谢,我找到了解决方案。 您可以创建一个新的 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;
再次感谢!
我有其他解决方案
您需要先将 text/html 更改为 L.TileLayer.BetterWMS.js
中的 application/json 然后添加:
$("#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);
}
});