OpenLayers 3具有很好的拖放功能。這個例子在這裏給出:打開圖層3-獲取矢量數據中的矢量類型(線,多邊形,點)
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();
似乎都不產生,我需要的信息。
雖然達尼洛的回答涵蓋了問題,但創建功能時,您可以添加一些自定義的參數給他們。然後在行動上,你可以得到這些對象的參數。如果你有,例如,兩種類型的點,你想知道哪一個是哪一個,這可以提供幫助。 –
謝謝,但問題是,我不知道數據類型是什麼時候加載的,不一定會讓他們感到困惑。 –