相当于旧的OpenLayers.Layer.Text

时间:2015-07-20 06:15:39

标签: openstreetmap openlayers-3 tsv

我在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文件到某种支持的格式是否存在转换器?

2 个答案:

答案 0 :(得分:0)

您是否尝试过WKT格式

var format = new ol.format.WKT();

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

答案 1 :(得分:0)

它应该可以使用MapBox提供的csv2geojson库(将CSV / TSV转换为GeoJSON),并使用ol.source.Vector使用ol.format.GeoJSON

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