相当于旧 OpenLayers.Layer.Text

Equivalent of the old OpenLayers.Layer.Text

我在 OpenLayers 2 项目中有这个结构:

var pois = new OpenLayers.Layer.Text( "Románské kostely", { location:"./kostely.tsv", projection: map.displayProjection }); map.addLayer(pois);

实际上,我可以轻松地从 TSV 文件创建新层是我最初开始玩 OpenLayers 的原因之一。

我现在将其作为 OpenLayers 3 的端口:

new ol.layer.Vector({ title: "Románské kostely", source: ol.source.Vector({ format: new ol.format.TextTSV(), url: "kostely.tsv" }), style: new ol.style.Style({ image: new ol.style.Icon({ src: "Ol_icon_blue.png" }) }) })

除了,显然没有 ol.format.TextTSV()。我能在 API 中找到的最好的是一种更复杂的结构,例如 GeoJSON

是否有人为 OpenLayers 3 API 创建了等效函数?或者是否有从旧 TSV 文件到某种受支持格式的转换器?

你试过WKT格式吗

var 格式 = 新 ol.format.WKT();

http://openlayers.org/en/v3.4.0/apidoc/ol.format.WKT.html

它应该通过使用 MapBox 提供的 csv2geojson 库(将 CSV/TSV 转换为 GeoJSON),结合使用 ol.format.GeoJSON.[=16= 的 ol.source.Vector 来工作]

我制作了 an example 来说明这个用例(比您预期的解决方案更复杂)。我没有在意演示的样式,而且我也只使用 Vanilla JS(这意味着 "pure JavaScript",没有第三方库)进行 Ajax 调用。 如果您确实需要 new ol.format.TextTSV(),则需要对核心库进行自己的扩展。您也可以在 mailing list 上询问它是否在项目路线图上。