转换为GeoPoint

时间:2012-11-16 08:48:50

标签: java android maps

你好,我有下一个奇怪的问题: 我将sql server中的坐标恢复为double,我将其转换为float,然后转换为intE6。我设置了两个打印件,一个在转换为GeoPoint之前,另一个在此之后。好吧,第一个似乎打印好的值,但在第二个,经度值的值失败。

有一个例子:

float latitude = (float) json_data.getDouble("latitude");
float longitude = (float) json_data.getDouble("longitude");

Log.d("POINT",(int)(latitude*10E6)+" "+ (int)((longitude*10E6)));

GeoPoint p = new GeoPoint((int)(latitude*10E6), (int)(longitude*10E6));

Log.d("POINT", ""+p.getLatitudeE6()+" "+p.getLongitudeE6());

我在服务器中的值:-4.779396,37.878901

印刷值:

-4779360 378789024

-4779360 18789024

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

而不是10E6使用1E6,因此将代码更改为以下内容:

GeoPoint p = new GeoPoint((int)(latitude*1E6), (int)(longitude*1E6));

因为10E6将产生相同的数字作为输入,而1E6将数字乘以10加到功率6。