Jquery 打开图层3-从插入的矢量数据中获取矢量类型(直线、多边形、点)

Jquery 打开图层3-从插入的矢量数据中获取矢量类型(直线、多边形、点),jquery,openlayers-3,Jquery,Openlayers 3,OpenLayers 3具有强大的拖放功能。这里给出了一个例子: 在拖放的事件处理程序中,您可以访问已拖放的向量层(vectorSource),在这种情况下: dragAndDropInteraction.on('addfeatures', function(event) { var vectorSource = new ol.source.Vector({ features: event.features }); map.addLayer(new ol.l

OpenLayers 3具有强大的拖放功能。这里给出了一个例子:

在拖放的事件处理程序中,您可以访问已拖放的向量层(vectorSource),在这种情况下:

dragAndDropInteraction.on('addfeatures', function(event) {
    var vectorSource = new ol.source.Vector({
      features: event.features
    });
    map.addLayer(new ol.layer.Vector({
      source: vectorSource,
      style: styleFunction
    }));
    map.getView().fit(
        vectorSource.getExtent(), /** @type {ol.Size} */ (map.getSize()));
  });
这里可以看到vectorSource是根据event.features创建的,但是我找不到一种方法来判断放入地图中的向量是属于多边形还是线

我的问题是,有没有一种方法可以判断数据是什么向量类型的

console.log(event.features)显示其中有一个几何术语,但我不确定它如何可靠地为我提供数据类型

我需要知道我的图层管理工具,这样我才能正确地表示矢量图层

我试过:

event.features[0].getGeometry();
event.features[0].getGeometryName();

两者似乎都不能提供我需要的信息。

如果您有一个功能,您可以检索其几何图形,然后检索其类型:

feature.getGeometry().getType()
几何体类型。“点”、“线串”、“线圈”之一, '多边形'、'多点'、'多线'、'多多边形', “几何集合”、“圆”


参考资料:

尽管Danilo的回答涵盖了这个问题,但在创建功能时,您可以向其添加一些自定义参数。然后在操作中,您可以获取对象的参数。例如,如果您有两种类型的点,并且您想知道哪一种是哪一种,那么这可能会有所帮助。谢谢,但问题是,在加载数据时,我不知道数据类型是什么,不一定会与其他数据类型混淆。我担心会与event.features[0].getGeometry()混淆我只是得到一个返回的对象,该对象似乎不包含有用的信息,event.features[0].getGeometryName()只是给出“geometry”作为响应。