openlayer 3.5从点获取功能ID

时间:2016-02-26 14:08:14

标签: javascript openlayers-3

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

在一些例子的帮助下,我设法在我的网站上找到一个表。我使用以下代码(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。

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

1 个答案:

答案 0 :(得分:1)

如果您想要访问功能ID,则无法使用&#39; text / html&#39;您的GetFeatureInfo请求中的格式。相反,您必须使用&#39; application / vnd.ogc.gml&#39;或者&#39; application / json&#39;格式。这仅在服务器允许CORS请求时,或者服务器与您的应用程序位于同一源时才有效。然后,您不必在IFRAME中使用source.getGetFeatureInfoUrl()中的url,而是必须在AJAX请求中使用它。使用ol.format.WMSGetFeatureInfool.format.GeoJSON解析回复,对于已解析的要素,您只需使用ol.Feature#getId()即可获取ID。