打开图层3 – 从矢量数据中删除矢量类型(线,多边形,点)

OpenLayers 3具有强大的拖放function。 这个例子在这里给出:

http://openlayers.org/en/master/examples/drag-and-drop.html

在拖放的事件处理程序中,您可以访问已拖入的矢量图层(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(); 

似乎都没有产生我需要的信息。

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

 feature.getGeometry().getType() 

几何类型。 ‘Point’,’LineString’,’LinearRing’,’Polygon’,’MultiPoint’,’MultiLineString’,’MultiPolygon’,’GeometryCollection’,’Circle’之一。

参考: http : //openlayers.org/en/v3.0.0/apidoc/ol.geom.html#GeometryType