Странно, как я получаю совершенно недопустимую долготу от использования API-интерфейса Fused Location.
Понимаю, что долгота колеблется от 0 до 180, Забавно, как я получаю 189 от API.
Вот изображение журналов местоположений с недопустимой долготой
Может кто-нибудь сказать мне, что происходит?Вот некоторые фрагменты кода:
mLocationRequest.setInterval(INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
-
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);
Я что-то упустил?Это происходит не всегда у всех пользователей, только у некоторых пользователей случайным образом
Ведение журнала. Это обновление службы определения местоположения, которое должно запускаться каждые 10 секунд (интервал) и 5 секунд (самый быстрый интервал).Я сохраняю детали местоположения в приложении при обратном вызове местоположения, используя статическую функцию, например так:
mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
if (locationResult == null) {
return;
}
for (Location location : locationResult.getLocations()) {
MainApplication.setCurrentLocation(location);
}
}
};
И каждые 10 секунд я отправляю событие сокета на сервер примерно так:
JSONObject obj = new JSONObject();
obj.put("id", id);
obj.put("lat", String.valueOf(MainApplication.getCurrentLocation().getLatitude()));
obj.put("long", String.valueOf(MainApplication.getCurrentLocation().getLongitude()));
obj.put("handler", String.valueOf(MainApplication.getCurrentLocation().getProvider()));
obj.put("version", Utils.getAppVersion(MainApplication.getContext()));
if (mSocket.connected()) {
mSocket.emit("set location", obj);
}