以度格式转换经纬度值

9wbgstp7  于 2021-07-11  发布在  Java
关注(0)|答案(0)|浏览(213)

我有一个sqllite数据库,其中纬度和经度值存储如下

-281344383
-299752871

在两列中。出于教育目的,我已经反编译了一个应用程序,从中我得到了这个数据库以及一个函数,该函数将这个值转换为纬度和经度格式,如下所示

-33.875924°
151.225401°

等等

static String degreeToString(
          double paramDouble1,
          double paramDouble2,
          String paramString1,
          String paramString2,
          int paramInt)
  {
    int i = (int)paramDouble1;
    double d = paramDouble1 - i;
    int j = (int)(60.0D * d);
    d = 3600.0D * d - j * 60;
    String str = paramString1;
    if (paramDouble1 < 0.0D)
      str = paramString2;
    if (paramInt == 0)
      paramString1 = Math.abs(i) + "° " + Math.abs(j) + "' " + (int)Math.abs(d) + "\" " + str;
    while (true)
    {
      return paramString1;
      if (paramInt == 1)
      {
        paramString1 = Math.abs(i) + ":" + Math.abs(j) + ":" + (int)(Math.abs(d) * 10.0D) / 10.0F + " " + str;
        continue;
      }
      if (paramInt == 2)
      {
        paramString1 = (int)(10000000.0D * paramDouble1) / 10000000.0D + "°";
        continue;
      }
      if (paramInt == 3)
      {
        if (paramString1.charAt(0) == 'N')
        {
          LatLngToXY.update(paramDouble1, paramDouble2);
          paramString1 = LatLngToXY.zone + LatLngToXY.zoneLetter + (int)LatLngToXY.xy[0];
          continue;
        }
        paramString1 = (int)LatLngToXY.xy[1];
        continue;
      }
      if ((paramInt == 10) || (paramInt == 11))
      {
        paramString1 = i + ":" + Math.abs(j) + ":" + (int)Math.abs(d);
        continue;
      }
      if ((paramInt == 12) || (paramInt == 13))
      {

        paramString1 = (int)(10000000.0D * paramDouble1) / 10000000.0D;
        continue;
      }
      paramString1 = "";
    }
  }

它给了机会转换成多种格式,但在我的情况下,我只需要像上面我提到的格式,所以我认为根据那里的代码

paramString1 = (int)(10000000.0D * paramDouble1) / 10000000.0D;

应该做的工作,但它给我的输出总是一样的

-214.7483648

我认为有什么问题,但我不知道,让我知道,如果有人可以帮助我同样。
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题