检查两个位置实例是否具有相同的值?
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;
希望对您有所帮助
我想检查两个位置实例是否具有相同的值。我只是不确定该怎么做?
我通过使用服务在后台不断检查位置来获得第一个位置。第二个 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;
希望对您有所帮助