单击URL时放大到矢量图层

时间:2015-09-14 06:52:49

标签: openlayers-3

我的地图中有一个WFS图层。我在图层中有building_id作为属性以及其他许多属性的建筑物。我的图层中也有坐标。

我有一个网址:http://localhost:8080/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:buildings&CQL_FILTER=id=' bb21'

如何使用此网址将地图缩放到该建筑物?

有什么想法吗?

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);
    }   
});

1 个答案:

答案 0 :(得分:0)

首先,您必须使用ajax请求查询网址。许多JavaScript库支持发出此类请求的简单方法,例如jQuery:http://api.jquery.com/jquery.ajax/

然后,收到请求响应后,您必须阅读结果。如果您使用的是WFS,那么您的回复应该是GML。 OL3的格式为GML 2和3:

两者都有一个readFeatures方法,可用于将响应转换为一系列要素,即转换为ol.Feature的实例。然后,您可以循环这些要素并获取其几何图形并使地图适合该几何图形。

var geom = feature.getGeometry();
var view = map.getView();
view.fit(geom, map.getSize());