给定 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))
给定一个包含以下值的框:
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))