[英]How to plot SP object as SF, in R leaflet
[英]R Shiny Leaflet: Plot from shape file SF object WGS 84 missing lng ang lat data
第一次使用形狀文件和新的映射所以請原諒我在這里潛在的無知。 此外,由於訪問有問題的形狀文件,我無法創建 MWE。
我正在 Shiny 中創建 leaflet map 並使用 SF ZEFE90A8E604A7C840E8ZD03 讀取形狀文件。 我正在嘗試導入一個形狀文件以顯示為 map 覆蓋。
形狀文件:
Simple feature collection with 13 features and 20 fields
Geometry type: MULTIPOLYGON
Dimension: XYZ
Bounding box: xmin: 389792.7 ymin: 2295313 xmax: 431035.9 ymax: 2376519
z_range: zmin: 0 zmax: 0
Projected CRS: WGS 84 / UTM zone 46N
結構:
Classes ‘sf’ and 'data.frame': 13 obs. of 21 variables:
$ Join_Count: num 0 0 0 0 0 0 0 0 0 0 ...
$ TARGET_FID: num 0 0 0 0 0 0 0 0 0 0 ...
$ JOIN_FID : num 0 0 0 0 0 0 0 0 0 0 ...
$ Id : num 0 0 0 0 0 0 0 0 0 0 ...
$ OBJECTID : num 0 0 0 0 0 0 0 0 0 0 ...
$ Name : chr "Teknaf Beach Deposits" "Tipam" "Girujan Clay" "Upper Bokabil sst-shl alteration" ...
$ FolderPath: chr NA "Geology_Interpretation.kmz/Geology_Interpretation" "Geology_Interpretation.kmz/Geology_Interpretation" "Geology_Interpretation.kmz/Geology_Interpretation" ...
$ SymbolID : num 0 0 1 2 4 5 6 5 5 6 ...
$ AltMode : num 0 0 0 0 0 0 0 0 0 0 ...
$ Base : num 0 0 0 0 0 0 0 0 0 0 ...
$ Clamped : num 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
$ Extruded : num 0 0 0 0 0 0 0 0 0 0 ...
$ Snippet : chr NA NA NA NA ...
$ PopupInfo : chr NA NA NA NA ...
$ Shape_Leng: num 0 2.485 1.368 0.163 0.157 ...
$ Shape_Le_1: num 0 2.493 1.426 0.892 0.812 ...
$ Shape_Area: num 0 0.04115 0.00439 0.00418 0.00205 ...
$ OBJECTID_1: num 0 1 2 3 5 9 11 12 14 15 ...
$ layer : chr NA "Clip_all" "Clip_all" "Clip_all" ...
$ path : chr NA "MultiPolygonZ?crs=EPSG:3857&field=OBJECTID_1:long(10,0)&field=Name:string(254,0)&field=FolderPath:string(254,0)"| __truncated__ "MultiPolygonZ?crs=EPSG:3857&field=OBJECTID_1:long(10,0)&field=Name:string(254,0)&field=FolderPath:string(254,0)"| __truncated__ "MultiPolygonZ?crs=EPSG:3857&field=OBJECTID_1:long(10,0)&field=Name:string(254,0)&field=FolderPath:string(254,0)"| __truncated__ ...
$ geometry :sfc_MULTIPOLYGON of length 13; first list element: List of 1
..$ :List of 1
.. ..$ : num [1:832, 1:3] 424728 424746 424763 424781 424799 ...
..- attr(*, "class")= chr [1:3] "XYZ" "MULTIPOLYGON" "sfg"
- attr(*, "sf_column")= chr "geometry"
- attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
..- attr(*, "names")= chr [1:20] "Join_Count" "TARGET_FID" "JOIN_FID" "Id" ...
使用addPolygons
和 function 完美地添加了以前的形狀。 但是,我無法 map 這個我認為源於兩件事的特定文件。 1)據我所知,沒有存儲任何 lng 或 lat 數據。 2) 該文件使用 WGS 84 CRS 而 leaflet 需要 ESRI 3857?
我嘗試使用shape <- shape %>% st_transform(3857)
轉換 shapefile,但收到以下信息: addPolygons must be called with both lng and lat, or with neither.
所以我想這證實了丟失的 lng 和 lat 數據是這里的問題?
我的問題是,我能做些什么來解決這個問題,或者形狀文件本身的創建是否存在更根本的問題?
建議贊賞!
您的 object 位於預計的 CRS 中(請參閱第一個打印輸出的最后一行)。 具體來說,它似乎在https://epsg.io/32646
為了使其與 leaflet 一起使用,請考慮將 (= sf::st_transform()
) 轉換為未投影的 CRS - “純” WGS 84 = EPSG::4326 應該是好的。
還要確保您通過leaflet::addPolygons()
的數據參數添加您的 object - 而不是通過第一個(或技術上是第二個,因為我們在管道中)參數,這不是data
而是lng
- 因此導致您的多邊形 object 具有“定義”的經度(錯誤地,但我離題了)但沒有緯度。 這是您提到的錯誤的最常見根本原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.