我有一个WFS图层在我的地图。我有建筑层与building_id作为一个属性以及其他许多属性。我的图层中也有坐标
我有一个URL: http://localhost:8080/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:buildings&CQL_FILTER=id='bb21'
我如何使用这个URL将我的地图缩放到那栋楼?
任何想法?
AJ
================ 更新在这里 ===============
$.ajax({
url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=genesis:Building_WGS&CQL_FILTER=HOUSE_NO=%271436%27',
xhrFields: {
withCredentials: true
},
success: function(data) {
var te = new ol.format.GML2();
var a = te.readFeatures(data)
var feature = new ol.Feature(a);
//console.log(test1);
var geom = feature.get("HOUSE_NO");
var view = map.getView();
//view.fit(geom, map.getSize());
console.log(geom);
}
});
首先,必须使用ajax请求查询url。许多JavaScript库支持简单的方法来发出这样的请求,比如jQuery: http://api.jquery.com/jquery.ajax/
然后,在接收到请求响应后,您必须读取结果。如果您使用的是WFS,那么您的响应应该是GML。OL3有GML 2和GML 3的格式:
- http://openlayers.org/en/v3.9.0/apidoc/ol.format.GML2.html
- http://openlayers.org/en/v3.9.0/apidoc/ol.format.GML3.html
都有一个readFeatures
方法,您可以使用它将您的响应转换为特征数组,即转换为ol.Feature
的实例。然后你可以循环这些特征,获得它们的几何形状,并将地图匹配到那个几何形状。
var geom = feature.getGeometry();
var view = map.getView();
view.fit(geom, map.getSize());