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

Check if two Location Instances are the same value?

我想检查两个位置实例是否具有相同的值。我只是不确定该怎么做?

我通过使用服务在后台不断检查位置来获得第一个位置。第二个 Location 实例在 activity 中声明,我使用 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");
    }

总是returns"It didn't work"。

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

如有任何反馈或答复,我们将不胜感激!

double equal 用于基本类型(整数,双精度,...),对于使用 equals() 方法的对象,因此您将拥有 if (FirstLocation.equals(SecondLocation))

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

SecondLocation.distanceTo(FirstLocation) < 1;

希望对您有所帮助