有人能告诉我我做错了吗?
如果我在我的设备或模拟器上运行,我的应用程序返回0.0米。它应该是1000米。 甚至将位置硬编码到LocationA.set ..对我没有帮助.. 我认为它与Double - To string part有关.. 或者我错了?
继承我的代码:
public void onLocationChanged(Location location) {
if(location != null)
{
double pLong = location.getLongitude();
double pLat = location.getLatitude();
txtLat = Double.toString(pLat);
txtLong = Double.toString(pLong);
textLat.setText(Double.toString(pLat));
textLong.setText(Double.toString(pLong));
double distance =0;
Location locationA = new Location("point A");
locationA.setLatitude(location.getLatitude() /1e6);
locationA.setLongitude(location.getLongitude() /1e6);
Location locationB = new Location("point B");
locationB.setLatitude(51.914282);
locationB.setLongitude(4.615116);
int distance2 = (int) locationA.distanceTo(locationB);
String str = " (" + String.valueOf(distance) + " meters)";
dist.setText(str);
}
}
\
提前致谢
答案 0 :(得分:2)
您正在输出String.valueOf(distance)
。距离初始化为0
,然后再也没有设置。 distanceTo
来电是distance2
而不是distance
。
另一个注意事项,当您设置locationA
的纬度和经度时,为什么要划分为1e6?这看起来不对。