Openlayers 3 单击URL时放大到矢量层
我的地图中有一个WFS图层。我在层中有建筑,建筑id作为属性以及其他许多属性。我的图层里也有坐标 我有一个网址:“bb21” 如何使用此URL将地图缩放到该建筑 有什么想法吗 AJ ======================此处更新===============Openlayers 3 单击URL时放大到矢量层,openlayers-3,Openlayers 3,我的地图中有一个WFS图层。我在层中有建筑,建筑id作为属性以及其他许多属性。我的图层里也有坐标 我有一个网址:“bb21” 如何使用此URL将地图缩放到该建筑 有什么想法吗 AJ ======================此处更新=============== $.ajax({ url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typen
$.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: 然后,在收到请求-响应后,您必须读取结果。如果您使用WFS,那么您的响应应该是GML。OL3具有GML 2和3的格式:
readFeatures
方法,您可以使用该方法将响应转换为一系列功能,即转换为ol.Feature
的实例。然后,您可以循环这些要素并获取它们的几何图形,并将地图拟合到该几何图形
var geom = feature.getGeometry();
var view = map.getView();
view.fit(geom, map.getSize());
嗨,谢谢你的指导。但是我在实现您的解决方案时遇到了一些问题:我已经用您的实现想法更新了我的问题。但是当我试图查看这些特性时,它给了我空值。我做错了什么?请参阅上面更新的代码。为我提供“未定义”非空抱歉
readFeatures
返回ol.Feature
对象数组。您不需要根据特征返回的内容创建特征。请参阅文档:。此外,我建议您尝试加载ol-debug.js,并使用浏览器开发工具设置断点,以真正了解发生了什么。不要害怕进入代码并查看它的功能。我不明白你的意思,我不必创建功能??你能写一个代码示例吗?如何实现?我上面有我的代码。我的代码中到底有什么错误?请查看readFeatures
方法的文档:。它返回ol.Feature
对象的数组。使用浏览器开发工具在读取功能和监视变量的位置设置断点。你会明白的。