2015-07-20 43 views
1

我在的OpenLayers 2項目此構造:等效老OpenLayers.Layer.Text

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文件到某種支持的格式?

回答

0

應該通過使用由MapBox提供csv2geojson庫工作(以CSV/TSV到GeoJSON的轉換)中,與使用一個ol.format.GeoJSONol.source.Vector

我製作an example來說明這個用例(比您期望的解決方案更復雜)。我沒有爲演示的樣式而煩惱,我也只使用Vanilla JS(它表示「純JavaScript」,沒有第三方庫)來進行Ajax調用。 如果您確實需要new ol.format.TextTSV(),則需要對核心庫進行自己的擴展。您也可以在mailing list上詢問它是否在項目路線圖中。

+0

我試圖在https://matej.ceplovi.cz/kostely/index-new.html中模仿你的方式,但似乎有些東西還是壞了。我可以看到在網絡監視器中下載的所有文件(包括'kostely.geojson'),但OL似乎對錯誤消息非常吝嗇,因此在控制檯中沒有任何顯示,儘管顯然有些東西沒有錯。你能看到我錯過的地方嗎? – mcepl

+0

您要求提供TSV解決方案,而您的示例直接使用GeoJSON。你沒有模仿我的方式...因此,它不能工作。看到這個更正的演示,試圖瞭解http://bl.ocks.org/ThomasG77/b4a5703e2751da61952b –

+0

好的,我在這裏... https://matej.ceplovi.cz/kostely/index-new.html最後一件事我需要的是爲每個功能獲取標籤。應該永久顯示(無論什麼風格,我不在乎)財產'標題',甚至更好,如果點擊/懸停我可以顯示財產'描述'。任何簡單的想法如何做?謝謝你到目前爲止您的幫助太多了! 然後我用正確的解決方案更新了描述。 – mcepl