检查两个位置实例的值是否相同?

时间:2018-12-10 15:17:58

标签: android geolocation instance

我想检查两个位置实例是否具有相同的值。我只是不确定如何执行此操作?

我通过使用服务不断在后台检查位置来获得第一个位置。第二个Location实例是在活动中声明的,我使用getAddress()方法从找到的位置接收地址。

我认为也许像这样的东西可能有用,但是没有:

  // Initialization of First Location 
    LocationManager mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, this);
    Location FirstLocation =mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

    //Initialization of Second Location
     Location SecondLocation = LocationServices.FusedLocationApi
            .getLastLocation(mGoogleApiClient);

    //Checking if they are the same

    if (FirstLocation ==SecondLocation){
        System.out.println("It worked");
    }
    else{
        System.out.println("It didn't work");
    }

它总是返回“没用”。

只是想知道如何解决这个问题,或者是否有更好的方法?

任何反馈或答案将不胜感激!

2 个答案:

答案 0 :(得分:0)

double equal用于原始类型(整数,double,...),对象使用equals()方法,因此您将拥有if (FirstLocation.equals(SecondLocation))

答案 1 :(得分:0)

也许尝试使用distanceTo()方法,它返回到位置之间以米为单位的近似距离,类似于:

SecondLocation.distanceTo(FirstLocation) < 1;

希望这会有所帮助