你好我有下一个奇怪的问题: 我从 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
感谢您的帮助!
最佳答案
而不是 10E6 使用 1E6,因此将代码更改为以下内容:
GeoPoint p = new GeoPoint((int)(latitude*1E6), (int)(longitude*1E6));
因为 10E6 会产生与输入相同的数字,而 1E6 会将数字乘以 10 的 6 次方。
关于java - 转换为 GeoPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413177/