2016-02-26 49 views
1
获取功能ID

我还在学习openlayers,并且遇到问题。如果点击它,我需要为我的脚本指定点的ID。有了这个id(该函数作为一个变量),我想要做一些编码。openlayer 3.5从点

随着一些例子我设法让我的website.I表帮助做到这一点用下面的代码(JavaScript的):

map.on('singleclick', function(evt) { 
    document.getElementById('nodelist').innerHTML = "Loading... please wait..."; 
    var view = map.getView(); 
    var viewResolution = view.getResolution(); 
    var source = untiled.get('visible') ? untiled.getSource() : tiled.getSource(); 
    var url = source.getGetFeatureInfoUrl(
     evt.coordinate, viewResolution, view.getProjection(), 
     {'INFO_FORMAT': 'text/html', 'FEATURE_COUNT': 50}); 
    if (url) { 
     document.getElementById('nodelist').innerHTML = '<iframe seamless src="' + url + '"></iframe>'; 
    } 
    }); 

但我想是不显示表,并获得表外的点的ID。

有人可以给我一些提示吗?

+0

这取决于。展示更多代码,特别是如何将它们添加到源代码中。 –

+0

海报正在使用WMS图层,因此这些功能不可用于客户端。 – ahocevar

回答

1

如果你想访问特征id,你不能在你的GetFeatureInfo请求中使用'text/html'格式。相反,你将不得不使用'application/vnd.ogc.gml'或'application/json'格式。这只有在服务器允许CORS请求时,或者服务器与应用程序位于相同的原始位置时才有效。然后,您不必在IFRAME中使用来自source.getGetFeatureInfoUrl()的网址,而必须在AJAX请求中使用它。使用ol.format.WMSGetFeatureInfool.format.GeoJSON解析响应,对于解析的功能,只需使用ol.Feature#getId()即可获取该ID。