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

如何使用R在Google Maps英国地图上标注多地点并显示点位名称

R实现大不列颠全区域点位标注+名称同步显示方案

直接基于ggplot2生态实现,不需要手动拼接行政边界,可完美覆盖苏格兰至威尔士的全大不列颠可视化范围,你已有的Google Maps坐标可直接使用,无需额外坐标转换(Google Maps默认输出WGS84坐标系,和绘图接口适配)。

步骤1:安装并加载依赖包

# 安装缺失依赖
install.packages(c("ggplot2", "ggspatial", "sf"))
# 加载包
library(ggplot2)
library(ggspatial)
library(sf)

步骤2:整理点位数据

把你手里的点位名称、对应经纬度填入数据框即可,示例结构如下:

# 替换为你自己的真实点位数据
site_df <- data.frame(
  site_name = c("对应点位1名称", "对应点位2名称", "对应点位3名称"), # 你要显示的点位名
  lon = c(-3.19, -2.24, -3.18), # 从Google Maps获取的经度
  lat = c(55.95, 53.48, 51.48)  # 从Google Maps获取的纬度
)
# 转换为空间对象,坐标系和Google Maps保持一致
site_sf <- st_as_sf(site_df, coords = c("lon", "lat"), crs = 4326)

步骤3:绘制带标注的地图

代码里已经把绘图范围固定为大不列颠全区域,不会包含多余的爱尔兰、欧洲大陆区域,点位标签默认做了偏移避免遮挡钉选图标:

ggplot() +
  # 加载浅色系底图,zoom=6的清晰度刚好适配全英展示尺度
  annotation_map_tile(
    type = "cartolight",
    zoom = 6,
    cachedir = tempdir()
  ) +
  # 裁剪绘图范围,精准覆盖苏格兰至威尔士全区域
  coord_sf(
    xlim = c(-9, 2),
    ylim = c(49, 61),
    crs = 4326
  ) +
  # 绘制红色钉选点位
  geom_sf(
    data = site_sf,
    color = "#d90429",
    size = 3
  ) +
  # 同步显示点位名称,偏移位置避免遮挡点位
  geom_sf_text(
    data = site_sf,
    aes(label = site_name),
    nudge_x = 0.2,
    nudge_y = 0.1,
    size = 3.5,
    fontface = "bold"
  ) +
  # 添加指北针和比例尺
  annotation_north_arrow(location = "tl", style = north_arrow_fancy_orienteering) +
  annotation_scale(location = "br") +
  # 精简主题
  theme_minimal() +
  theme(axis.title = element_blank())

常用调整说明

  • 标签遮挡点位时,直接修改nudge_x(横向偏移)、nudge_y(纵向偏移)的数值即可,正负值对应不同偏移方向
  • 需要离线使用/自有行政边界底图时,把annotation_map_tile图层替换为geom_sf(data = 你的大不列颠边界空间对象, fill = "white", color = "gray60")即可
  • 底图风格不匹配需求时,修改annotation_map_tile的type参数即可切换不同风格底图
  • 点位大小、标签字号、颜色直接修改对应geom层的size、color参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:57:28