给定 gps 坐标计算 bbox 的中心

Calculate the center of bbox given gps coordinates

给定一个包含以下值的框:

f1 <- base::data.frame("left" = 11.46067, "bottom" = 48.05556 ,"right" = 11.69851 ,"top" = 48.21477)

我如何计算这个 bbox 的中心点 (lat,lon)?

我认为应该用中位数来求中心。希望这段代码对你有帮助。

library(leaflet)

f1 <- base::data.frame("left" = 11.46067, "bottom" = 48.05556 ,"right" = 11.69851 ,"top" = 48.21477)
point <- c(median(c(f1$left, f1$right)), median(c(f1$bottom, f1$top)))

leaflet() %>%
  addTiles() %>%
  addRectangles(lng1 = f1$left, lat1 = f1$bottom, lng2 = f1$right, lat2 = f1$top) %>%
  addCircleMarkers(lng = point[1], lat = point[2])

我不知道为什么,但建议的解决方案对我不起作用。 例如,给出以下 bbox (11.360777 48.06162 11.722908 48.24812) 和以下计算:中位数(11.360777, 11.722908) 和中位数(48.06162, 48.24812) 根据建议;它产生一个远离 bbox 中心的点。

所做的工作是找到通过 bbox 绘制的两条对角线的交点:

geosphere::gcIntersect(p1 = c(xmin, ymin),
                       p2=c(xmax, ymax),
                       p3=c(xmax, ymin),
                       p4=c(xmin, ymax))