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

R语言Leaflet下EPSG:27700投影坐标参考系统实现问题问询

错误原因

你遇到的警告由两个核心问题导致:

  • leaflet默认会将所有sf图层自动转换为WGS84经纬度坐标系,自定义投影场景下没有关闭该逻辑,就会触发「不是经纬度数据」的警告
  • 你手动填写的proj4def参数和你的myprojectedsfobject实际存储的投影字符串存在细微差异(比如你写的字符串带datum=OSGB36,但sf对象存储的字符串可能没有该参数),就会触发基准面不一致的警告

解决方法

步骤1:对齐投影字符串

不要手动编写proj4定义,直接从你的sf对象中提取原生投影字符串,避免参数不匹配:

library(leaflet)
library(sf)

# 提取sf对象的原生proj4字符串
sf_proj4 <- st_crs(myprojectedsfobject)$proj4string

步骤2:修改leaflet配置

自定义投影场景下需要关闭默认的坐标系转换和世界复制跳转功能:

# 定义自定义CRS
crs <- leafletCRS(
  code = "EPSG:27700",
  proj4def = sf_proj4
)

# 调用leaflet绘图
leaflet(options = leafletOptions(
  crs = crs,
  worldCopyJump = FALSE # 自定义投影必须关闭该特性
)) %>%
  addPolygons(
    data = myprojectedsfobject,
    label = ~htmlEscape(NAME_3),
    fill = FALSE,
    project = FALSE, # 明确禁止leaflet对数据做投影转换
    options = pathOptions(noWrap = TRUE)
  )

补充说明

如果需要叠加底图,不能使用默认的OpenStreetMap等WGS84坐标系的瓦片服务,需要使用支持EPSG:27700的瓦片源,否则底图和矢量图层位置无法对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:06