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

Java中基于自定义方位(东为0°)的坐标计算代码适配问询

适配东向为0°的方位坐标计算调整方案

你的核心需求是把方位规则从「北=0°」切换为「东=0°、北=90°、西=180°、南=270°」,只需要调整三角函数的对应关系即可,具体修改如下:

修改后的代码

public double lat = 24.54;
public double lng = -2.12;

public void newPosition(double lat, double lng, int degrees, double dist) {
    double angle = Math.toRadians(degrees);
    // 调整三角函数对应关系,适配东向为0°的方位规则
    double delta_lat = dist * Math.sin(angle);
    double delta_lng = dist * Math.cos(angle);
    lat += delta_lat;
    lng += delta_lng;
    
    // 如果需要修改类的成员变量而非方法参数,替换成下面两行:
    // this.lat += delta_lat;
    // this.lng += delta_lng;
}

调整逻辑说明

我们可以通过验证四个基础方位来确认逻辑正确性:

  • 东(0°):sin(0°)=0,cos(0°)=1 → 纬度无变化,经度增加dist,完全符合东向移动的预期
  • 北(90°):sin(90°)=1,cos(90°)=0 → 经度无变化,纬度增加dist,匹配北向移动的需求
  • 西(180°):sin(180°)=0,cos(180°)=-1 → 纬度无变化,经度减少dist,对应西向移动的逻辑
  • 南(270°):sin(270°)=-1,cos(270°)=0 → 经度无变化,纬度减少dist,满足南向移动的规则

另外提个小细节:当前方法里的lat和lng是局部参数,修改后不会影响类的成员变量。如果你的目标是更新类里定义的lat和lng,请注释掉参数的赋值行,改用this.lat和this.lng来修改成员变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:37:52