2016-02-05 57 views
0

我試圖顯示一個矢量圖層來顯示一組geojson功能。GeoJSON數據沒有顯示在矢量圖層上

當我嘗試並添加層,雖然我得到的ol.js庫是錯誤的「k.xd是不是一個函數」

var geoData = {"type":"FeatureCollection", 
    "features": 
    [ 
    {"type":"Feature","properties":{"Name":"","Description":""},"geometry":{"type":"Point","coordinates":[0.0,0.0]}}, 
    {"type":"Feature","properties":{"Name":"1","Description":""},"geometry":{"type":"Point","coordinates":[11.50728,3.87471,0.0]}}, 
    ] 
}; 

// vector layer 
var vector = new ol.layer.Vector({ 
    source: new ol.source.Vector({ 
     features: (new ol.format.GeoJSON()).readFeatures(geoData) 
    }), 
    style: new ol.style.Style({ 
      stroke: new ol.style.Stroke({ 
      color: 'red', 
      width: 2 
      }), 
      fill: new ol.style.Fill({ 
      color: 'rgba(255,0,0,0.2)' 
      }) 
     }) 
    }); 

我在這裏一起砍死一個例子http://jsfiddle.net/dxt95yt6/1/,顯示它不工作,但我無法弄清楚這與原來的教程有什麼不同。

+0

我在jsfiddle中玩過。我用openlayers geoJSON示例數據換出了數據,並且它工作正常,所以我會認爲問題出在您的geojson數據本身。我注意到它缺少關於CRS頂部的代碼片段,請參閱geojson示例上的示例數據頂部。我在NAD83的EPSG代碼中添加了,仍然沒有顯示。對不起,我無法提供更多的幫助,但我可以告訴你,代碼本身正在工作,它只是geojson源數據不起作用。 – 1saac

回答

1

給定樣式對象不正確的點,因此功能只是不顯示。嘗試:

style: new ol.style.Style({ 
    image: new ol.style.Circle({ 
     radius: 8, 
     stroke: new ol.style.Stroke({ 
      color: 'red', 
      width: 2 
     }), 
     fill: new ol.style.Fill({ 
      color: 'rgba(255,0,0,0.2)' 
     }) 
    }) 
}) 

請注意,在原始代碼中,還有另一個問題。座標必須轉換到EPSG:3857:

features: (new ol.format.GeoJSON()).readFeatures(
    geoData, 
    {featureProjection: ol.proj.get('EPSG:3857')} 
) 

http://jsfiddle.net/zqx6644q/8/

+0

就是這樣。因爲我不是一個圓圈而是一個點,它不會顯示任何東西。 – Saurbaum

0

它總是有幫助的使用它之前驗證您GeoJSON的。我可以推薦geojsonlint其中有aos api來確保您使用正確的geojson。

+0

其實在那個非常網頁上的例子json是我從哪裏開始的,同樣沒有成功。 – Saurbaum

+0

除了上面的正確答案外,你應該只添加兩個座標到一個點(關於第二個) – foedchr

+0

不可以包含超過2個座標來計算海拔高度,並且規範不會將其限制爲3不強制這些值的含義。 http://geojson.org/geojson-spec.html#positions – Saurbaum

0

這jsfiddle示例jsfiddle.net/zqx6644q/不能正常工作......兩點繪製在0 lat 0 lon。我試圖解決這個問題。

+0

這實在是一個評論,而不是一個答案。有了更多的代表,[你將能夠發表評論](// stackoverflow.com/privileges/comment)。 –

+0

對不起,男人,剛開始在這個網站的路徑...我怎樣才能賺取代表? – Koba

+0

這些座標位於WGS,而地圖位於EPSG:3857。您需要將座標從EPSG:4326轉換爲EPSG:3857,這裏更新了小提琴:http://jsfiddle.net/zqx6644q/8/ – user1702401