2016-01-13 73 views
2

我有我面對的,而在嘗試使用R.我的代碼單張的頂部繪製SpatialPolygonsDataFrame是下面一個簡單的問題:如何使用R在小冊子上繪製多邊形?

leaflet() %>% 
    addProviderTiles("CartoDB.Positron") %>% 
    setView(lng = -80.8858673, lat = 41.1450276, zoom = 5) %>% 
    addPolygons(data = SPDF, weight = 2, color = ~colorQuantile("red", SPDF$id)(id)) 

SPDF哪裏是我的SpatialPolygonsDataFrame。

當我執行此代碼時,它「PLOTS NOTHING」但只有底圖。我一直在四處搜尋,這個question是相似的,但它沒有這個問題。

爲了繪製多邊形,我一直在關注this的鏈接。

這個問題似乎很簡單,但它爲我消耗了大量的時間。期待這些建議。謝謝你的時間。

注意:SPDF包含從OSM導出的數據,這意味着座標(的POLYGONS)沒有小數點,因爲它在OSM數據中。

+0

我們無法測試你的代碼,但也許你可以通過在addPolygons添加顏色參數啓動()的表達; (顏色=〜顏色Quantile(...) – MLavoie

+0

是的,我已經試過這個,現在更新了上面的代碼以及。仍然是同樣的問題。:( – Amir

+0

MLavoie可以是因爲我的SPDF的經度和緯度,他們沒有當我從OSM導入數據時有小數點嗎? – Amir

回答

4

最後,我已經能夠自己找出問題了。問題在於預測CRS(座標參考系統)

默認proj4string沒有正確設置在第一個地方,其結果是座標不現實(沒有小數點)。因此,首先設置我SpatialPolygonsDataFrame(SPDF)的默認proj4string:

[email protected] <-CRS("+init=epsg:3857") 

設置此之後,我設置了突出如下:

SPDF <- spTransform(SPDF, CRS("+ellps=WGS84 +proj=longlat +datum=WGS84 +no_defs")) 

,現在當我執行下面的代碼單張行,它完美的工作。

leaflet() %>% 
    addProviderTiles("CartoDB.Positron") %>% 
    setView(lng = -80.8858673, lat = 41.1450276, zoom = 5) %>% 
    addPolygons(data = SPDF, weight = 2, color = ~colorQuantile("red", SPDF$osm_id)(osm_id)) 

爲了解決這個問題,我跟着討論了this頁面。

我希望這適用於面臨同樣問題的其他人。雖然我還不是預測和製圖專家,因此,如果有人可以推薦一些必要的信息來理解這些問題,那將是非常好的。感謝所有的時間。

PS:請確認您已經包含了必要的軟件包,如傳單,SP,magrittr等

+1

感謝芽,'spTransform'是唯一缺少的行。 –