当我点击一个URL时,放大到矢量层



我有一个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());

最新更新