Xin chào Tôi đã triển khai Api nhà cung cấp Vị trí hợp nhất để nhận cập nhật vị trí trong một dịch vụ. Tôi đã có thể nhận được sự kiện onlocationchanged bắn theo thiết lập khoảng thời gian. Tuy nhiên, khi tôi đặt setmallestDisplacement thành 10 mét, sự kiện sẽ bị kích hoạt ngay cả khi thiết bị vẫn còn. Có ai có vấn đề tương tự như thế này không. vui lòng cung cấp đề xuất. Dưới đây là mã sốVị trí hợp nhất Nhà cung cấp setsmallestDisplacement không hoạt động trong Android
mlocationrequest = LocationRequest.create();
mlocationrequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mlocationrequest.setInterval(60000); // Update location every 1 minute
mlocationrequest.setFastestInterval(10000);
mlocationrequest.setSmallestDisplacement(10);
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mlocationrequest, this);
Để tìm khoảng cách giữa hai giá trị vị trí tôi đã sử dụng phương pháp này.
public static float distFrom (float lat1, float lng1, float lat2, float lng2)
{
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
int meterConversion = 1609;
return new Float(dist * meterConversion).floatValue();
}
Nhưng tôi nhận được khoảng cách là 43.51, 49.32, 520.02 ngay cả khi thiết bị vẫn là Still. Có phải vì máy tính bảng đang sử dụng trong nhà?
có cùng trải nghiệm ..! –
mát @GaganDeep – cgr
Tôi đã dịch chuyển thiết lập ở mức 10, setInterval và setFastestInterval đặt ở 3 phút nhưng ngay cả với ý nghĩa phong trào Tôi không nhận cập nhật vị trí thường xuyên không chắc chắn đâu là vấn đề? – 2cupsOfTech