我有一个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
我认为有什么问题,但我不知道,让我知道,如果有人可以帮助我同样。
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!