WMS服务下的要素属性的获取,并转换为Json
说明
GeoServer的WMS服务下点击要素可以获得属性,但一般来说是html(xml)格式的,虽然可以获得要素属性,但是格式无法灵活自定义。这里采用将获得的xml文本进行解析,转换为json对象,以便后期自由定义显示风格
通过点击要素获取属性html文本,并解析为json
地图点击部分的代码:
map.on("click", function(e) {
if (e.dragging) return;
//因为WFS没有加载入Map,所以用Map.getFeaturesAtPiexl的方法不可用<--此方法可以设定容差
//只能用vectorSource的getFeatures的方法,而getFeaturesAtCoordinate不能设定容差
//只能用getFeaturesInExtent的方法<----此方法不可行,识别的features乱七八糟
//用wms的getFeatureInfoUrl方法,获取XML,再解析转换成Json来处理。
var cord = e.coordinate;
var pixel = e.pixel;
//map获取feature,html格式
//layerGroupTest为ol/layer/Tile类型
var url = layerGroupTest
.getSource()
.getGetFeatureInfoUrl(
e.coordinate,
map.getView().getResolution(),
"EPSG:4326",
{
INFO_FORMAT: "text/html", FEATURE_COUNT: 50 }
);