You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R从指定经纬度创建等间距1×4网格(间距150米)

在R中基于指定起点创建经纬度网格(间距150米)

当然可以用R实现,推荐用geosphere包处理经纬度的距离偏移计算,以下是针对你需求的具体方案:

情况1:2×2网格(对应你给出的4点排列)

你的代码示例显示4个点排列为2行2列,即左上角起点,横向、纵向各偏移150米:

1. 安装加载依赖包

install.packages("geosphere")
library(geosphere)

2. 定义起点坐标

注意geosphere函数要求经度在前,纬度在后:

# 左上角起点Point1
start_point <- c(lon = 0.885039037, lat = 51.83985301)

3. 计算所有网格点

用destPoint()函数,通过方位角和距离计算偏移点:

  • 正东方向方位角为90°,正南方向为180°
  • 距离单位为米
# Point2:Point1向东150米
point2 <- destPoint(p = start_point, b = 90, d = 150)
# Point3:Point1向南150米
point3 <- destPoint(p = start_point, b = 180, d = 150)
# Point4:Point2向南150米(或Point3向东150米,结果一致)
point4 <- destPoint(p = point2, b = 180, d = 150)

4. 整理结果

grid_2x2 <- data.frame(
  点名称 = c("Point1", "Point2", "Point3", "Point4"),
  经度 = c(start_point[1], point2[1], point3[1], point4[1]),
  纬度 = c(start_point[2], point2[2], point3[2], point4[2])
)

# 输出高精度结果
print(grid_2x2, digits = 9)

输出示例:

点名称     经度      纬度
1 Point1 0.885039037 51.83985301
2 Point2 0.886912154 51.83984098
3 Point3 0.885027872 51.83855302
4 Point4 0.886901000 51.83854099

情况2:1×4横向网格

如果是一行4个点(从起点开始依次向东偏移150米),代码如下:

# 依次向东偏移150米生成4个点
point1 <- start_point
point2 <- destPoint(point1, b = 90, d = 150)
point3 <- destPoint(point2, b = 90, d = 150)
point4 <- destPoint(point3, b = 90, d = 150)

# 整理结果
grid_1x4 <- data.frame(
  点名称 = c("Point1", "Point2", "Point3", "Point4"),
  经度 = c(point1[1], point2[1], point3[1], point4[1]),
  纬度 = c(point1[2], point2[2], point3[2], point4[2])
)

print(grid_1x4, digits = 9)

内容的提问来源于stack exchange,提问作者mikejwilliamson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:50:36