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

如何按指定规则对经纬度取整?自定义取整需求技术求助

解决方案

核心逻辑

要实现经度以0.04结尾、纬度以0.03结尾的0.1间隔取整,核心思路是先将目标偏移量从原始值中扣除,把问题转化为常规的0.1间隔取整,再把偏移量加回即可。结合你给出的纬度示例(53.15需处理为53.13),这里采用向下取整的方式匹配需求。

代码实现(使用dplyr)

library(dplyr)

# 假设你的数据框名为df
df <- df %>%
  mutate(
    # 处理经度:向下取整到以0.04结尾的0.1间隔数值
    Long = floor((Long - 0.04) / 0.1) * 0.1 + 0.04,
    # 处理纬度:向下取整到以0.03结尾的0.1间隔数值
    Lat = floor((Lat - 0.03) / 0.1) * 0.1 + 0.03
  )

逻辑验证

以你提到的纬度53.15为例:

  1. 53.15 - 0.03 = 53.12
  2. 53.12 / 0.1 = 531.2,向下取整得到531
  3. 531 * 0.1 = 53.1,加回0.03后得到53.13,完全符合需求。

可选:四舍五入到最近目标值

如果需要取最近的目标值而非强制向下取整,只需将floor替换为round:

df <- df %>%
  mutate(
    Long = round((Long - 0.04) / 0.1) * 0.1 + 0.04,
    Lat = round((Lat - 0.03) / 0.1) * 0.1 + 0.03
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:13:14