计算当前位置和点之间的距离[重复]

Posted

技术标签:

【中文标题】计算当前位置和点之间的距离[重复]【英文标题】:Calculating distance between current location and a point [duplicate] 【发布时间】:2012-10-05 17:40:24 【问题描述】:

可能重复:android : Location.distanceTo not working correctly?

我正在尝试计算用户位置(驾驶员或移动位置)与固定纬度经度之间的距离。但是,文本不显示结果,只显示 TextView。

每当用户到达固定纬度经度的某个半径时,imageview 就会变为另一个 drawable。我已经尝试这样做一个多星期了。有帮助吗?


主要代码:

 public  void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lights);


    //placing location
    LocationManager loc = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Location location = loc.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    double clong = location.getLongitude();  
    double clat = location.getLatitude();    //current longitude and latitude

    double latitude=0.305085;
    double longitude=101.70506;     //fixed location

    double dist = Math.sqrt(Math.pow((111.3 * (latitude - clat)),2) + Math.pow((71.5 * (longitude - clong)),2)) * 1000;


if(dist<1000)
    calculate(dist);

    tvDis = (TextView)findViewById(R.id.distance);

    tvDis.setText(dist+"m");



 



 public void calculate(double x)
    ImageView light = (ImageView)findViewById(R.id.imageView1);

    if (x<1000)

        light.setImageResource(R.drawable.icon_yellow);

        if(x<500)
            light.setImageResource(R.drawable.icon_red);
        
    
    else
        light.setImageResource(R.drawable.icon_green);
    



我尝试将 1000 更改为更大的数字,但仍然没有运气。

【问题讨论】:

您可以尝试对这个主题进行一些研究。请参阅上述问题以获取两个位置之间的距离。 @MarvinLabs 我确实试图找到任何可以让我的生活更轻松地编写代码的东西。这就是我想出这段代码的方式。请问你能告诉我我做错了什么吗? 只需阅读 Location 类的文档,您就可以计算两点之间的距离。请参阅下面的答案。 【参考方案1】:

来自开发者网站

public static void distanceBetween (double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[] results)

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

【讨论】:

如果您已经准备好两个位置对象,您也可以添加:public float distanceTo (Location dest) @MarvinLabs 我曾尝试使用此方法,但返回的 float[] 结果中的值为负数。我不确定这是什么意思,是公里、米还是英里? RTFM,里面明确写了。

以上是关于计算当前位置和点之间的距离[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何计算两个经纬度之间的距离[重复]

在JavaScript中计算两个geolocs之间的距离[重复]

地图上的两点怎样计算距离

寻找我和朋友之间最近的距离[重复]

为数组 2 的每一行计算数组 1 的一行之间的距离,然后移动到数组 1 的下一行并重复

计算两点之间距离的方法[重复]