簡體   English   中英

R Shiny Leaflet: Plot from shape file SF object WGS 84 missing lng ang lat data

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM