0

我正在尝试使用geosphere包中的R centroid函数找到蒙大拿州的中心。纬度/经度坐标存储在一个形状文件中,该文件在计算时会在百慕大附近产生结果。xx

关于如何解决这个问题的任何建议?

geosphere::centroid(as.matrix(xx))
#           lon      lat
#[1,] -62.60957 28.57984
range(xx$long)
#-116.0492 -104.0391
range(xx$lat)
#44.38032 49.00091

这是xxhttps ://pastebin.com/uFgmph9g

以供参考 在此处输入图像描述

4

1 回答 1

0

我认为你可以通过平均所有点的坐标来计算质心的坐标,正如这个链接所建议的那样(https://gis.stackexchange.com/questions/6025/find-the-centroid-of-a-cluster-点数)。

cen <- colMeans(xx)
cen
#       long        lat 
# -110.27848   46.91494 

这是一个可视化,看看质心计算是否有意义。红点是质心。

library(sf)
library(leaflet)
library(mapview)

xx2 <- st_as_sf(xx, coords = c("long", "lat"), crs = 4326)
cen2 <- st_as_sf(as.data.frame(t(cen)), coords = c("long", "lat"), crs = 4326)

mapview(xx2) + mapview(cen2, col.regions = "red")

在此处输入图像描述

于 2018-02-01T03:21:57.300 回答