gpt4 book ai didi

java - 安卓应用 : get distance between two addresses

转载 作者:搜寻专家 更新时间:2023-11-01 08:01:52 27 4
gpt4 key购买 nike

这是我第一次开发安卓应用。此应用程序将计算用户输入的两个地址之间的总距离,以获得总距离。假设道路是笔直的,可以计算距离吗?顺便说一下,这个应用程序不会显示 map ,也不需要 GPS!它只需要使用地理编码器来获取经纬度。

这是我的问题:

  1. AndroidManifest.xml 会是什么样子?我需要包含 android:name=".permission.MAPS_RECEIVE".
  2. 在 main_activity.java 中,我应该使用 Activity 还是使用 fragment Activity ?公共(public)类 MainActivity 扩展 Activity

感谢您的回复,我非常感谢你们,如果可能的话,您能否展示完整的 AndroidManifext.xml 代码?

谢谢。

最佳答案

http://developer.android.com/reference/android/location/Location.html

查看 distanceTo 或 distanceBetween。您可以根据纬度和经度创建 Location 对象:

Location locationA = new Location("point A");

locationA.setLatitude(latA);
locationA.setLongitude(lngA);

Location locationB = new Location("point B");

locationB.setLatitude(latB);
locationB.setLongitude(lngB);

float distance = locationA.distanceTo(locationB);

private double gps2m(float lat_a, float lng_a, float lat_b, float lng_b) {
float pk = (float) (180/3.14169);

float a1 = lat_a / pk;
float a2 = lng_a / pk;
float b1 = lat_b / pk;
float b2 = lng_b / pk;

float t1 = FloatMath.cos(a1)*FloatMath.cos(a2)*FloatMath.cos(b1)*FloatMath.cos(b2);
float t2 = FloatMath.cos(a1)*FloatMath.sin(a2)*FloatMath.cos(b1)*FloatMath.sin(b2);
float t3 = FloatMath.sin(a1)*FloatMath.sin(b1);
double tt = Math.acos(t1 + t2 + t3);

return 6366000*tt;
}

关于java - 安卓应用 : get distance between two addresses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com