Jquery 打开图层3-从插入的矢量数据中获取矢量类型(直线、多边形、点)
OpenLayers 3具有强大的拖放功能。这里给出了一个例子: 在拖放的事件处理程序中,您可以访问已拖放的向量层(vectorSource),在这种情况下: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
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”作为响应。